fclangset.fncs revision a6844aab
12c393a42Smrg/*
22c393a42Smrg * Copyright © 2007 Keith Packard
32c393a42Smrg *
42c393a42Smrg * Permission to use, copy, modify, distribute, and sell this software and its
52c393a42Smrg * documentation for any purpose is hereby granted without fee, provided that
62c393a42Smrg * the above copyright notice appear in all copies and that both that copyright
72c393a42Smrg * notice and this permission notice appear in supporting documentation, and
82c393a42Smrg * that the name of the copyright holders not be used in advertising or
92c393a42Smrg * publicity pertaining to distribution of the software without specific,
102c393a42Smrg * written prior permission.  The copyright holders make no representations
112c393a42Smrg * about the suitability of this software for any purpose.  It is provided "as
122c393a42Smrg * is" without express or implied warranty.
132c393a42Smrg *
142c393a42Smrg * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
152c393a42Smrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
162c393a42Smrg * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
172c393a42Smrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
182c393a42Smrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
192c393a42Smrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
202c393a42Smrg * OF THIS SOFTWARE.
212c393a42Smrg */
222c393a42Smrg
232c393a42Smrg@RET@		FcLangSet *
242c393a42Smrg@FUNC@		FcLangSetCreate
252c393a42Smrg@TYPE1@		void
262c393a42Smrg@PURPOSE@	create a langset object
272c393a42Smrg@DESC@
282c393a42Smrg<function>FcLangSetCreate</function> creates a new FcLangSet object.
292c393a42Smrg@@
302c393a42Smrg
312c393a42Smrg@RET@		void
322c393a42Smrg@FUNC@		FcLangSetDestroy
332c393a42Smrg@TYPE1@		FcLangSet *			@ARG1@		ls
342c393a42Smrg@PURPOSE@	destroy a langset object
352c393a42Smrg@DESC@
362c393a42Smrg<function>FcLangSetDestroy</function> destroys a FcLangSet object, freeing
372c393a42Smrgall memory associated with it.
382c393a42Smrg@@
392c393a42Smrg
402c393a42Smrg@RET@		FcLangSet *
412c393a42Smrg@FUNC@		FcLangSetCopy
422c393a42Smrg@TYPE1@		const FcLangSet *		@ARG1@		ls
432c393a42Smrg@PURPOSE@	copy a langset object
442c393a42Smrg@DESC@
452c393a42Smrg<function>FcLangSetCopy</function> creates a new FcLangSet object and
462c393a42Smrgpopulates it with the contents of <parameter>ls</parameter>.
472c393a42Smrg@@
482c393a42Smrg
492c393a42Smrg@RET@		FcBool
502c393a42Smrg@FUNC@		FcLangSetAdd
512c393a42Smrg@TYPE1@		FcLangSet *			@ARG1@		ls
522c393a42Smrg@TYPE2@		const FcChar8 *			@ARG2@		lang
532c393a42Smrg@PURPOSE@	add a language to a langset
542c393a42Smrg@DESC@
552c393a42Smrg<parameter>lang</parameter> is added to <parameter>ls</parameter>.
562c393a42Smrg<parameter>lang</parameter> should be of the form Ll-Tt where Ll is a
572c393a42Smrgtwo or three letter language from ISO 639 and Tt is a territory from ISO
582c393a42Smrg3166.
592c393a42Smrg@@
602c393a42Smrg
612c393a42Smrg@RET@		FcLangResult
622c393a42Smrg@FUNC@		FcLangSetCompare
632c393a42Smrg@TYPE1@		const FcLangSet *		@ARG1@		ls_a
642c393a42Smrg@TYPE2@		const FcLangSet *		@ARG2@		ls_b
652c393a42Smrg@PURPOSE@	compare language sets
662c393a42Smrg@DESC@
672c393a42Smrg<function>FcLangSetCompare</function> compares language coverage for
682c393a42Smrg<parameter>ls_a</parameter> and <parameter>ls_b</parameter>. If they share
692c393a42Smrgany language and territory pair, this function returns FcLangEqual. If they
702c393a42Smrgshare a language but differ in which territory that language is for, this
712c393a42Smrgfunction returns FcLangDiffentTerritory. If they share no languages in
722c393a42Smrgcommon, this function returns FcLangDifferentLang.
732c393a42Smrg@@
742c393a42Smrg
752c393a42Smrg@RET@		FcBool
762c393a42Smrg@FUNC@		FcLangSetContains
772c393a42Smrg@TYPE1@		const FcLangSet *		@ARG1@		ls_a
782c393a42Smrg@TYPE2@		const FcLangSet *		@ARG2@		ls_b
792c393a42Smrg@PURPOSE@	check langset subset relation
802c393a42Smrg@DESC@
812c393a42Smrg<function>FcLangSetContains</function> returns FcTrue if
822c393a42Smrg<parameter>ls_a</parameter> contains every language in
832c393a42Smrg<parameter>ls_b</parameter>. <parameter>ls_a</parameter> will 'contain' a
842c393a42Smrglanguage from <parameter>ls_b</parameter> if <parameter>ls_a</parameter>
852c393a42Smrghas exactly the language, or either the language or
862c393a42Smrg<parameter>ls_a</parameter> has no territory.
872c393a42Smrg@@
882c393a42Smrg
892c393a42Smrg@RET@		FcBool
902c393a42Smrg@FUNC@		FcLangSetEqual
912c393a42Smrg@TYPE1@		const FcLangSet *		@ARG1@		ls_a
922c393a42Smrg@TYPE2@		const FcLangSet *		@ARG2@		ls_b
932c393a42Smrg@PURPOSE@	test for matching langsets
942c393a42Smrg@DESC@
952c393a42SmrgReturns FcTrue if and only if <parameter>ls_a</parameter> supports precisely
962c393a42Smrgthe same language and territory combinations as <parameter>ls_b</parameter>.
972c393a42Smrg@@
982c393a42Smrg
992c393a42Smrg@RET@		FcChar32
1002c393a42Smrg@FUNC@		FcLangSetHash
1012c393a42Smrg@TYPE1@		const FcLangSet *		@ARG1@		ls
1022c393a42Smrg@PURPOSE@	return a hash value for a langset
1032c393a42Smrg@DESC@
1042c393a42SmrgThis function returns a value which depends solely on the languages
1052c393a42Smrgsupported by <parameter>ls</parameter>. Any language which equals
1062c393a42Smrg<parameter>ls</parameter> will have the same result from
1072c393a42Smrg<function>FcLangSetHash</function>. However, two langsets with the same hash
1082c393a42Smrgvalue may not be equal.
1092c393a42Smrg@@
1102c393a42Smrg
1112c393a42Smrg@RET@		FcLangResult
1122c393a42Smrg@FUNC@		FcLangSetHasLang
1132c393a42Smrg@TYPE1@		const FcLangSet *		@ARG1@		ls
1142c393a42Smrg@TYPE2@		const FcChar8 *			@ARG2@		lang
1152c393a42Smrg@PURPOSE@	test langset for language support
1162c393a42Smrg@DESC@
1172c393a42Smrg<function>FcLangSetHasLang</function> checks whether
1182c393a42Smrg<parameter>ls</parameter> supports <parameter>lang</parameter>. If 
1192c393a42Smrg<parameter>ls</parameter> has a matching language and territory pair,
1202c393a42Smrgthis function returns FcLangEqual. If <parameter>ls</parameter> has
1212c393a42Smrga matching language but differs in which territory that language is for, this
1222c393a42Smrgfunction returns FcLangDiffentTerritory. If <parameter>ls</parameter> 
1232c393a42Smrghas no matching language, this function returns FcLangDifferentLang.
1242c393a42Smrg@@
1252c393a42Smrg
126a6844aabSmrg@RET@		FcStrSet *
127a6844aabSmrg@FUNC@		FcLangSetGetLangs
128a6844aabSmrg@TYPE1@		const FcLangSet *		@ARG1@		ls
129a6844aabSmrg@PURPOSE@	get the list of languages in the langset
130a6844aabSmrg@DESC@
131a6844aabSmrgReturns a string set of all languages in <parameter>langset</parameter>.
132a6844aabSmrg@@
133a6844aabSmrg
1342c393a42Smrg@RET@		FcStrSet *
1352c393a42Smrg@FUNC@		FcGetLangs
1362c393a42Smrg@TYPE1@		void
1372c393a42Smrg@PURPOSE@	Get list of languages
1382c393a42Smrg@DESC@
1392c393a42SmrgReturns a string set of all known languages.
1402c393a42Smrg@@
1412c393a42Smrg
1422c393a42Smrg@RET@		const FcCharSet *
1432c393a42Smrg@FUNC@		FcLangGetCharSet
1442c393a42Smrg@TYPE1@		const FcChar8 *			@ARG1@		lang
1452c393a42Smrg@PURPOSE@	Get character map for a language
1462c393a42Smrg@DESC@
1472c393a42SmrgReturns the FcCharMap for a language.
1482c393a42Smrg@@
149