gettext/gettext-no-strict-header-check.patch

90 lines
3.6 KiB
Diff
Raw Normal View History

2014-06-02 10:14:25 +00:00
From 953c7242b96f150c6f4b67d15603c79695e3f4f6 Mon Sep 17 00:00:00 2001
2014-06-02 10:02:23 +00:00
From: Daiki Ueno <ueno@gnu.org>
Date: Mon, 2 Jun 2014 18:04:41 +0900
2014-06-02 10:14:25 +00:00
Subject: [PATCH] msgl-check: Treat missing header errors as warnings
2014-06-02 10:02:23 +00:00
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.
---
2014-06-02 10:14:25 +00:00
gettext-tools/src/msgl-check.c | 16 ++++++++++++++--
2014-06-02 10:02:23 +00:00
gettext-tools/tests/msgfmt-10 | 6 +++---
2014-06-02 10:14:25 +00:00
2 files changed, 17 insertions(+), 5 deletions(-)
2014-06-02 10:02:23 +00:00
diff --git a/gettext-tools/src/msgl-check.c b/gettext-tools/src/msgl-check.c
2014-06-02 10:14:25 +00:00
index ee68ae4..64a68f6 100644
2014-06-02 10:02:23 +00:00
--- a/gettext-tools/src/msgl-check.c
+++ b/gettext-tools/src/msgl-check.c
2014-06-02 10:14:25 +00:00
@@ -777,8 +777,18 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
2014-06-02 10:02:23 +00:00
for (cnt = 0; cnt < nfields; ++cnt)
{
2014-06-02 10:14:25 +00:00
+ /* 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. */
2014-06-02 10:02:23 +00:00
+#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;
2014-06-02 10:14:25 +00:00
@@ -805,7 +815,8 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
2014-06-02 10:02:23 +00:00
field);
po_xerror (severity, mp, NULL, 0, 0, true, msg);
free (msg);
- seen_errors++;
+ if (severity == PO_SEVERITY_ERROR)
+ seen_errors++;
}
}
break;
2014-06-02 10:14:25 +00:00
@@ -821,7 +832,8 @@ check_header_entry (const message_ty *mp, const char *msgstr_string)
2014-06-02 10:02:23 +00:00
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/msgfmt-10 b/gettext-tools/tests/msgfmt-10
2014-06-02 10:14:25 +00:00
index 03ee55b..d747cf8 100755
2014-06-02 10:02:23 +00:00
--- 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 <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
2014-06-02 10:14:25 +00:00
+msgfmt: found 1 fatal error
2014-06-02 10:02:23 +00:00
EOF
: ${DIFF=diff}
--
1.9.0