FcBool
FcFileIsDir (const FcChar8 *file)
+{
+ return FcFileIsDir2 (FcConfigGetCurrent (), file);
+}
+
+FcBool
+FcFileIsDir2 (FcConfig *config, const FcChar8 *file)
{
struct stat statb;
- if (FcStat (file, &statb) != 0)
+ if (FcStat (config, file, &statb) != 0)
return FcFalse;
return S_ISDIR(statb.st_mode);
}
printf ("\tScanning file %s...", file);
fflush (stdout);
}
- font = FcFreeTypeQuery (file, id, blanks, &count);
+ font = FcFreeTypeQuery2 (config, file, id, blanks, &count);
if (FcDebug () & FC_DBG_SCAN)
printf ("done\n");
const FcChar8 *file,
FcConfig *config)
{
- if (FcFileIsDir (file))
+ if (FcFileIsDir2 (config, file))
return FcStrSetAdd (dirs, file);
else
return FcFileScanFontConfig (set, blanks, file, config);
FcStrSet *files;
FcChar8 *file;
FcChar8 *base;
+ const FcChar8 *scanDir;
+ FcChar8 *fullDir;
FcBool ret = FcTrue;
int i;
if (FcDebug () & FC_DBG_SCAN)
printf ("\tScanning dir %s\n", dir);
-
- d = opendir ((char *) dir);
+
+ fullDir = FcConfigGetRootPlus (config, dir);
+ if (fullDir)
+ scanDir = fullDir;
+ else
+ scanDir = dir;
+ d = opendir ((char *) scanDir);
+ if (fullDir)
+ FcStrFree (fullDir);
if (!d)
{
/* Don't complain about missing directories */
if (FcDebug () & FC_DBG_FONTSET)
printf ("cache scan dir %s\n", dir);
- if (FcStat (dir, &dir_stat) < 0)
+ if (FcStat (config, dir, &dir_stat) < 0)
goto bail;
set = FcFontSetCreate();