From 03dcaaa08fe324a058c427ab2da993fddaa7b3fd Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 22 Aug 2008 17:49:02 -0400 Subject: [PATCH] Document when config can be NULL (#17105) Note that this also fixes a bug with FcFontList() where previously it was NOT checking whether the config is up-to-date. May want to keep the old behavior and document that ScanInterval is essentially unused internally (FcFontSetList uses it, but we can remove that too). --- doc/fcconfig.fncs | 21 +++++++++++++++++++++ doc/fcfontset.fncs | 3 +++ src/fclist.c | 3 +++ 3 files changed, 27 insertions(+) diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs index 4251309..16d1000 100644 --- a/doc/fcconfig.fncs +++ b/doc/fcconfig.fncs @@ -63,6 +63,7 @@ Returns the current default configuration. @DESC@ Checks all of the files related to config and returns whether any of them has been modified since the configuration was created. +If config is NULL, the current configuration is used. @@ @RET@ FcChar8 * @@ -95,6 +96,7 @@ disabled. The previous setting of the value is returned. 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 config is NULL, the current configuration is used. @@ @RET@ FcStrList * @@ -104,6 +106,7 @@ Returns FcFalse if this operation runs out of memory. @DESC@ Returns the list of font directories specified in the configuration files for config. Does not include any subdirectories. +If config is NULL, the current configuration is used. @@ @RET@ FcStrList * @@ -114,6 +117,7 @@ for config. Does not include any subdirectories. Returns the list of font directories in config. This includes the configured font directories along with any directories below those in the filesystem. +If config is NULL, the current configuration is used. @@ @RET@ FcStrList * @@ -122,6 +126,7 @@ filesystem. @PURPOSE@ Get config files @DESC@ Returns the list of known configuration files used to generate config. +If config is NULL, the current configuration is used. @@ @RET@ FcChar8 * @@ -141,6 +146,7 @@ simply returns NULL to indicate that no per-user file exists. FcConfigGetCacheDirs 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 config is NULL, the current configuration is used. @@ @RET@ FcFontSet * @@ -152,6 +158,7 @@ cache file for a font directory. Returns one of the two sets of fonts from the configuration as specified by set. This font set is owned by the library and must not be freed. +If config is NULL, the current configuration is used. @@ @RET@ FcBlanks * @@ -161,6 +168,9 @@ not be freed. @DESC@ Returns the FcBlanks object associated with the given configuration, if no blanks were present in the configuration, this function will return 0. +The returned FcBlanks object if not NULL, is valid as long as the owning +FcConfig is alive. +If config is NULL, the current configuration is used. @@ @RET@ int @@ -172,6 +182,7 @@ Returns the interval between automatic checks of the configuration (in seconds) specified in config. 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 config is NULL, the current configuration is used. @@ @RET@ FcBool @@ -183,6 +194,7 @@ An interval setting of zero disables automatic checks. 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 config is NULL, the current configuration is used. @@ @RET@ FcBool @@ -193,6 +205,7 @@ An interval setting of zero disables automatic checks. @DESC@ Adds an application-specific font to the configuration. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. +If config is NULL, the current configuration is used. @@ @RET@ FcBool @@ -204,6 +217,7 @@ if the fonts cannot be added (due to allocation failure). Otherwise returns FcTr 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 config is NULL, the current configuration is used. @@ @RET@ void @@ -212,6 +226,7 @@ if the fonts cannot be added (due to allocation failure). Otherwise returns FcTr @PURPOSE@ Remove all app fonts from font database @DESC@ Clears the set of application-specific fonts. +If config is NULL, the current configuration is used. @@ @RET@ FcBool @@ -227,6 +242,7 @@ FcMatchPattern, then those tagged as pattern operations are applied, else if kind 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 config is NULL, the current configuration is used. @@ @RET@ FcBool @@ -238,6 +254,7 @@ if the substitution cannot be performed (due to allocation failure). Otherwise r @DESC@ Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. +If config is NULL, the current configuration is used. @@ @RET@ FcPattern * @@ -254,6 +271,7 @@ pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. +If config is NULL, the current configuration is used. @@ @RET@ FcFontSet * @@ -278,6 +296,7 @@ modify these patterns. Instead, they should be passed, along with p< FcFontRenderPrepare which combines them into a complete pattern. The FcFontSet returned by FcFontSort is destroyed by caling FcFontSetDestroy. +If config is NULL, the current configuration is used. @@ @RET@ FcPattern * @@ -302,6 +321,8 @@ FcConfigSubstituteWithPat with kind FcMatchFont and then @DESC@ Selects fonts matching p, creates patterns from those fonts containing only the objects in os and returns the set of unique such patterns. +If config is NULL, the default configuration is checked +to be up to date, and used. @@ @RET@ FcChar8 * diff --git a/doc/fcfontset.fncs b/doc/fcfontset.fncs index 19d4272..db1ae37 100644 --- a/doc/fcfontset.fncs +++ b/doc/fcfontset.fncs @@ -62,6 +62,8 @@ Selects fonts matching pattern from sets, creates patterns from those fonts containing only the objects in object_set and returns the set of unique such patterns. +If config is NULL, the default configuration is checked +to be up to date, and used. @@ @RET@ FcPattern * @@ -80,6 +82,7 @@ pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for pattern; otherwise the results will not be correct. +If config is NULL, the current configuration is used. Returns NULL if an error occurs during this process. @@ diff --git a/src/fclist.c b/src/fclist.c index 2a53b79..e87e06e 100644 --- a/src/fclist.c +++ b/src/fclist.c @@ -555,6 +555,9 @@ FcFontList (FcConfig *config, if (!config) { + if (!FcInitBringUptoDate ()) + return 0; + config = FcConfigGetCurrent (); if (!config) return 0; -- 2.39.5