From: Bruno Haible Date: Mon, 4 Feb 2008 23:36:14 +0000 (+0000) Subject: Avoid attaching "previous msgid" information to untranslated messages. X-Git-Tag: v0.18~461 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a1e9c30d7c19b1ce68def821ef636d39f9dc1ad3;p=thirdparty%2Fgettext.git Avoid attaching "previous msgid" information to untranslated messages. --- diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index 61624e2d9..1fc68d86e 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,10 @@ +2008-02-04 Bruno Haible + + * msgmerge.c (match_domain): Remove the prev_msgid fields also from + the untranslated messages. + Reported by Yukiko Bando via + Chusslove Illich (Часлав Илић) . + 2008-02-04 Bruno Haible * msgmerge.c (message_merge): Store the prev_msgid field also if the diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c index 7edef4106..2ed6afccd 100644 --- a/gettext-tools/src/msgmerge.c +++ b/gettext-tools/src/msgmerge.c @@ -1172,9 +1172,9 @@ message_merge (message_ty *def, message_ty *ref, bool force_fuzzy, Do so only when --previous is specified, for backward compatibility. Since the "previous msgid" represents the original msgid that led to the current msgstr, - - we can omit it if the resulting message is not fuzzy (but do this - in a later pass, since result->is_fuzzy is not finalized at this - point), + - we can omit it if the resulting message is not fuzzy or is + untranslated (but do this in a later pass, since result->is_fuzzy + is not finalized at this point), - otherwise, if the corresponding message from the definition file was translated (not fuzzy), we use that message's msgid, - otherwise, we use that message's prev_msgid. */ @@ -1496,13 +1496,14 @@ this message should not define plural forms")); } } - /* Now that mp->is_fuzzy is finalized for all messages, remove the previous - msgid information from all messages that are not fuzzy. */ + /* Now that mp->is_fuzzy is finalized for all messages, remove the + "previous msgid" information from all messages that are not fuzzy or + are untranslated. */ for (j = 0; j < resultmlp->nitems; j++) { message_ty *mp = resultmlp->item[j]; - if (!mp->is_fuzzy) + if (!mp->is_fuzzy || mp->msgstr[0] == '\0') { mp->prev_msgctxt = NULL; mp->prev_msgid = NULL;