Check the first of LC_CTYPE, LC_ALL and LANG, rather than just the last, when

trying to decide about UTF-8, and use strcasestr. Reported by Geert Hendrickx.
pull/1/head
Nicholas Marriott 2009-06-05 07:22:23 +00:00
parent a3c32841e6
commit 18665b8cc9
1 changed files with 7 additions and 2 deletions

9
tmux.c
View File

@ -326,12 +326,17 @@ main(int argc, char **argv)
if (!(flags & IDENTIFY_UTF8)) {
/*
* If the user has set LANG to contain UTF-8, it is a safe
* If the user has set whichever of LC_ALL, LC_CTYPE or LANG
* exist (in that order) to contain UTF-8, it is a safe
* assumption that either they are using a UTF-8 terminal, or
* if not they know that output from UTF-8-capable programs may
* be wrong.
*/
if ((s = getenv("LANG")) != NULL && strstr(s, "UTF-8") != NULL)
if ((s = getenv("LC_CTYPE")) == NULL) {
if ((s = getenv("LC_ALL")) == NULL)
s = getenv("LANG");
}
if (s != NULL && strcasestr(s, "UTF-8") != NULL)
flags |= IDENTIFY_UTF8;
}