X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=src%2Ffccfg.c;h=8b4494819e430626c18edfc846afb2f21d64be7b;hb=cd9bca69702900ca9b24319c76b2dc9432bb548f;hp=eefbca982e356e02d085b6e5bb87742241b2cad8;hpb=5576a5873dc9cd6e11234df6e64dbff18afe6378;p=fontconfig.git diff --git a/src/fccfg.c b/src/fccfg.c index eefbca9..8b44948 100644 --- a/src/fccfg.c +++ b/src/fccfg.c @@ -388,6 +388,29 @@ FcConfigAddFontDir (FcConfig *config, return FcStrSetAddFilename (config->fontDirs, d); } +const FcChar8 * +FcConfigNormalizeFontDir (FcConfig *config, + const FcChar8 *d) +{ + /* If this is a bottleneck, we can cache the fontDir inodes. */ + ino_t di; + int n; + struct stat s; + + if (stat ((char *)d, &s) == -1) + return 0; + di = s.st_ino; + + for (n = 0; n < config->fontDirs->num; n++) + { + if (stat ((char *)config->fontDirs->strs[n], &s) == -1) + continue; + if (di == s.st_ino) + return config->fontDirs->strs[n]; + } + return 0; +} + FcBool FcConfigAddDir (FcConfig *config, const FcChar8 *d)