On Mon, Dec 2, 2013 at 7:31 AM, Trần Ngọc Quân <vnwild...@gmail.com> wrote: >> --- a/gettext.c >> +++ b/gettext.c >> @@ -29,6 +29,17 @@ int use_gettext_poison(void) >> #endif >> >> #ifndef NO_GETTEXT >> +static int test_vsnprintf(const char *fmt, ...) >> +{ >> + char buf[26]; >> + int ret; >> + va_list ap; >> + va_start(ap, fmt); >> + ret = vsnprintf(buf, sizeof(buf), fmt, ap); >> + va_end(ap); >> + return ret; >> +} >> + > this function alway run each time we run git commad while libc is > static. It is waste. >> + /* the string is taken from v0.99.6~1 */ >> + if (test_vsnprintf("%.*s", 13, "David_K\345gedal") < 0) >> + setlocale(LC_CTYPE, "C"); >> } >> >> void git_setup_gettext(void) > > I suggest use C preprocessor instead. The person who complete git (make > debian, rpm etc. package) decide enable it or not (disable by default). Most > of people use git from distribution instead of complete it from source. > > #ifndef VSNPRINTF_OK > setlocale(LC_CTYPE, "C"); > #endif >
A single vsnprintf is cheap enough that I would not worry about performance impact. Given a choice between this and distro maintainers, some of them do check release notes, some not so much, I'd rather go with this. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html