- while (FcCacheReadString (file, subdir_name, sizeof (subdir_name)) &&
- strlen (subdir_name) > 0)
- FcStrSetAdd (dirs, (FcChar8 *)subdir_name);
+ /* skip directory name; it's just for fc-cat */
+ if (!FcCacheReadString (file, subdir_name, sizeof (subdir_name)))
+ goto bail;
+
+ if (dirname)
+ strcpy (dirname, subdir_name);
+
+ for (i = 0; i < metadata.subdirs; i++) {
+ if (!FcCacheReadString (file, subdir_name, sizeof (subdir_name)))
+ goto bail;
+ FcStrSetAdd (dirs, (FcChar8 *)subdir_name);
+ }