From: Harald Hoyer Date: Mon, 15 Apr 2013 16:34:53 +0000 (+0200) Subject: do not change console to non-unicode for LANG=C X-Git-Tag: v202~89 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=fee79e010f1f8ad2bce6b41c67e8ddd4f419ff4b;p=elogind.git do not change console to non-unicode for LANG=C If systemd-vconsole-setup was started with LANG=C (no locale.conf), then it would set the console to non-unicode, which is not what we want. --- diff --git a/src/shared/util.c b/src/shared/util.c index 5827f6c7a..5d6995d23 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -5402,7 +5402,23 @@ bool is_locale_utf8(void) { goto out; } - cached_answer = streq(set, "UTF-8"); + if(streq(set, "UTF-8")) { + cached_answer = true; + goto out; + } + + /* For LC_CTYPE=="C" return true, + * because CTYPE is effectly unset and + * everything defaults to UTF-8 nowadays. */ + + set = setlocale(LC_CTYPE, NULL); + if (!set) { + cached_answer = true; + goto out; + } + + cached_answer = streq(set, "C"); + out: return (bool)cached_answer; }