return FcFalse;
}
+FcBool
+FcFileIsDir (const FcChar8 *file)
+{
+ struct stat statb;
+
+ if (stat ((const char *) file, &statb) != 0)
+ return FcFalse;
+ return S_ISDIR(statb.st_mode);
+}
+
int
main (int argc, char **argv)
{
FcFontSet *fs = FcFontSetCreate();
FcStrSet *dirs = FcStrSetCreate();
char *name_buf;
+ FcConfig *config;
#if HAVE_GETOPT_LONG
while ((c = getopt_long (argc, argv, "fsVv?", longopts, NULL)) != -1)
i = 1;
#endif
+ config = FcInitLoadConfig ();
+ if (!config)
+ {
+ fprintf (stderr, "%s: Can't init font config library\n", argv[0]);
+ return 1;
+ }
+ FcConfigSetCurrent (config);
+
if (i >= argc)
usage (argv[0]);
- if ((name_buf = FcCacheFileRead (fs, dirs, argv[i])) != 0)
+ if (FcFileIsDir ((const FcChar8 *)argv[i]))
+ {
+ char * dummy_name = (char *)FcStrPlus ((FcChar8 *)argv[i],
+ (FcChar8 *)"/dummy");
+ if (!FcDirScanConfig (fs, dirs, 0, 0,
+ (const FcChar8 *)argv[i], FcFalse, config))
+ fprintf (stderr, "couldn't load font dir %s\n", argv[i]);
+ else
+ {
+ /* sorry, we can't tell you where the cache file is. */
+ FcCachePrintSet (fs, dirs, dummy_name);
+ FcStrFree ((FcChar8 *)dummy_name);
+ }
+ }
+ else if ((name_buf = FcCacheFileRead (fs, dirs, argv[i])) != 0)
FcCachePrintSet (fs, dirs, name_buf);
else
{