+2008-02-04 Bruno Haible <bruno@clisp.org>
+
+ * msgmerge.c (match_domain): Remove the prev_msgid fields also from
+ the untranslated messages.
+ Reported by Yukiko Bando <ybando@k6.dion.ne.jp> via
+ Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>.
+
2008-02-04 Bruno Haible <bruno@clisp.org>
* msgmerge.c (message_merge): Store the prev_msgid field also if the
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. */
}
}
- /* 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;