]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
its, locating-rule: Add messages for parse error
authorDaiki Ueno <ueno@gnu.org>
Tue, 29 Sep 2015 08:53:52 +0000 (17:53 +0900)
committerDaiki Ueno <ueno@gnu.org>
Tue, 29 Sep 2015 08:53:52 +0000 (17:53 +0900)
gettext-tools/src/its.c
gettext-tools/src/locating-rule.c

index fc2fa01c2198b499c3d80aa69403097326c37a7f..56b9a598105dfd54c0334abc3ebdf48f5db8cb3c 100644 (file)
@@ -1135,31 +1135,26 @@ its_rule_list_free (struct its_rule_list_ty *rules)
   its_pool_destroy (&rules->pool);
 }
 
+
 bool
 its_rule_list_add_file (struct its_rule_list_ty *rules,
                         const char *filename)
 {
   xmlDoc *doc;
   xmlNode *root, *node;
-  FILE *fp;
 
-  fp = fopen (filename, "r");
-  if (fp == NULL)
+  doc = xmlReadFile (filename, "utf-8",
+                     XML_PARSE_NONET
+                     | XML_PARSE_NOWARNING
+                     | XML_PARSE_NOBLANKS
+                     | XML_PARSE_NOERROR);
+  if (doc == NULL)
     {
-      error (0, errno,
-             _("error while opening \"%s\" for reading"), filename);
+      xmlError *err = xmlGetLastError ();
+      error (0, 0, _("cannot read %s: %s"), filename, err->message);
       return false;
     }
 
-  doc = xmlReadFd (fileno (fp), filename, "utf-8",
-                   XML_PARSE_NONET
-                   | XML_PARSE_NOWARNING
-                   | XML_PARSE_NOBLANKS
-                   | XML_PARSE_NOERROR);
-  fclose (fp);
-  if (doc == NULL)
-    return false;
-
   root = xmlDocGetRootElement (doc);
   if (!(xmlStrEqual (root->name, BAD_CAST "rules")
         && xmlStrEqual (root->ns->href, BAD_CAST ITS_NS)))
@@ -1475,7 +1470,11 @@ its_rule_list_extract (its_rule_list_ty *rules,
                    | XML_PARSE_NOBLANKS
                    | XML_PARSE_NOERROR);
   if (doc == NULL)
-    return;
+    {
+      xmlError *err = xmlGetLastError ();
+      error (0, 0, _("cannot read %s: %s"), logical_filename, err->message);
+      return;
+    }
 
   its_rule_list_apply (rules, doc);
 
index a487814ef11ae504c2e92f29cbac139aaede4794..3d42d02672ba69c6bcab6891cfb2fa5404356ef0 100644 (file)
@@ -139,7 +139,11 @@ locating_rule_match (struct locating_rule_ty *rule,
                          | XML_PARSE_NOBLANKS
                          | XML_PARSE_NOERROR);
       if (doc == NULL)
-        return NULL;
+        {
+          xmlError *err = xmlGetLastError ();
+          error (0, 0, _("cannot read %s: %s"), filename, err->message);
+          return NULL;
+        }
 
       for (i = 0; i < rule->doc_rules.nitems; i++)
         {