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