fcconfig.fncs revision 1cc69409
12c393a42Smrg/* 2a6844aabSmrg * fontconfig/doc/fcconfig.fncs 32c393a42Smrg * 42c393a42Smrg * Copyright © 2003 Keith Packard 52c393a42Smrg * 62c393a42Smrg * Permission to use, copy, modify, distribute, and sell this software and its 72c393a42Smrg * documentation for any purpose is hereby granted without fee, provided that 82c393a42Smrg * the above copyright notice appear in all copies and that both that 92c393a42Smrg * copyright notice and this permission notice appear in supporting 10ca08ab68Smrg * documentation, and that the name of the author(s) not be used in 112c393a42Smrg * advertising or publicity pertaining to distribution of the software without 12ca08ab68Smrg * specific, written prior permission. The authors make no 132c393a42Smrg * representations about the suitability of this software for any purpose. It 142c393a42Smrg * is provided "as is" without express or implied warranty. 152c393a42Smrg * 16a6844aabSmrg * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 172c393a42Smrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 18a6844aabSmrg * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR 192c393a42Smrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 202c393a42Smrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 212c393a42Smrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 222c393a42Smrg * PERFORMANCE OF THIS SOFTWARE. 232c393a42Smrg */ 242c393a42Smrg@RET@ FcConfig * 252c393a42Smrg@FUNC@ FcConfigCreate 261cc69409Smrg@TYPE1@ void 271cc69409Smrg@PURPOSE@ Create a configuration 282c393a42Smrg@DESC@ 292c393a42SmrgCreates an empty configuration. 302c393a42Smrg@@ 312c393a42Smrg 32a6844aabSmrg@RET@ FcConfig * 33a6844aabSmrg@FUNC@ FcConfigReference 34a6844aabSmrg@TYPE1@ FcConfig * @ARG1@ config 351cc69409Smrg@PURPOSE@ Increment config reference count 36a6844aabSmrg@DESC@ 37a6844aabSmrgAdd another reference to <parameter>config</parameter>. Configs are freed only 38a6844aabSmrgwhen the reference count reaches zero. 39a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 40a6844aabSmrgIn that case this function will be similar to FcConfigGetCurrent() except that 41a6844aabSmrgit increments the reference count before returning and the user is responsible 42a6844aabSmrgfor destroying the configuration when not needed anymore. 43a6844aabSmrg@@ 44a6844aabSmrg 452c393a42Smrg@RET@ void 462c393a42Smrg@FUNC@ FcConfigDestroy 472c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 481cc69409Smrg@PURPOSE@ Destroy a configuration 492c393a42Smrg@DESC@ 50a6844aabSmrgDecrements the config reference count. If all references are gone, destroys 51a6844aabSmrgthe configuration and any data associated with it. 52a6844aabSmrgNote that calling this function with the return from FcConfigGetCurrent will 53a6844aabSmrgcause a new configuration to be created for use as current configuration. 542c393a42Smrg@@ 552c393a42Smrg 562c393a42Smrg@RET@ FcBool 572c393a42Smrg@FUNC@ FcConfigSetCurrent 582c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 591cc69409Smrg@PURPOSE@ Set configuration as default 602c393a42Smrg@DESC@ 612c393a42SmrgSets the current default configuration to <parameter>config</parameter>. Implicitly calls 62953daebaSmrgFcConfigBuildFonts if necessary, and FcConfigReference() to inrease the reference count 63953daebaSmrgin <parameter>config</parameter> since 2.12.0, returning FcFalse if that call fails. 642c393a42Smrg@@ 652c393a42Smrg 662c393a42Smrg@RET@ FcConfig * 672c393a42Smrg@FUNC@ FcConfigGetCurrent 681cc69409Smrg@TYPE1@ void 691cc69409Smrg@PURPOSE@ Return current configuration 702c393a42Smrg@DESC@ 712c393a42SmrgReturns the current default configuration. 722c393a42Smrg@@ 732c393a42Smrg 742c393a42Smrg@RET@ FcBool 752c393a42Smrg@FUNC@ FcConfigUptoDate 762c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 771cc69409Smrg@PURPOSE@ Check timestamps on config files 782c393a42Smrg@DESC@ 792c393a42SmrgChecks all of the files related to <parameter>config</parameter> and returns 802c393a42Smrgwhether any of them has been modified since the configuration was created. 81a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 822c393a42Smrg@@ 832c393a42Smrg 841cc69409Smrg@RET@ FcChar8 * 851cc69409Smrg@FUNC@ FcConfigHome 861cc69409Smrg@TYPE1@ void 871cc69409Smrg@PURPOSE@ return the current home directory. 882c393a42Smrg@DESC@ 892c393a42SmrgReturn the current user's home directory, if it is available, and if using it 90a6844aabSmrgis enabled, and NULL otherwise. 91a6844aabSmrgSee also <function>FcConfigEnableHome</function>). 922c393a42Smrg@@ 932c393a42Smrg 941cc69409Smrg@RET@ FcBool 951cc69409Smrg@FUNC@ FcConfigEnableHome 961cc69409Smrg@TYPE1@ FcBool% @ARG1@ enable 971cc69409Smrg@PURPOSE@ controls use of the home directory. 982c393a42Smrg@DESC@ 992c393a42SmrgIf <parameter>enable</parameter> is FcTrue, then Fontconfig will use various 1002c393a42Smrgfiles which are specified relative to the user's home directory (using the ~ 1012c393a42Smrgnotation in the configuration). When <parameter>enable</parameter> is 1022c393a42SmrgFcFalse, then all use of the home directory in these contexts will be 1032c393a42Smrgdisabled. The previous setting of the value is returned. 1042c393a42Smrg@@ 1052c393a42Smrg 1062c393a42Smrg@RET@ FcBool 1072c393a42Smrg@FUNC@ FcConfigBuildFonts 1082c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 1091cc69409Smrg@PURPOSE@ Build font database 1102c393a42Smrg@DESC@ 1112c393a42SmrgBuilds the set of available fonts for the given configuration. Note that 1122c393a42Smrgany changes to the configuration after this call have indeterminate effects. 1132c393a42SmrgReturns FcFalse if this operation runs out of memory. 114a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 1152c393a42Smrg@@ 1162c393a42Smrg 1172c393a42Smrg@RET@ FcStrList * 1182c393a42Smrg@FUNC@ FcConfigGetConfigDirs 1192c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 1201cc69409Smrg@PURPOSE@ Get config directories 1212c393a42Smrg@DESC@ 1222c393a42SmrgReturns the list of font directories specified in the configuration files 1232c393a42Smrgfor <parameter>config</parameter>. Does not include any subdirectories. 124a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 1252c393a42Smrg@@ 1262c393a42Smrg 1272c393a42Smrg@RET@ FcStrList * 1282c393a42Smrg@FUNC@ FcConfigGetFontDirs 1292c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 1301cc69409Smrg@PURPOSE@ Get font directories 1312c393a42Smrg@DESC@ 1322c393a42SmrgReturns the list of font directories in <parameter>config</parameter>. This includes the 1332c393a42Smrgconfigured font directories along with any directories below those in the 1342c393a42Smrgfilesystem. 135a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 1362c393a42Smrg@@ 1372c393a42Smrg 1382c393a42Smrg@RET@ FcStrList * 1392c393a42Smrg@FUNC@ FcConfigGetConfigFiles 1402c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 1411cc69409Smrg@PURPOSE@ Get config files 1422c393a42Smrg@DESC@ 1432c393a42SmrgReturns the list of known configuration files used to generate <parameter>config</parameter>. 144a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 1452c393a42Smrg@@ 1462c393a42Smrg 1472c393a42Smrg@RET@ FcChar8 * 1482c393a42Smrg@FUNC@ FcConfigGetCache 1492c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 1501cc69409Smrg@PURPOSE@ DEPRECATED used to return per-user cache filename 1512c393a42Smrg@DESC@ 1522c393a42SmrgWith fontconfig no longer using per-user cache files, this function now 1532c393a42Smrgsimply returns NULL to indicate that no per-user file exists. 1542c393a42Smrg@@ 1552c393a42Smrg 1561cc69409Smrg@RET@ FcStrList * 1571cc69409Smrg@FUNC@ FcConfigGetCacheDirs 1581cc69409Smrg@TYPE1@ const FcConfig * @ARG1@ config 1591cc69409Smrg@PURPOSE@ return the list of directories searched for cache files 1602c393a42Smrg@DESC@ 1612c393a42Smrg<function>FcConfigGetCacheDirs</function> returns a string list containing 1622c393a42Smrgall of the directories that fontconfig will search when attempting to load a 1632c393a42Smrgcache file for a font directory. 164a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 1652c393a42Smrg@@ 1662c393a42Smrg 1672c393a42Smrg@RET@ FcFontSet * 1682c393a42Smrg@FUNC@ FcConfigGetFonts 1691cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 1701cc69409Smrg@TYPE2@ FcSetName% @ARG2@ set 1711cc69409Smrg@PURPOSE@ Get config font set 1722c393a42Smrg@DESC@ 1732c393a42SmrgReturns one of the two sets of fonts from the configuration as specified 1742c393a42Smrgby <parameter>set</parameter>. This font set is owned by the library and must 175a6844aabSmrgnot be modified or freed. 176a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 177a4e54154Smrg </para><para> 178a4e54154SmrgThis function isn't MT-safe. <function>FcConfigReference</function> must be called 179a4e54154Smrgbefore using this and then <function>FcConfigDestroy</function> when 180a4e54154Smrgthe return value is no longer referenced. 1812c393a42Smrg@@ 1822c393a42Smrg 1832c393a42Smrg@RET@ FcBlanks * 1842c393a42Smrg@FUNC@ FcConfigGetBlanks 1852c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 1861cc69409Smrg@PURPOSE@ Get config blanks 1872c393a42Smrg@DESC@ 188a32e9e42SmrgFcBlanks is deprecated. 189a32e9e42SmrgThis function always returns NULL. 1902c393a42Smrg@@ 1912c393a42Smrg 1922c393a42Smrg@RET@ int 1932c393a42Smrg@FUNC@ FcConfigGetRescanInterval 1942c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 1951cc69409Smrg@PURPOSE@ Get config rescan interval 1962c393a42Smrg@DESC@ 1972c393a42SmrgReturns the interval between automatic checks of the configuration (in 1982c393a42Smrgseconds) specified in <parameter>config</parameter>. The configuration is checked during 1992c393a42Smrga call to FcFontList when this interval has passed since the last check. 200a6844aabSmrgAn interval setting of zero disables automatic checks. 201a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 2022c393a42Smrg@@ 2032c393a42Smrg 2042c393a42Smrg@RET@ FcBool 2052c393a42Smrg@FUNC@ FcConfigSetRescanInterval 2061cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 2071cc69409Smrg@TYPE2@ int% @ARG2@ rescanInterval 2081cc69409Smrg@PURPOSE@ Set config rescan interval 2092c393a42Smrg@DESC@ 2102c393a42SmrgSets the rescan interval. Returns FcFalse if the interval cannot be set (due 2112c393a42Smrgto allocation failure). Otherwise returns FcTrue. 212a6844aabSmrgAn interval setting of zero disables automatic checks. 213a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 2142c393a42Smrg@@ 2152c393a42Smrg 2162c393a42Smrg@RET@ FcBool 2172c393a42Smrg@FUNC@ FcConfigAppFontAddFile 2181cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 2191cc69409Smrg@TYPE2@ const FcChar8 * @ARG2@ file 2201cc69409Smrg@PURPOSE@ Add font file to font database 2212c393a42Smrg@DESC@ 2222c393a42SmrgAdds an application-specific font to the configuration. Returns FcFalse 223953daebaSmrgif the fonts cannot be added (due to allocation failure or no fonts found). 224953daebaSmrgOtherwise returns FcTrue. If <parameter>config</parameter> is NULL, 225953daebaSmrgthe current configuration is used. 2262c393a42Smrg@@ 2272c393a42Smrg 2282c393a42Smrg@RET@ FcBool 2292c393a42Smrg@FUNC@ FcConfigAppFontAddDir 2301cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 2311cc69409Smrg@TYPE2@ const FcChar8 * @ARG2@ dir 2321cc69409Smrg@PURPOSE@ Add fonts from directory to font database 2332c393a42Smrg@DESC@ 2342c393a42SmrgScans the specified directory for fonts, adding each one found to the 2352c393a42Smrgapplication-specific set of fonts. Returns FcFalse 236953daebaSmrgif the fonts cannot be added (due to allocation failure). 237953daebaSmrgOtherwise returns FcTrue. If <parameter>config</parameter> is NULL, 238953daebaSmrgthe current configuration is used. 2392c393a42Smrg@@ 2402c393a42Smrg 2412c393a42Smrg@RET@ void 2422c393a42Smrg@FUNC@ FcConfigAppFontClear 2432c393a42Smrg@TYPE1@ FcConfig * @ARG1@ config 2441cc69409Smrg@PURPOSE@ Remove all app fonts from font database 2452c393a42Smrg@DESC@ 2462c393a42SmrgClears the set of application-specific fonts. 247a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 2482c393a42Smrg@@ 2492c393a42Smrg 2502c393a42Smrg@RET@ FcBool 2512c393a42Smrg@FUNC@ FcConfigSubstituteWithPat 2521cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 2531cc69409Smrg@TYPE2@ FcPattern * @ARG2@ p 2541cc69409Smrg@TYPE3@ FcPattern * @ARG3@ p_pat 2551cc69409Smrg@TYPE4@ FcMatchKind% @ARG4@ kind 2561cc69409Smrg@PURPOSE@ Execute substitutions 2572c393a42Smrg@DESC@ 2582c393a42SmrgPerforms the sequence of pattern modification operations, if <parameter>kind</parameter> is 2592c393a42SmrgFcMatchPattern, then those tagged as pattern operations are applied, else 2602c393a42Smrgif <parameter>kind</parameter> is FcMatchFont, those tagged as font operations are applied and 2612c393a42Smrgp_pat is used for <test> elements with target=pattern. Returns FcFalse 2622c393a42Smrgif the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. 263a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 2642c393a42Smrg@@ 2652c393a42Smrg 2662c393a42Smrg@RET@ FcBool 2672c393a42Smrg@FUNC@ FcConfigSubstitute 2681cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 2691cc69409Smrg@TYPE2@ FcPattern * @ARG2@ p 2701cc69409Smrg@TYPE3@ FcMatchKind% @ARG3@ kind 2711cc69409Smrg@PURPOSE@ Execute substitutions 2722c393a42Smrg@DESC@ 2732c393a42SmrgCalls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse 2742c393a42Smrgif the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. 275a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 2762c393a42Smrg@@ 2772c393a42Smrg 2782c393a42Smrg@RET@ FcPattern * 2792c393a42Smrg@FUNC@ FcFontMatch 2801cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 2811cc69409Smrg@TYPE2@ FcPattern * @ARG2@ p 2821cc69409Smrg@TYPE3@ FcResult * @ARG3@ result 2831cc69409Smrg@PURPOSE@ Return best font 2842c393a42Smrg@DESC@ 2852c393a42SmrgFinds the font in <parameter>sets</parameter> most closely matching 2862c393a42Smrg<parameter>pattern</parameter> and returns the result of 2872c393a42Smrg<function>FcFontRenderPrepare</function> for that font and the provided 2882c393a42Smrgpattern. This function should be called only after 2892c393a42Smrg<function>FcConfigSubstitute</function> and 2902c393a42Smrg<function>FcDefaultSubstitute</function> have been called for 2912c393a42Smrg<parameter>p</parameter>; otherwise the results will not be correct. 292a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 2932c393a42Smrg@@ 2942c393a42Smrg 2952c393a42Smrg@RET@ FcFontSet * 2962c393a42Smrg@FUNC@ FcFontSort 2971cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 2981cc69409Smrg@TYPE2@ FcPattern * @ARG2@ p 2991cc69409Smrg@TYPE3@ FcBool% @ARG3@ trim 3001cc69409Smrg@TYPE4@ FcCharSet ** @ARG4@ csp 3011cc69409Smrg@TYPE5@ FcResult * @ARG5@ result 3021cc69409Smrg@PURPOSE@ Return list of matching fonts 3032c393a42Smrg@DESC@ 3042c393a42SmrgReturns the list of fonts sorted by closeness to <parameter>p</parameter>. If <parameter>trim</parameter> is FcTrue, 3052c393a42Smrgelements in the list which don't include Unicode coverage not provided by 3062c393a42Smrgearlier elements in the list are elided. The union of Unicode coverage of 3072c393a42Smrgall of the fonts is returned in <parameter>csp</parameter>, if <parameter>csp</parameter> is not NULL. This function 3082c393a42Smrgshould be called only after FcConfigSubstitute and FcDefaultSubstitute have 3092c393a42Smrgbeen called for <parameter>p</parameter>; otherwise the results will not be correct. 3102c393a42Smrg </para><para> 3112c393a42SmrgThe returned FcFontSet references FcPattern structures which may be shared 3122c393a42Smrgby the return value from multiple FcFontSort calls, applications must not 3132c393a42Smrgmodify these patterns. Instead, they should be passed, along with <parameter>p</parameter> to 3142c393a42Smrg<function>FcFontRenderPrepare</function> which combines them into a complete pattern. 3152c393a42Smrg </para><para> 316ca08ab68SmrgThe FcFontSet returned by FcFontSort is destroyed by calling FcFontSetDestroy. 317a6844aabSmrgIf <parameter>config</parameter> is NULL, the current configuration is used. 3182c393a42Smrg@@ 3192c393a42Smrg 3202c393a42Smrg@RET@ FcPattern * 3212c393a42Smrg@FUNC@ FcFontRenderPrepare 3221cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 3231cc69409Smrg@TYPE2@ FcPattern * @ARG2@ pat 3241cc69409Smrg@TYPE3@ FcPattern * @ARG3@ font 3251cc69409Smrg@PURPOSE@ Prepare pattern for loading font file 3262c393a42Smrg@DESC@ 3272c393a42SmrgCreates a new pattern consisting of elements of <parameter>font</parameter> not appearing 3282c393a42Smrgin <parameter>pat</parameter>, elements of <parameter>pat</parameter> not appearing in <parameter>font</parameter> and the best matching 3292c393a42Smrgvalue from <parameter>pat</parameter> for elements appearing in both. The result is passed to 330a6844aabSmrgFcConfigSubstituteWithPat with <parameter>kind</parameter> FcMatchFont and then returned. 3312c393a42Smrg@@ 3322c393a42Smrg 3332c393a42Smrg@RET@ FcFontSet * 3342c393a42Smrg@FUNC@ FcFontList 3351cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 3361cc69409Smrg@TYPE2@ FcPattern * @ARG2@ p 3371cc69409Smrg@TYPE3@ FcObjectSet * @ARG3@ os 3381cc69409Smrg@PURPOSE@ List fonts 3392c393a42Smrg@DESC@ 3402c393a42SmrgSelects fonts matching <parameter>p</parameter>, creates patterns from those fonts containing 3412c393a42Smrgonly the objects in <parameter>os</parameter> and returns the set of unique such patterns. 342a6844aabSmrgIf <parameter>config</parameter> is NULL, the default configuration is checked 343a6844aabSmrgto be up to date, and used. 3442c393a42Smrg@@ 3452c393a42Smrg 3462c393a42Smrg@RET@ FcChar8 * 3472c393a42Smrg@FUNC@ FcConfigFilename 3481cc69409Smrg@TYPE1@ const FcChar8 * @ARG1@ name 3491cc69409Smrg@PURPOSE@ Find a config file 3502c393a42Smrg@DESC@ 351a4e54154SmrgThis function is deprecated and is replaced by <function>FcConfigGetFilename</function>. 352a4e54154Smrg@@ 353a4e54154Smrg 354a4e54154Smrg@RET@ FcChar8 * 355a4e54154Smrg@FUNC@ FcConfigGetFilename 3561cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 3571cc69409Smrg@TYPE2@ const FcChar8 * @ARG2@ name 3581cc69409Smrg@PURPOSE@ Find a config file 359a4e54154Smrg@DESC@ 3602c393a42SmrgGiven the specified external entity name, return the associated filename. 3612c393a42SmrgThis provides applications a way to convert various configuration file 3622c393a42Smrgreferences into filename form. 3632c393a42Smrg </para><para> 3642c393a42SmrgA null or empty <parameter>name</parameter> indicates that the default configuration file should 3652c393a42Smrgbe used; which file this references can be overridden with the 366ca08ab68SmrgFONTCONFIG_FILE environment variable. Next, if the name starts with <parameter>~</parameter>, it 3672c393a42Smrgrefers to a file in the current users home directory. Otherwise if the name 3682c393a42Smrgdoesn't start with '/', it refers to a file in the default configuration 3692c393a42Smrgdirectory; the built-in default directory can be overridden with the 370ca08ab68SmrgFONTCONFIG_PATH environment variable. 371a4e54154Smrg </para><para> 372a4e54154SmrgThe result of this function is affected by the FONTCONFIG_SYSROOT environment variable or equivalent functionality. 3732c393a42Smrg@@ 3742c393a42Smrg 3751cc69409Smrg@RET@ FcBool 3761cc69409Smrg@FUNC@ FcConfigParseAndLoad 3771cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 3781cc69409Smrg@TYPE2@ const FcChar8 * @ARG2@ file 3791cc69409Smrg@TYPE3@ FcBool% @ARG3@ complain 3801cc69409Smrg@PURPOSE@ load a configuration file 3812c393a42Smrg@DESC@ 3822c393a42SmrgWalks the configuration in 'file' and constructs the internal representation 3832c393a42Smrgin 'config'. Any include files referenced from within 'file' will be loaded 3842c393a42Smrgand parsed. If 'complain' is FcFalse, no warning will be displayed if 3852c393a42Smrg'file' does not exist. Error and warning messages will be output to stderr. 3862c393a42SmrgReturns FcFalse if some error occurred while loading the file, either a 3872c393a42Smrgparse error, semantic error or allocation failure. Otherwise returns FcTrue. 3882c393a42Smrg@@ 389c9710b42Smrg 3901cc69409Smrg@RET@ FcBool 3911cc69409Smrg@FUNC@ FcConfigParseAndLoadFromMemory 3921cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 3931cc69409Smrg@TYPE2@ const FcChar8 * @ARG2@ buffer 3941cc69409Smrg@TYPE3@ FcBool% @ARG3@ complain 3951cc69409Smrg@PURPOSE@ load a configuration from memory 396a32e9e42Smrg@DESC@ 397a32e9e42SmrgWalks the configuration in 'memory' and constructs the internal representation 398a32e9e42Smrgin 'config'. Any includes files referenced from within 'memory' will be loaded 399a32e9e42Smrgand dparsed. If 'complain' is FcFalse, no warning will be displayed if 400a32e9e42Smrg'file' does not exist. Error and warning messages will be output to stderr. 401a32e9e42SmrgReturns FcFalse if fsome error occurred while loading the file, either a 402a32e9e42Smrgparse error, semantic error or allocation failure. Otherwise returns FcTrue. 4031cc69409Smrg@SINCE@ 2.12.5 404a32e9e42Smrg@@ 405a32e9e42Smrg 4061cc69409Smrg@RET@ const FcChar8 * 4071cc69409Smrg@FUNC@ FcConfigGetSysRoot 4081cc69409Smrg@TYPE1@ const FcConfig * @ARG1@ config 4091cc69409Smrg@PURPOSE@ Obtain the system root directory 410c9710b42Smrg@DESC@ 411a4e54154SmrgObtains the system root directory in 'config' if available. All files 412a4e54154Smrg(including file properties in patterns) obtained from this 'config' are 413a4e54154Smrgrelative to this system root directory. 414a4e54154Smrg </para><para> 415a4e54154SmrgThis function isn't MT-safe. <function>FcConfigReference</function> must be called 416a4e54154Smrgbefore using this and then <function>FcConfigDestroy</function> when 417a4e54154Smrgthe return value is no longer referenced. 4181cc69409Smrg@SINCE@ 2.10.92 419c9710b42Smrg@@ 420c9710b42Smrg 4211cc69409Smrg@RET@ void 4221cc69409Smrg@FUNC@ FcConfigSetSysRoot 4231cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 4241cc69409Smrg@TYPE2@ const FcChar8 * @ARG2@ sysroot 4251cc69409Smrg@PURPOSE@ Set the system root directory 426c9710b42Smrg@DESC@ 427a4e54154SmrgSet 'sysroot' as the system root directory. All file paths used or created with 428a4e54154Smrgthis 'config' (including file properties in patterns) will be considered or 429a4e54154Smrgmade relative to this 'sysroot'. This allows a host to generate caches for 430a4e54154Smrgtargets at build time. This also allows a cache to be re-targeted to a 431a4e54154Smrgdifferent base directory if 'FcConfigGetSysRoot' is used to resolve file paths. 432a4e54154SmrgWhen setting this on the current config this causes changing current config 433a4e54154Smrg(calls FcConfigSetCurrent()). 4341cc69409Smrg@SINCE@ 2.10.92 435c9710b42Smrg@@ 436c9710b42Smrg 4371cc69409Smrg@RET@ void 4381cc69409Smrg@FUNC@ FcConfigFileInfoIterInit 4391cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 4401cc69409Smrg@TYPE2@ FcConfigFileInfoIter * @ARG2@ iter 4411cc69409Smrg@PURPOSE@ Initialize the iterator 442a32e9e42Smrg@DESC@ 443a32e9e42SmrgInitialize 'iter' with the first iterator in the config file information list. 444a4e54154Smrg </para><para> 445a4e54154SmrgThe config file information list is stored in numerical order for filenames 446a4e54154Smrgi.e. how fontconfig actually read them. 447a4e54154Smrg </para><para> 448a4e54154SmrgThis function isn't MT-safe. <function>FcConfigReference</function> must be called 449a4e54154Smrgbefore using this and then <function>FcConfigDestroy</function> when the relevant 450a4e54154Smrgvalues are no longer referenced. 4511cc69409Smrg@SINCE@ 2.12.91 452a32e9e42Smrg@@ 453a32e9e42Smrg 4541cc69409Smrg@RET@ FcBool 4551cc69409Smrg@FUNC@ FcConfigFileInfoIterNext 4561cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 4571cc69409Smrg@TYPE2@ FcConfigFileInfoIter * @ARG2@ iter 4581cc69409Smrg@PURPOSE@ Set the iterator to point to the next list 459a32e9e42Smrg@DESC@ 460a32e9e42SmrgSet 'iter' to point to the next node in the config file information list. 461a32e9e42SmrgIf there is no next node, FcFalse is returned. 462a4e54154Smrg </para><para> 463a4e54154SmrgThis function isn't MT-safe. <function>FcConfigReference</function> must be called 464a4e54154Smrgbefore using <function>FcConfigFileInfoIterInit</function> and then 465a4e54154Smrg<function>FcConfigDestroy</function> when the relevant values are no longer referenced. 4661cc69409Smrg@SINCE@ 2.12.91 467a32e9e42Smrg@@ 468a32e9e42Smrg 4691cc69409Smrg@RET@ FcBool 4701cc69409Smrg@FUNC@ FcConfigFileInfoIterGet 4711cc69409Smrg@TYPE1@ FcConfig * @ARG1@ config 4721cc69409Smrg@TYPE2@ FcConfigFileInfoIter * @ARG2@ iter 4731cc69409Smrg@TYPE3@ FcChar8 ** @ARG3@ name 4741cc69409Smrg@TYPE4@ FcChar8 ** @ARG4@ description 4751cc69409Smrg@TYPE5@ FcBool * @ARG5@ enabled 4761cc69409Smrg@PURPOSE@ Obtain the configuration file information 477a32e9e42Smrg@DESC@ 478a32e9e42SmrgObtain the filename, the description and the flag whether it is enabled or not 479a32e9e42Smrgfor 'iter' where points to current configuration file information. 480a32e9e42SmrgIf the iterator is invalid, FcFalse is returned. 481a4e54154Smrg </para><para> 482a4e54154SmrgThis function isn't MT-safe. <function>FcConfigReference</function> must be called 483a4e54154Smrgbefore using <function>FcConfigFileInfoIterInit</function> and then 484a4e54154Smrg<function>FcConfigDestroy</function> when the relevant values are no longer referenced. 4851cc69409Smrg@SINCE@ 2.12.91 486a32e9e42Smrg@@ 487