]> git.wh0rd.org - fontconfig.git/blobdiff - src/fcxml.c
Add better error reporting when loading config file
[fontconfig.git] / src / fcxml.c
index f31a93f16ebcad90eae82ff6cb25aeb03df0ec0d..06f1112a9955ad357e5cd46e9bc8378497afadea 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $XFree86: xc/lib/fontconfig/src/fcxml.c,v 1.2 2002/02/15 06:01:28 keithp Exp $
+ * $XFree86: xc/lib/fontconfig/src/fcxml.c,v 1.5 2002/02/22 18:54:07 keithp Exp $
  *
  * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
  *
@@ -1097,9 +1097,13 @@ FcPopExpr (FcConfigParse *parse)
        break;
     case FcVStackString:
     case FcVStackFamily:
+       expr = FcExprCreateString (vstack->u.string);
+       break;
     case FcVStackField:
+       expr = FcExprCreateField ((char *) vstack->u.string);
+       break;
     case FcVStackConstant:
-       expr = FcExprCreateString (vstack->u.string);
+       expr = FcExprCreateConst (vstack->u.string);
        break;
     case FcVStackPrefer:
     case FcVStackAccept:
@@ -1180,7 +1184,7 @@ FcParseInclude (FcConfigParse *parse)
     i = FcConfigGetAttribute (parse, "ignore_missing");
     if (i && FcConfigLexBool ((FcChar8 *) i) == FcTrue)
        ignore_missing = FcTrue;
-    if (!FcConfigParseAndLoad (parse->config, s, ignore_missing))
+    if (!FcConfigParseAndLoad (parse->config, s, !ignore_missing))
        parse->error = FcTrue;
     free (s);
 }
@@ -1592,12 +1596,22 @@ FcConfigParseAndLoad (FcConfig      *config,
     do {
        buf = XML_GetBuffer (p, BUFSIZ);
        if (!buf)
+       {
+           FcConfigError (&parse, "cannot get parse buffer");
            goto bail3;
+       }
        len = fread (buf, 1, BUFSIZ, f);
        if (len < 0)
+       {
+           FcConfigError (&parse, "failed reading config file");
            goto bail3;
+       }
        if (!XML_ParseBuffer (p, len, len == 0))
+       {
+           FcConfigError (&parse, "%s", 
+                          XML_ErrorString (XML_GetErrorCode (p)));
            goto bail3;
+       }
     } while (len != 0);
     error = parse.error;
 bail3: