Replace the path of subdirs in caches as well
diff --git a/src/fccfg.c b/src/fccfg.c
index e297a23..e1aef86 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -370,9 +370,29 @@
{
for (i = 0; i < cache->dirs_count; i++)
{
- FcChar8 *dir = FcOffsetToPtr (dirs, dirs[i], FcChar8);
+ const FcChar8 *dir = FcCacheSubdir (cache, i);
+ FcChar8 *s = NULL;
+ struct stat statb;
+
+ if (FcStat (dir, &statb) < 0)
+ {
+ const FcChar8 *alias;
+ FcChar8 *d = FcStrDirname (dir);
+
+ if ((alias = FcDirCacheFindAliasPath (dir)))
+ dir = alias;
+ else if ((alias = FcDirCacheFindAliasPath (d)))
+ {
+ FcChar8 *base = FcStrBasename (dir);
+ dir = s = FcStrBuildFilename (alias, base, NULL);
+ FcStrFree (base);
+ }
+ FcStrFree (d);
+ }
if (FcConfigAcceptFilename (config, dir))
FcStrSetAddFilename (dirSet, dir);
+ if (s)
+ FcStrFree (s);
}
}
return FcTrue;