From 317449061ac9b2ed2a24fa51de1bc75278ae8497 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Mon, 2 Jun 2014 18:04:41 +0900 Subject: [PATCH] msgl-check: Treat missing header errors as warnings Problem reported by Richard Hughes at . After , "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 | 12 ++++++++++++ gettext-tools/src/msgl-check.c | 16 ++++++++++++++-- gettext-tools/tests/ChangeLog | 4 ++++ gettext-tools/tests/msgfmt-10 | 6 +++--- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index c8948f3dd..b82ca6942 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,15 @@ +2014-06-02 Daiki Ueno + + msgl-check: Treat missing header errors as warnings + Problem reported by Richard Hughes at + . + After , "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 * gettext 0.19 released. diff --git a/gettext-tools/src/msgl-check.c b/gettext-tools/src/msgl-check.c index ee68ae4da..64a68f61a 100644 --- a/gettext-tools/src/msgl-check.c +++ b/gettext-tools/src/msgl-check.c @@ -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; diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index 2587f33bc..7c8504432 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,7 @@ +2014-06-02 Daiki Ueno + + * msgfmt-10: Update after error checking behaviro change. + 2014-06-02 Daiki Ueno * gettext 0.19 released. diff --git a/gettext-tools/tests/msgfmt-10 b/gettext-tools/tests/msgfmt-10 index 03ee55be7..d747cf8ad 100755 --- a/gettext-tools/tests/msgfmt-10 +++ b/gettext-tools/tests/msgfmt-10 @@ -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 \n" -"Language-Team: test \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} -- 2.47.2