Jeff King <peff@xxxxxxxx> writes: > On Thu, Feb 26, 2015 at 12:59:56PM -0800, Junio C Hamano wrote: > >> Jeff King <peff@xxxxxxxx> writes: >> >> > Perhaps it would be less risky to stick get_preferred_languages() into >> > gettext.c, like the patch below. Then we do not have to worry about >> > locale.h introducing other disruptive includes. The function is not >> > technically about gettext, but it seems reasonable to me to stuff all of >> > the i18n code together. >> >> Yeah, I like that a lot better. Thanks. > > Are you just using it for inspiration, or did you want me to wrap it up > with a commit message? Here is what I queued. Thanks. -- >8 -- From: Jeff King <peff@xxxxxxxx> Date: Wed, 25 Feb 2015 22:04:16 -0500 Subject: [PATCH] gettext.c: move get_preferred_languages() from http.c Calling setlocale(LC_MESSAGES, ...) directly from http.c, without including <locale.h>, was causing compilation warnings. Move the helper function to gettext.c that already includes the header and where locale-related issues are handled. Signed-off-by: Jeff King <peff@xxxxxxxx> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- gettext.c | 25 +++++++++++++++++++++++++ gettext.h | 2 ++ http.c | 1 + 3 files changed, 28 insertions(+) diff --git a/gettext.c b/gettext.c index 8b2da46..7378ba2 100644 --- a/gettext.c +++ b/gettext.c @@ -18,6 +18,31 @@ # endif #endif +/* + * Guess the user's preferred languages from the value in LANGUAGE environment + * variable and LC_MESSAGES locale category if NO_GETTEXT is not defined. + * + * The result can be a colon-separated list like "ko:ja:en". + */ +const char *get_preferred_languages(void) +{ + const char *retval; + + retval = getenv("LANGUAGE"); + if (retval && *retval) + return retval; + +#ifndef NO_GETTEXT + retval = setlocale(LC_MESSAGES, NULL); + if (retval && *retval && + strcmp(retval, "C") && + strcmp(retval, "POSIX")) + return retval; +#endif + + return NULL; +} + #ifdef GETTEXT_POISON int use_gettext_poison(void) { diff --git a/gettext.h b/gettext.h index 7671d09..e539482 100644 --- a/gettext.h +++ b/gettext.h @@ -65,4 +65,6 @@ const char *Q_(const char *msgid, const char *plu, unsigned long n) /* Mark msgid for translation but do not translate it. */ #define N_(msgid) msgid +const char *get_preferred_languages(void); + #endif diff --git a/http.c b/http.c index 8b659b6..71ed418 100644 --- a/http.c +++ b/http.c @@ -8,6 +8,7 @@ #include "credential.h" #include "version.h" #include "pkt-line.h" +#include "gettext.h" int active_requests; int http_is_verbose; -- 2.3.1-280-g2531f2d -- 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