}
FcFontSet *
-FcFontList (FcConfig *config,
- FcPattern *p,
- FcObjectSet *os)
+FcFontSetList (FcConfig *config,
+ FcFontSet **sets,
+ int nsets,
+ FcPattern *p,
+ FcObjectSet *os)
{
FcFontSet *ret;
FcFontSet *s;
int f;
- FcSetName set;
+ int set;
FcListHashTable table;
int i;
FcListBucket *bucket;
* Walk all available fonts adding those that
* match to the hash table
*/
- for (set = FcSetSystem; set <= FcSetApplication; set++)
+ for (set = 0; set < nsets; set++)
{
- s = config->fonts[set];
+ s = sets[set];
if (!s)
continue;
for (f = 0; f < s->nfont; f++)
bail0:
return 0;
}
+
+FcFontSet *
+FcFontList (FcConfig *config,
+ FcPattern *p,
+ FcObjectSet *os)
+{
+ FcFontSet *sets[2];
+ int nsets;
+
+ if (!config)
+ {
+ config = FcConfigGetCurrent ();
+ if (!config)
+ return 0;
+ }
+ nsets = 0;
+ if (config->fonts[FcSetSystem])
+ sets[nsets++] = config->fonts[FcSetSystem];
+ if (config->fonts[FcSetApplication])
+ sets[nsets++] = config->fonts[FcSetApplication];
+ return FcFontSetList (config, sets, nsets, p, os);
+}