487 lines
22 KiB
Plaintext
487 lines
22 KiB
Plaintext
/*
|
|
* fontconfig/doc/fcconfig.fncs
|
|
*
|
|
* Copyright © 2003 Keith Packard
|
|
*
|
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
* documentation for any purpose is hereby granted without fee, provided that
|
|
* the above copyright notice appear in all copies and that both that
|
|
* copyright notice and this permission notice appear in supporting
|
|
* documentation, and that the name of the author(s) not be used in
|
|
* advertising or publicity pertaining to distribution of the software without
|
|
* specific, written prior permission. The authors make no
|
|
* representations about the suitability of this software for any purpose. It
|
|
* is provided "as is" without express or implied warranty.
|
|
*
|
|
* THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
* EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
* PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
@RET@ FcConfig *
|
|
@FUNC@ FcConfigCreate
|
|
@TYPE1@ void
|
|
@PURPOSE@ Create a configuration
|
|
@DESC@
|
|
Creates an empty configuration.
|
|
@@
|
|
|
|
@RET@ FcConfig *
|
|
@FUNC@ FcConfigReference
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Increment config reference count
|
|
@DESC@
|
|
Add another reference to <parameter>config</parameter>. Configs are freed only
|
|
when the reference count reaches zero.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
In that case this function will be similar to FcConfigGetCurrent() except that
|
|
it increments the reference count before returning and the user is responsible
|
|
for destroying the configuration when not needed anymore.
|
|
@@
|
|
|
|
@RET@ void
|
|
@FUNC@ FcConfigDestroy
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Destroy a configuration
|
|
@DESC@
|
|
Decrements the config reference count. If all references are gone, destroys
|
|
the configuration and any data associated with it.
|
|
Note that calling this function with the return from FcConfigGetCurrent will
|
|
cause a new configuration to be created for use as current configuration.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigSetCurrent
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Set configuration as default
|
|
@DESC@
|
|
Sets the current default configuration to <parameter>config</parameter>. Implicitly calls
|
|
FcConfigBuildFonts if necessary, and FcConfigReference() to inrease the reference count
|
|
in <parameter>config</parameter> since 2.12.0, returning FcFalse if that call fails.
|
|
@@
|
|
|
|
@RET@ FcConfig *
|
|
@FUNC@ FcConfigGetCurrent
|
|
@TYPE1@ void
|
|
@PURPOSE@ Return current configuration
|
|
@DESC@
|
|
Returns the current default configuration.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigUptoDate
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Check timestamps on config files
|
|
@DESC@
|
|
Checks all of the files related to <parameter>config</parameter> and returns
|
|
whether any of them has been modified since the configuration was created.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcChar8 *
|
|
@FUNC@ FcConfigHome
|
|
@TYPE1@ void
|
|
@PURPOSE@ return the current home directory.
|
|
@DESC@
|
|
Return the current user's home directory, if it is available, and if using it
|
|
is enabled, and NULL otherwise.
|
|
See also <function>FcConfigEnableHome</function>).
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigEnableHome
|
|
@TYPE1@ FcBool% @ARG1@ enable
|
|
@PURPOSE@ controls use of the home directory.
|
|
@DESC@
|
|
If <parameter>enable</parameter> is FcTrue, then Fontconfig will use various
|
|
files which are specified relative to the user's home directory (using the ~
|
|
notation in the configuration). When <parameter>enable</parameter> is
|
|
FcFalse, then all use of the home directory in these contexts will be
|
|
disabled. The previous setting of the value is returned.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigBuildFonts
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Build font database
|
|
@DESC@
|
|
Builds the set of available fonts for the given configuration. Note that
|
|
any changes to the configuration after this call have indeterminate effects.
|
|
Returns FcFalse if this operation runs out of memory.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcStrList *
|
|
@FUNC@ FcConfigGetConfigDirs
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Get config directories
|
|
@DESC@
|
|
Returns the list of font directories specified in the configuration files
|
|
for <parameter>config</parameter>. Does not include any subdirectories.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcStrList *
|
|
@FUNC@ FcConfigGetFontDirs
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Get font directories
|
|
@DESC@
|
|
Returns the list of font directories in <parameter>config</parameter>. This includes the
|
|
configured font directories along with any directories below those in the
|
|
filesystem.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcStrList *
|
|
@FUNC@ FcConfigGetConfigFiles
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Get config files
|
|
@DESC@
|
|
Returns the list of known configuration files used to generate <parameter>config</parameter>.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcChar8 *
|
|
@FUNC@ FcConfigGetCache
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ DEPRECATED used to return per-user cache filename
|
|
@DESC@
|
|
With fontconfig no longer using per-user cache files, this function now
|
|
simply returns NULL to indicate that no per-user file exists.
|
|
@@
|
|
|
|
@RET@ FcStrList *
|
|
@FUNC@ FcConfigGetCacheDirs
|
|
@TYPE1@ const FcConfig * @ARG1@ config
|
|
@PURPOSE@ return the list of directories searched for cache files
|
|
@DESC@
|
|
<function>FcConfigGetCacheDirs</function> returns a string list containing
|
|
all of the directories that fontconfig will search when attempting to load a
|
|
cache file for a font directory.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcFontSet *
|
|
@FUNC@ FcConfigGetFonts
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcSetName% @ARG2@ set
|
|
@PURPOSE@ Get config font set
|
|
@DESC@
|
|
Returns one of the two sets of fonts from the configuration as specified
|
|
by <parameter>set</parameter>. This font set is owned by the library and must
|
|
not be modified or freed.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
</para><para>
|
|
This function isn't MT-safe. <function>FcConfigReference</function> must be called
|
|
before using this and then <function>FcConfigDestroy</function> when
|
|
the return value is no longer referenced.
|
|
@@
|
|
|
|
@RET@ FcBlanks *
|
|
@FUNC@ FcConfigGetBlanks
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Get config blanks
|
|
@DESC@
|
|
FcBlanks is deprecated.
|
|
This function always returns NULL.
|
|
@@
|
|
|
|
@RET@ int
|
|
@FUNC@ FcConfigGetRescanInterval
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Get config rescan interval
|
|
@DESC@
|
|
Returns the interval between automatic checks of the configuration (in
|
|
seconds) specified in <parameter>config</parameter>. The configuration is checked during
|
|
a call to FcFontList when this interval has passed since the last check.
|
|
An interval setting of zero disables automatic checks.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigSetRescanInterval
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ int% @ARG2@ rescanInterval
|
|
@PURPOSE@ Set config rescan interval
|
|
@DESC@
|
|
Sets the rescan interval. Returns FcFalse if the interval cannot be set (due
|
|
to allocation failure). Otherwise returns FcTrue.
|
|
An interval setting of zero disables automatic checks.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigAppFontAddFile
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ const FcChar8 * @ARG2@ file
|
|
@PURPOSE@ Add font file to font database
|
|
@DESC@
|
|
Adds an application-specific font to the configuration. Returns FcFalse
|
|
if the fonts cannot be added (due to allocation failure or no fonts found).
|
|
Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
|
|
the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigAppFontAddDir
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ const FcChar8 * @ARG2@ dir
|
|
@PURPOSE@ Add fonts from directory to font database
|
|
@DESC@
|
|
Scans the specified directory for fonts, adding each one found to the
|
|
application-specific set of fonts. Returns FcFalse
|
|
if the fonts cannot be added (due to allocation failure).
|
|
Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
|
|
the current configuration is used.
|
|
@@
|
|
|
|
@RET@ void
|
|
@FUNC@ FcConfigAppFontClear
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@PURPOSE@ Remove all app fonts from font database
|
|
@DESC@
|
|
Clears the set of application-specific fonts.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigSubstituteWithPat
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcPattern * @ARG2@ p
|
|
@TYPE3@ FcPattern * @ARG3@ p_pat
|
|
@TYPE4@ FcMatchKind% @ARG4@ kind
|
|
@PURPOSE@ Execute substitutions
|
|
@DESC@
|
|
Performs the sequence of pattern modification operations, if <parameter>kind</parameter> is
|
|
FcMatchPattern, then those tagged as pattern operations are applied, else
|
|
if <parameter>kind</parameter> is FcMatchFont, those tagged as font operations are applied and
|
|
p_pat is used for <test> elements with target=pattern. Returns FcFalse
|
|
if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigSubstitute
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcPattern * @ARG2@ p
|
|
@TYPE3@ FcMatchKind% @ARG3@ kind
|
|
@PURPOSE@ Execute substitutions
|
|
@DESC@
|
|
Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse
|
|
if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcPattern *
|
|
@FUNC@ FcFontMatch
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcPattern * @ARG2@ p
|
|
@TYPE3@ FcResult * @ARG3@ result
|
|
@PURPOSE@ Return best font
|
|
@DESC@
|
|
Finds the font in <parameter>sets</parameter> most closely matching
|
|
<parameter>pattern</parameter> and returns the result of
|
|
<function>FcFontRenderPrepare</function> for that font and the provided
|
|
pattern. This function should be called only after
|
|
<function>FcConfigSubstitute</function> and
|
|
<function>FcDefaultSubstitute</function> have been called for
|
|
<parameter>p</parameter>; otherwise the results will not be correct.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcFontSet *
|
|
@FUNC@ FcFontSort
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcPattern * @ARG2@ p
|
|
@TYPE3@ FcBool% @ARG3@ trim
|
|
@TYPE4@ FcCharSet ** @ARG4@ csp
|
|
@TYPE5@ FcResult * @ARG5@ result
|
|
@PURPOSE@ Return list of matching fonts
|
|
@DESC@
|
|
Returns the list of fonts sorted by closeness to <parameter>p</parameter>. If <parameter>trim</parameter> is FcTrue,
|
|
elements in the list which don't include Unicode coverage not provided by
|
|
earlier elements in the list are elided. The union of Unicode coverage of
|
|
all of the fonts is returned in <parameter>csp</parameter>, if <parameter>csp</parameter> is not NULL. This function
|
|
should be called only after FcConfigSubstitute and FcDefaultSubstitute have
|
|
been called for <parameter>p</parameter>; otherwise the results will not be correct.
|
|
</para><para>
|
|
The returned FcFontSet references FcPattern structures which may be shared
|
|
by the return value from multiple FcFontSort calls, applications must not
|
|
modify these patterns. Instead, they should be passed, along with <parameter>p</parameter> to
|
|
<function>FcFontRenderPrepare</function> which combines them into a complete pattern.
|
|
</para><para>
|
|
The FcFontSet returned by FcFontSort is destroyed by calling FcFontSetDestroy.
|
|
If <parameter>config</parameter> is NULL, the current configuration is used.
|
|
@@
|
|
|
|
@RET@ FcPattern *
|
|
@FUNC@ FcFontRenderPrepare
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcPattern * @ARG2@ pat
|
|
@TYPE3@ FcPattern * @ARG3@ font
|
|
@PURPOSE@ Prepare pattern for loading font file
|
|
@DESC@
|
|
Creates a new pattern consisting of elements of <parameter>font</parameter> not appearing
|
|
in <parameter>pat</parameter>, elements of <parameter>pat</parameter> not appearing in <parameter>font</parameter> and the best matching
|
|
value from <parameter>pat</parameter> for elements appearing in both. The result is passed to
|
|
FcConfigSubstituteWithPat with <parameter>kind</parameter> FcMatchFont and then returned.
|
|
@@
|
|
|
|
@RET@ FcFontSet *
|
|
@FUNC@ FcFontList
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcPattern * @ARG2@ p
|
|
@TYPE3@ FcObjectSet * @ARG3@ os
|
|
@PURPOSE@ List fonts
|
|
@DESC@
|
|
Selects fonts matching <parameter>p</parameter>, creates patterns from those fonts containing
|
|
only the objects in <parameter>os</parameter> and returns the set of unique such patterns.
|
|
If <parameter>config</parameter> is NULL, the default configuration is checked
|
|
to be up to date, and used.
|
|
@@
|
|
|
|
@RET@ FcChar8 *
|
|
@FUNC@ FcConfigFilename
|
|
@TYPE1@ const FcChar8 * @ARG1@ name
|
|
@PURPOSE@ Find a config file
|
|
@DESC@
|
|
This function is deprecated and is replaced by <function>FcConfigGetFilename</function>.
|
|
@@
|
|
|
|
@RET@ FcChar8 *
|
|
@FUNC@ FcConfigGetFilename
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ const FcChar8 * @ARG2@ name
|
|
@PURPOSE@ Find a config file
|
|
@DESC@
|
|
Given the specified external entity name, return the associated filename.
|
|
This provides applications a way to convert various configuration file
|
|
references into filename form.
|
|
</para><para>
|
|
A null or empty <parameter>name</parameter> indicates that the default configuration file should
|
|
be used; which file this references can be overridden with the
|
|
FONTCONFIG_FILE environment variable. Next, if the name starts with <parameter>~</parameter>, it
|
|
refers to a file in the current users home directory. Otherwise if the name
|
|
doesn't start with '/', it refers to a file in the default configuration
|
|
directory; the built-in default directory can be overridden with the
|
|
FONTCONFIG_PATH environment variable.
|
|
</para><para>
|
|
The result of this function is affected by the FONTCONFIG_SYSROOT environment variable or equivalent functionality.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigParseAndLoad
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ const FcChar8 * @ARG2@ file
|
|
@TYPE3@ FcBool% @ARG3@ complain
|
|
@PURPOSE@ load a configuration file
|
|
@DESC@
|
|
Walks the configuration in 'file' and constructs the internal representation
|
|
in 'config'. Any include files referenced from within 'file' will be loaded
|
|
and parsed. If 'complain' is FcFalse, no warning will be displayed if
|
|
'file' does not exist. Error and warning messages will be output to stderr.
|
|
Returns FcFalse if some error occurred while loading the file, either a
|
|
parse error, semantic error or allocation failure. Otherwise returns FcTrue.
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigParseAndLoadFromMemory
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ const FcChar8 * @ARG2@ buffer
|
|
@TYPE3@ FcBool% @ARG3@ complain
|
|
@PURPOSE@ load a configuration from memory
|
|
@DESC@
|
|
Walks the configuration in 'memory' and constructs the internal representation
|
|
in 'config'. Any includes files referenced from within 'memory' will be loaded
|
|
and dparsed. If 'complain' is FcFalse, no warning will be displayed if
|
|
'file' does not exist. Error and warning messages will be output to stderr.
|
|
Returns FcFalse if fsome error occurred while loading the file, either a
|
|
parse error, semantic error or allocation failure. Otherwise returns FcTrue.
|
|
@SINCE@ 2.12.5
|
|
@@
|
|
|
|
@RET@ const FcChar8 *
|
|
@FUNC@ FcConfigGetSysRoot
|
|
@TYPE1@ const FcConfig * @ARG1@ config
|
|
@PURPOSE@ Obtain the system root directory
|
|
@DESC@
|
|
Obtains the system root directory in 'config' if available. All files
|
|
(including file properties in patterns) obtained from this 'config' are
|
|
relative to this system root directory.
|
|
</para><para>
|
|
This function isn't MT-safe. <function>FcConfigReference</function> must be called
|
|
before using this and then <function>FcConfigDestroy</function> when
|
|
the return value is no longer referenced.
|
|
@SINCE@ 2.10.92
|
|
@@
|
|
|
|
@RET@ void
|
|
@FUNC@ FcConfigSetSysRoot
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ const FcChar8 * @ARG2@ sysroot
|
|
@PURPOSE@ Set the system root directory
|
|
@DESC@
|
|
Set 'sysroot' as the system root directory. All file paths used or created with
|
|
this 'config' (including file properties in patterns) will be considered or
|
|
made relative to this 'sysroot'. This allows a host to generate caches for
|
|
targets at build time. This also allows a cache to be re-targeted to a
|
|
different base directory if 'FcConfigGetSysRoot' is used to resolve file paths.
|
|
When setting this on the current config this causes changing current config
|
|
(calls FcConfigSetCurrent()).
|
|
@SINCE@ 2.10.92
|
|
@@
|
|
|
|
@RET@ void
|
|
@FUNC@ FcConfigFileInfoIterInit
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcConfigFileInfoIter * @ARG2@ iter
|
|
@PURPOSE@ Initialize the iterator
|
|
@DESC@
|
|
Initialize 'iter' with the first iterator in the config file information list.
|
|
</para><para>
|
|
The config file information list is stored in numerical order for filenames
|
|
i.e. how fontconfig actually read them.
|
|
</para><para>
|
|
This function isn't MT-safe. <function>FcConfigReference</function> must be called
|
|
before using this and then <function>FcConfigDestroy</function> when the relevant
|
|
values are no longer referenced.
|
|
@SINCE@ 2.12.91
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigFileInfoIterNext
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcConfigFileInfoIter * @ARG2@ iter
|
|
@PURPOSE@ Set the iterator to point to the next list
|
|
@DESC@
|
|
Set 'iter' to point to the next node in the config file information list.
|
|
If there is no next node, FcFalse is returned.
|
|
</para><para>
|
|
This function isn't MT-safe. <function>FcConfigReference</function> must be called
|
|
before using <function>FcConfigFileInfoIterInit</function> and then
|
|
<function>FcConfigDestroy</function> when the relevant values are no longer referenced.
|
|
@SINCE@ 2.12.91
|
|
@@
|
|
|
|
@RET@ FcBool
|
|
@FUNC@ FcConfigFileInfoIterGet
|
|
@TYPE1@ FcConfig * @ARG1@ config
|
|
@TYPE2@ FcConfigFileInfoIter * @ARG2@ iter
|
|
@TYPE3@ FcChar8 ** @ARG3@ name
|
|
@TYPE4@ FcChar8 ** @ARG4@ description
|
|
@TYPE5@ FcBool * @ARG5@ enabled
|
|
@PURPOSE@ Obtain the configuration file information
|
|
@DESC@
|
|
Obtain the filename, the description and the flag whether it is enabled or not
|
|
for 'iter' where points to current configuration file information.
|
|
If the iterator is invalid, FcFalse is returned.
|
|
</para><para>
|
|
This function isn't MT-safe. <function>FcConfigReference</function> must be called
|
|
before using <function>FcConfigFileInfoIterInit</function> and then
|
|
<function>FcConfigDestroy</function> when the relevant values are no longer referenced.
|
|
@SINCE@ 2.12.91
|
|
@@
|