[Fontconfig] fontconfig: Branch 'master' - 2 commits
Akira TAGOH
tagoh at kemper.freedesktop.org
Mon Feb 5 05:51:34 UTC 2018
fc-cache/fc-cache.c | 2 +-
src/fccfg.c | 8 --------
src/fcinit.c | 14 +++++++++++---
src/fcint.h | 4 ----
src/fcxml.c | 7 +++++--
5 files changed, 17 insertions(+), 18 deletions(-)
New commits:
commit 0394cb7829d16a902e2eebdcc4f00db3774916b8
Author: Akira TAGOH <akira at tagoh.org>
Date: Mon Feb 5 13:31:00 2018 +0900
Ensure the user config dir is available in the list of config dirs on the fallback config
diff --git a/src/fcinit.c b/src/fcinit.c
index 30646dc..5831a19 100644
--- a/src/fcinit.c
+++ b/src/fcinit.c
@@ -39,15 +39,23 @@ static FcConfig *
FcInitFallbackConfig (const FcChar8 *sysroot)
{
FcConfig *config;
+ const FcChar8 *fallback = (const FcChar8 *) "" \
+ "<fontconfig>" \
+ " <dir>" FC_DEFAULT_FONTS "</dir>" \
+ " <dir prefix=\"xdg\">fonts</dir>" \
+ " <cachedir>" FC_CACHEDIR "</cachedir>" \
+ " <cachedir prefix=\"xdg\">fontconfig</cachedir>" \
+ " <include ignore_missing=\"yes\" prefix=\"xdg\">fontconfig/conf.d</include>" \
+ " <include ignore_missing=\"yes\" prefix=\"xdg\">fontconfig/fonts.conf</include>" \
+ "</fontconfig>";
config = FcConfigCreate ();
if (!config)
goto bail0;
FcConfigSetSysRoot (config, sysroot);
- if (!FcConfigAddFontDir (config, (FcChar8 *) FC_DEFAULT_FONTS))
- goto bail1;
- if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR))
+ if (!FcConfigParseAndLoadFromMemory (config, fallback, FcFalse))
goto bail1;
+
return config;
bail1:
commit 34b5c949d51fcc8eafe2301ca8f539f735e31522
Author: Akira TAGOH <akira at tagoh.org>
Date: Mon Feb 5 12:47:01 2018 +0900
Do not mix up font dirs into the list of config dirs
diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c
index 1cea5c7..dc93c19 100644
--- a/fc-cache/fc-cache.c
+++ b/fc-cache/fc-cache.c
@@ -383,7 +383,7 @@ main (int argc, char **argv)
FcStrSetDestroy (dirs);
}
else
- list = FcConfigGetConfigDirs (config);
+ list = FcConfigGetFontDirs (config);
if ((processed_dirs = FcStrSetCreate()) == NULL) {
fprintf(stderr, _("Out of Memory\n"));
diff --git a/src/fccfg.c b/src/fccfg.c
index 2351ac2..eb0b76d 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -520,14 +520,6 @@ FcConfigAddFontDir (FcConfig *config,
return FcStrSetAddFilename (config->fontDirs, d);
}
-FcBool
-FcConfigAddDir (FcConfig *config,
- const FcChar8 *d)
-{
- return (FcConfigAddConfigDir (config, d) &&
- FcConfigAddFontDir (config, d));
-}
-
FcStrList *
FcConfigGetFontDirs (FcConfig *config)
{
diff --git a/src/fcinit.c b/src/fcinit.c
index 8bb0fd4..30646dc 100644
--- a/src/fcinit.c
+++ b/src/fcinit.c
@@ -44,7 +44,7 @@ FcInitFallbackConfig (const FcChar8 *sysroot)
if (!config)
goto bail0;
FcConfigSetSysRoot (config, sysroot);
- if (!FcConfigAddDir (config, (FcChar8 *) FC_DEFAULT_FONTS))
+ if (!FcConfigAddFontDir (config, (FcChar8 *) FC_DEFAULT_FONTS))
goto bail1;
if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR))
goto bail1;
diff --git a/src/fcint.h b/src/fcint.h
index 537023f..5de311f 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -659,10 +659,6 @@ FcConfigAddFontDir (FcConfig *config,
const FcChar8 *d);
FcPrivate FcBool
-FcConfigAddDir (FcConfig *config,
- const FcChar8 *d);
-
-FcPrivate FcBool
FcConfigAddCacheDir (FcConfig *config,
const FcChar8 *d);
diff --git a/src/fcxml.c b/src/fcxml.c
index e6cc6b8..7c8aaac 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -2156,7 +2156,7 @@ FcParseDir (FcConfigParse *parse)
FcConfigMessage (parse, FcSevereWarning, "empty font directory name ignored");
else if (!parse->scanOnly && (!FcStrUsesHome (data) || FcConfigHome ()))
{
- if (!FcConfigAddDir (parse->config, data))
+ if (!FcConfigAddFontDir (parse->config, data))
FcConfigMessage (parse, FcSevereError, "out of memory; cannot add directory %s", data);
}
FcStrBufDestroy (&parse->pstack->str);
@@ -3206,7 +3206,10 @@ FcConfigParseAndLoadDir (FcConfig *config,
if (FcDebug () & FC_DBG_CONFIG)
printf ("\tScanning config dir %s\n", dir);
-
+
+ if (load)
+ FcConfigAddConfigDir (config, dir);
+
while (ret && (e = readdir (d)))
{
int d_len;
More information about the Fontconfig
mailing list