]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
msgl-check: Treat missing header errors as warnings
authorDaiki Ueno <ueno@gnu.org>
Mon, 2 Jun 2014 09:04:41 +0000 (18:04 +0900)
committerDaiki Ueno <ueno@gnu.org>
Mon, 2 Jun 2014 10:27:37 +0000 (19:27 +0900)
Problem reported by Richard Hughes at
<https://lists.fedoraproject.org/pipermail/devel/2014-June/199539.html>.
After <https://savannah.gnu.org/bugs/?40262>, "msgfmt -c" reports
error on missing PO headers.  However, it turned out to be too strict
for the projects using Launchpad Translations.  Let's relax the check
for the moment and wait for one or two release cycles.
* gettext-tools/src/msgl-check.c (check_header_entry): Report missing
required headers as warning, instead of error.

gettext-tools/src/ChangeLog
gettext-tools/src/msgl-check.c
gettext-tools/tests/ChangeLog
gettext-tools/tests/msgfmt-10

index c8948f3dd1ad03586979a1028f844975cf90f6a8..b82ca6942eec36e29935a8bfd7fbcc015b7f2d4c 100644 (file)
@@ -1,3 +1,15 @@
+2014-06-02  Daiki Ueno  <ueno@gnu.org>
+
+       msgl-check: Treat missing header errors as warnings
+       Problem reported by Richard Hughes at
+       <https://lists.fedoraproject.org/pipermail/devel/2014-June/199539.html>.
+       After <https://savannah.gnu.org/bugs/?40262>, "msgfmt -c" reports
+       error on missing PO headers.  However, it turned out to be too strict
+       for the projects using Launchpad Translations.  Let's relax the check
+       for the moment and wait for one or two release cycles.
+       * msgl-check.c (check_header_entry): Report missing
+       required headers as warning, instead of error.
+
 2014-06-02  Daiki Ueno  <ueno@gnu.org>
 
        * gettext 0.19 released.
index ee68ae4da90475f4ba87161834473270c9ee8362..64a68f61a1279bbd8b8c052b4e1ce8fc72cb1376 100644 (file)
@@ -777,8 +777,18 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
 
   for (cnt = 0; cnt < nfields; ++cnt)
     {
+      /* 0.19 change: It would better report error if a required
+         header field is missing.  However, traditionally we didn't
+         treat it as error.  Let's wait for one or two cycles until we
+         can assume the required header fields are always
+         available in practical PO files.  */
+#if 0
       int severity =
         (cnt < nrequiredfields ? PO_SEVERITY_ERROR : PO_SEVERITY_WARNING);
+#else
+      int severity =
+        PO_SEVERITY_WARNING;
+#endif
       const char *field = required_fields[cnt];
       size_t len = strlen (field);
       const char *line;
@@ -805,7 +815,8 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
                                    field);
                       po_xerror (severity, mp, NULL, 0, 0, true, msg);
                       free (msg);
-                      seen_errors++;
+                      if (severity == PO_SEVERITY_ERROR)
+                        seen_errors++;
                     }
                 }
               break;
@@ -821,7 +832,8 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
                        field);
           po_xerror (severity, mp, NULL, 0, 0, true, msg);
           free (msg);
-          seen_errors++;
+          if (severity == PO_SEVERITY_ERROR)
+            seen_errors++;
         }
     }
   return seen_errors;
index 2587f33bc70fe395e3d91ea4d6dfe9144b97dbe0..7c850443216d00f65c73631f5a9cef195f0247b7 100644 (file)
@@ -1,3 +1,7 @@
+2014-06-02  Daiki Ueno  <ueno@gnu.org>
+
+       * msgfmt-10: Update after error checking behaviro change.
+
 2014-06-02  Daiki Ueno  <ueno@gnu.org>
 
        * gettext 0.19 released.
index 03ee55be705c16c008702808157d352a4748841d..d747cf8ad4ed90858a8f4842b6e4b0bf0ed780b6 100755 (executable)
@@ -48,7 +48,6 @@ msgstr ""
 "Project-Id-Version: GNU bison\n"
 "PO-Revision-Date: 2001-04-05 19:47+0200\n"
 "Last-Translator: ABC DEF <abc@gnu.uucp>\n"
-"Language-Team: test <test@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-9\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -68,9 +67,10 @@ ${MSGFMT} --check -o /dev/null mf-test10.po2 \
     2>&1 | grep -v '^==' | sed -e 's|[^ ]*\\msgfmt\.exe|msgfmt|' -e 's|^msgfmt\.exe|msgfmt|' | LC_ALL=C tr -d '\r' > mf-test10.err
 
 cat << EOF > mf-test10.ok
+mf-test10.po2:6: warning: header field 'Language-Team' missing in header
 mf-test10.po2:6: warning: header field 'Language' missing in header
-mf-test10.po2:20: number of format specifications in 'msgid_plural' and 'msgstr[1]' does not match
-msgfmt: found 2 fatal errors
+mf-test10.po2:19: number of format specifications in 'msgid_plural' and 'msgstr[1]' does not match
+msgfmt: found 1 fatal error
 EOF
 
 : ${DIFF=diff}