1/* 2 * Copyright © 2007 Keith Packard 3 * 4 * Permission to use, copy, modify, distribute, and sell this software and its 5 * documentation for any purpose is hereby granted without fee, provided that 6 * the above copyright notice appear in all copies and that both that copyright 7 * notice and this permission notice appear in supporting documentation, and 8 * that the name of the copyright holders not be used in advertising or 9 * publicity pertaining to distribution of the software without specific, 10 * written prior permission. The copyright holders make no representations 11 * about the suitability of this software for any purpose. It is provided "as 12 * is" without express or implied warranty. 13 * 14 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 16 * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR 17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 20 * OF THIS SOFTWARE. 21 */ 22 23@RET@ FcLangSet * 24@FUNC@ FcLangSetCreate 25@TYPE1@ void 26@PURPOSE@ create a langset object 27@DESC@ 28<function>FcLangSetCreate</function> creates a new FcLangSet object. 29@@ 30 31@RET@ void 32@FUNC@ FcLangSetDestroy 33@TYPE1@ FcLangSet * @ARG1@ ls 34@PURPOSE@ destroy a langset object 35@DESC@ 36<function>FcLangSetDestroy</function> destroys a FcLangSet object, freeing 37all memory associated with it. 38@@ 39 40@RET@ FcLangSet * 41@FUNC@ FcLangSetCopy 42@TYPE1@ const FcLangSet * @ARG1@ ls 43@PURPOSE@ copy a langset object 44@DESC@ 45<function>FcLangSetCopy</function> creates a new FcLangSet object and 46populates it with the contents of <parameter>ls</parameter>. 47@@ 48 49@RET@ FcBool 50@FUNC@ FcLangSetAdd 51@TYPE1@ FcLangSet * @ARG1@ ls 52@TYPE2@ const FcChar8 * @ARG2@ lang 53@PURPOSE@ add a language to a langset 54@DESC@ 55<parameter>lang</parameter> is added to <parameter>ls</parameter>. 56<parameter>lang</parameter> should be of the form Ll-Tt where Ll is a 57two or three letter language from ISO 639 and Tt is a territory from ISO 583166. 59@@ 60 61@RET@ FcBool 62@FUNC@ FcLangSetDel 63@TYPE1@ FcLangSet * @ARG1@ ls 64@TYPE2@ const FcChar8 * @ARG2@ lang 65@PURPOSE@ delete a language from a langset 66@DESC@ 67<parameter>lang</parameter> is removed from <parameter>ls</parameter>. 68<parameter>lang</parameter> should be of the form Ll-Tt where Ll is a 69two or three letter language from ISO 639 and Tt is a territory from ISO 703166. 71@SINCE@ 2.9.0 72@@ 73 74@RET@ FcLangSet * 75@FUNC@ FcLangSetUnion 76@TYPE1@ const FcLangSet * @ARG1@ ls_a 77@TYPE2@ const FcLangSet * @ARG2@ ls_b 78@PURPOSE@ Add langsets 79@DESC@ 80Returns a set including only those languages found in either <parameter>ls_a</parameter> or <parameter>ls_b</parameter>. 81@SINCE@ 2.9.0 82@@ 83 84@RET@ FcLangSet * 85@FUNC@ FcLangSetSubtract 86@TYPE1@ const FcLangSet * @ARG1@ ls_a 87@TYPE2@ const FcLangSet * @ARG2@ ls_b 88@PURPOSE@ Subtract langsets 89@DESC@ 90Returns a set including only those languages found in <parameter>ls_a</parameter> but not in <parameter>ls_b</parameter>. 91@SINCE@ 2.9.0 92@@ 93 94@RET@ FcLangResult 95@FUNC@ FcLangSetCompare 96@TYPE1@ const FcLangSet * @ARG1@ ls_a 97@TYPE2@ const FcLangSet * @ARG2@ ls_b 98@PURPOSE@ compare language sets 99@DESC@ 100<function>FcLangSetCompare</function> compares language coverage for 101<parameter>ls_a</parameter> and <parameter>ls_b</parameter>. If they share 102any language and territory pair, this function returns FcLangEqual. If they 103share a language but differ in which territory that language is for, this 104function returns FcLangDifferentTerritory. If they share no languages in 105common, this function returns FcLangDifferentLang. 106@@ 107 108@RET@ FcBool 109@FUNC@ FcLangSetContains 110@TYPE1@ const FcLangSet * @ARG1@ ls_a 111@TYPE2@ const FcLangSet * @ARG2@ ls_b 112@PURPOSE@ check langset subset relation 113@DESC@ 114<function>FcLangSetContains</function> returns FcTrue if 115<parameter>ls_a</parameter> contains every language in 116<parameter>ls_b</parameter>. <parameter>ls_a</parameter> will 'contain' a 117language from <parameter>ls_b</parameter> if <parameter>ls_a</parameter> 118has exactly the language, or either the language or 119<parameter>ls_a</parameter> has no territory. 120@@ 121 122@RET@ FcBool 123@FUNC@ FcLangSetEqual 124@TYPE1@ const FcLangSet * @ARG1@ ls_a 125@TYPE2@ const FcLangSet * @ARG2@ ls_b 126@PURPOSE@ test for matching langsets 127@DESC@ 128Returns FcTrue if and only if <parameter>ls_a</parameter> supports precisely 129the same language and territory combinations as <parameter>ls_b</parameter>. 130@@ 131 132@RET@ FcChar32 133@FUNC@ FcLangSetHash 134@TYPE1@ const FcLangSet * @ARG1@ ls 135@PURPOSE@ return a hash value for a langset 136@DESC@ 137This function returns a value which depends solely on the languages 138supported by <parameter>ls</parameter>. Any language which equals 139<parameter>ls</parameter> will have the same result from 140<function>FcLangSetHash</function>. However, two langsets with the same hash 141value may not be equal. 142@@ 143 144@RET@ FcLangResult 145@FUNC@ FcLangSetHasLang 146@TYPE1@ const FcLangSet * @ARG1@ ls 147@TYPE2@ const FcChar8 * @ARG2@ lang 148@PURPOSE@ test langset for language support 149@DESC@ 150<function>FcLangSetHasLang</function> checks whether 151<parameter>ls</parameter> supports <parameter>lang</parameter>. If 152<parameter>ls</parameter> has a matching language and territory pair, 153this function returns FcLangEqual. If <parameter>ls</parameter> has 154a matching language but differs in which territory that language is for, this 155function returns FcLangDifferentTerritory. If <parameter>ls</parameter> 156has no matching language, this function returns FcLangDifferentLang. 157@@ 158 159@RET@ FcStrSet * 160@FUNC@ FcGetDefaultLangs 161@TYPE1@ void 162@PURPOSE@ Get the default languages list 163@DESC@ 164Returns a string set of the default languages according to the environment variables on the system. 165This function looks for them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. 166If there are no valid values in those environment variables, "en" will be set as fallback. 167@SINCE@ 2.9.91 168@@ 169 170@RET@ FcStrSet * 171@FUNC@ FcLangSetGetLangs 172@TYPE1@ const FcLangSet * @ARG1@ ls 173@PURPOSE@ get the list of languages in the langset 174@DESC@ 175Returns a string set of all languages in <parameter>langset</parameter>. 176@@ 177 178@RET@ FcStrSet * 179@FUNC@ FcGetLangs 180@TYPE1@ void 181@PURPOSE@ Get list of languages 182@DESC@ 183Returns a string set of all known languages. 184@@ 185 186@RET@ FcChar8 * 187@FUNC@ FcLangNormalize 188@TYPE1@ const FcChar8 * @ARG1@ lang 189@PURPOSE@ Normalize the language string 190@DESC@ 191Returns a string to make <parameter>lang</parameter> suitable on fontconfig. 192@SINCE@ 2.10.91 193@@ 194 195@RET@ const FcCharSet * 196@FUNC@ FcLangGetCharSet 197@TYPE1@ const FcChar8 * @ARG1@ lang 198@PURPOSE@ Get character map for a language 199@DESC@ 200Returns the FcCharMap for a language. 201@@ 202