]> git.wh0rd.org - fontconfig.git/blobdiff - src/fclist.c
Add better error reporting when loading config file
[fontconfig.git] / src / fclist.c
index 4cbfed2d70bc006262bf840f2942b074745ff561..17343be0a2e9410d6082e286d942087c01b437ba 100644 (file)
@@ -356,14 +356,16 @@ bail0:
 }
 
 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;
@@ -379,9 +381,9 @@ FcFontList (FcConfig        *config,
      * 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++)
@@ -440,3 +442,25 @@ bail1:
 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);
+}