mirror of
https://github.com/tmux/tmux.git
synced 2024-11-16 01:18:52 +00:00
If setlocale("en_US.UTF-8") succeeds, then don't do the check for UTF-8
locale since if it isn't UTF-8 the system is broken anyway. If it fails, try "" and check for UTF-8 with nl_langinfo(CODESET) rather than wcwidth(). Based on a diff from schwarze@, nl_langinfo also suggested by stsp@.
This commit is contained in:
parent
c38e0a4bbc
commit
0d6de44a37
13
tmux.c
13
tmux.c
@ -24,6 +24,7 @@
|
|||||||
#include <event.h>
|
#include <event.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
#include <langinfo.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <paths.h>
|
#include <paths.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
@ -188,10 +189,14 @@ main(int argc, char **argv)
|
|||||||
const char *s;
|
const char *s;
|
||||||
int opt, flags, keys;
|
int opt, flags, keys;
|
||||||
|
|
||||||
if (setlocale(LC_CTYPE, "en_US.UTF-8") == NULL)
|
if (setlocale(LC_CTYPE, "en_US.UTF-8") == NULL) {
|
||||||
setlocale(LC_CTYPE, "");
|
if (setlocale(LC_CTYPE, "") == NULL)
|
||||||
if (wcwidth(0xfffd) != 1)
|
errx(1, "invalid LC_ALL, LC_CTYPE or LANG");
|
||||||
errx(1, "no UTF-8 locale; please set LC_CTYPE");
|
s = nl_langinfo(CODESET);
|
||||||
|
if (strcasecmp(s, "UTF-8") != 0 &&
|
||||||
|
strcasecmp(s, "UTF8") != 0)
|
||||||
|
errx(1, "need UTF-8 locale (LC_CTYPE) but have %s", s);
|
||||||
|
}
|
||||||
|
|
||||||
setlocale(LC_TIME, "");
|
setlocale(LC_TIME, "");
|
||||||
tzset();
|
tzset();
|
||||||
|
Loading…
Reference in New Issue
Block a user