+2006-11-25 Bruno Haible <bruno@clisp.org>
+
+ * msgl-iconv.h (iconv_msgdomain_list): Add update_header argument.
+ * msgl-iconv.c (iconv_message_list_internal): Renamed from
+ iconv_msgdomain_list. Add update_header argument.
+ (iconv_message_list): New function.
+ (iconv_msgdomain_list): Add update_header argument.
+ * msgcmp.c (compare): Update iconv_msgdomain_list call.
+ * msgconv.c (main): Likewise.
+ * msgfilter.c (main): Likewise.
+ * msgmerge.c (merge): Likewise.
+ * xgettext.c (main): Likewise.
+
2006-11-23 Bruno Haible <bruno@clisp.org>
* write-catalog.h: Include ostream.h. Don't include <stdio.h>.
#endif
-bool
-iconv_message_list (message_list_ty *mlp,
- const char *canon_from_code, const char *canon_to_code,
- const char *from_filename)
+static bool
+iconv_message_list_internal (message_list_ty *mlp,
+ const char *canon_from_code,
+ const char *canon_to_code,
+ bool update_header,
+ const char *from_filename)
{
bool canon_from_code_overridden = (canon_from_code != NULL);
bool msgids_changed;
size_t len;
char *charset;
const char *canon_charset;
- size_t len1, len2, len3;
- char *new_header;
charsetstr += strlen ("charset=");
len = strcspn (charsetstr, " \t\n");
}
freesa (charset);
- len1 = charsetstr - header;
- len2 = strlen (canon_to_code);
- len3 = (header + strlen (header)) - (charsetstr + len);
- new_header = XNMALLOC (len1 + len2 + len3 + 1, char);
- memcpy (new_header, header, len1);
- memcpy (new_header + len1, canon_to_code, len2);
- memcpy (new_header + len1 + len2, charsetstr + len, len3 + 1);
- mlp->item[j]->msgstr = new_header;
- mlp->item[j]->msgstr_len = len1 + len2 + len3 + 1;
+ if (update_header)
+ {
+ size_t len1, len2, len3;
+ char *new_header;
+
+ len1 = charsetstr - header;
+ len2 = strlen (canon_to_code);
+ len3 = (header + strlen (header)) - (charsetstr + len);
+ new_header = XNMALLOC (len1 + len2 + len3 + 1, char);
+ memcpy (new_header, header, len1);
+ memcpy (new_header + len1, canon_to_code, len2);
+ memcpy (new_header + len1 + len2, charsetstr + len,
+ len3 + 1);
+ mlp->item[j]->msgstr = new_header;
+ mlp->item[j]->msgstr_len = len1 + len2 + len3 + 1;
+ }
}
}
}
return msgids_changed;
}
+bool
+iconv_message_list (message_list_ty *mlp,
+ const char *canon_from_code, const char *canon_to_code,
+ const char *from_filename)
+{
+ return iconv_message_list_internal (mlp,
+ canon_from_code, canon_to_code, true,
+ from_filename);
+}
+
msgdomain_list_ty *
iconv_msgdomain_list (msgdomain_list_ty *mdlp,
const char *to_code,
+ bool update_header,
const char *from_filename)
{
const char *canon_to_code;
to_code));
for (k = 0; k < mdlp->nitems; k++)
- iconv_message_list (mdlp->item[k]->messages, mdlp->encoding, canon_to_code,
- from_filename);
+ iconv_message_list_internal (mdlp->item[k]->messages,
+ mdlp->encoding, canon_to_code, update_header,
+ from_filename);
mdlp->encoding = canon_to_code;
return mdlp;
}
if (was_utf8)
{
- def = iconv_msgdomain_list (def, "UTF-8", fn1);
+ def = iconv_msgdomain_list (def, "UTF-8", true, fn1);
if (compendiums != NULL)
for (k = 0; k < compendiums->nitems; k++)
iconv_message_list (compendiums->item[k], NULL, po_charset_utf8,
{
/* It's too hairy to find out what would be the optimal target
encoding. So, convert everything to UTF-8. */
- def = iconv_msgdomain_list (def, "UTF-8", fn1);
+ def = iconv_msgdomain_list (def, "UTF-8", true, fn1);
if (compendiums != NULL)
for (k = 0; k < compendiums->nitems; k++)
iconv_message_list (compendiums->item[k],