Ævar Arnfjörð Bjarmason wrote: > In 107880a I removed our use of setlocale(LC_CTYPE, "") because of a > bug in the GNU C Library [1] Future readers might benefit from a reminder that it is vsnprintf that is broken. Aside, not about this patch: glibc printf can be very convenient for translators, because of format strings like "%4$s". Do other common platforms like FreeBSD and Mingw have something similar? > --- a/gettext.c > +++ b/gettext.c > @@ -17,5 +19,9 @@ extern void git_setup_gettext(void) { > } > > (void)setlocale(LC_MESSAGES, ""); > + (void)setlocale(LC_CTYPE, ""); > + charset = nl_langinfo(CODESET); > + (void)bind_textdomain_codeset("git", charset); > + (void)setlocale(LC_CTYPE, "C"); For the curious: we cannot use setlocale(LC_CTYPE, ""); charset = nl_langinfo(CODESET); setlocale(LC_CTYPE, "C"); bind_textdomain_codeset("git", charset); because nl_langinfo returns a pointer to a static buffer that might be wiped out by setlocale() iirc. Thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html