From 7ae24b4554a8543d8cd41a83b6114e0143982758 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 7 Oct 2012 16:37:03 -0400 Subject: [PATCH] Refactor; contain default config in fccfg.c --- src/fccfg.c | 26 ++++++++++++++++++++++++-- src/fcinit.c | 14 ++------------ src/fcint.h | 8 ++++++-- src/fcxml.c | 4 ++-- 4 files changed, 34 insertions(+), 18 deletions(-) diff --git a/src/fccfg.c b/src/fccfg.c index dd34f5a..d7e588c 100644 --- a/src/fccfg.c +++ b/src/fccfg.c @@ -36,7 +36,29 @@ #define R_OK 4 #endif -FcConfig *_fcConfig; +static FcConfig *_fcConfig; + +FcBool +FcConfigInit (void) +{ + FcConfig *config; + + if (_fcConfig) + return FcTrue; + config = FcInitLoadConfigAndFonts (); + if (!config) + return FcFalse; + FcConfigSetCurrent (config); + return FcTrue; +} + +void +FcConfigFini (void) +{ + if (_fcConfig) + FcConfigDestroy (_fcConfig); +} + FcConfig * FcConfigCreate (void) @@ -406,7 +428,7 @@ FcConfig * FcConfigGetCurrent (void) { if (!_fcConfig) - if (!FcInit ()) + if (!FcConfigInit ()) return 0; return _fcConfig; } diff --git a/src/fcinit.c b/src/fcinit.c index 75d96a9..a7d4bc5 100644 --- a/src/fcinit.c +++ b/src/fcinit.c @@ -135,15 +135,7 @@ FcInitLoadConfigAndFonts (void) FcBool FcInit (void) { - FcConfig *config; - - if (_fcConfig) - return FcTrue; - config = FcInitLoadConfigAndFonts (); - if (!config) - return FcFalse; - FcConfigSetCurrent (config); - return FcTrue; + return FcConfigInit (); } /* @@ -152,9 +144,7 @@ FcInit (void) void FcFini (void) { - if (_fcConfig) - FcConfigDestroy (_fcConfig); - + FcConfigFini (); FcCacheFini (); FcDefaultFini (); } diff --git a/src/fcint.h b/src/fcint.h index f678b0c..17298f7 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -505,8 +505,6 @@ struct _FcConfig { FcExprPage *expr_pool; /* pool of FcExpr's */ }; -extern FcPrivate FcConfig *_fcConfig; - typedef struct _FcFileTime { time_t time; FcBool set; @@ -569,6 +567,12 @@ FcDirCacheReference (FcCache *cache, int nref); /* fccfg.c */ +FcPrivate FcBool +FcConfigInit (void); + +FcPrivate void +FcConfigFini (void); + FcPrivate FcChar8 * FcConfigXdgCacheHome (void); diff --git a/src/fcxml.c b/src/fcxml.c index cf9c8dd..8c934f5 100644 --- a/src/fcxml.c +++ b/src/fcxml.c @@ -1107,7 +1107,7 @@ FcPStackPop (FcConfigParse *parse) } static FcBool -FcConfigInit (FcConfigParse *parse, const FcChar8 *name, FcConfig *config, XML_Parser parser) +FcConfigParseInit (FcConfigParse *parse, const FcChar8 *name, FcConfig *config, XML_Parser parser) { parse->pstack = 0; parse->pstack_static_used = 0; @@ -2984,7 +2984,7 @@ FcConfigParseAndLoad (FcConfig *config, if (!p) goto bail1; - if (!FcConfigInit (&parse, name, config, p)) + if (!FcConfigParseInit (&parse, name, config, p)) goto bail2; #ifndef ENABLE_LIBXML2