From 6f2138eb03766680b012ee0bdfca04fdc2c22e89 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Mon, 28 Sep 2020 20:20:48 -0400 Subject: vim-patch:8.2.1757: Mac: default locale is lacking the encoding (#12994) vim-patch:8.2.1757: Mac: default locale is lacking the encoding Problem: Mac: default locale is lacking the encoding. Solution: Add ".UTF-8 to the locale. (Yee Cheng Chin, closes vim/vim#7022) https://github.com/vim/vim/commit/a5fe91e6dc610bc823bc3201e2c88179989b13fb Cherry-pick test_environ.vim changes from patch 8.2.1432. --- src/nvim/os/lang.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/nvim/os/lang.c') diff --git a/src/nvim/os/lang.c b/src/nvim/os/lang.c index fe2d7986bf..603191a0ff 100644 --- a/src/nvim/os/lang.c +++ b/src/nvim/os/lang.c @@ -43,14 +43,20 @@ void lang_init(void) } } + char buf[50] = { 0 }; + bool set_lang; if (lang_region) { - os_setenv("LANG", lang_region, true); + set_lang = true; + xstrlcpy(buf, lang_region, sizeof(buf)); } else { - char buf[20] = { 0 }; - if (CFStringGetCString(cf_lang_region, buf, 20, - kCFStringEncodingUTF8)) { - os_setenv("LANG", buf, true); + set_lang = CFStringGetCString(cf_lang_region, buf, 40, + kCFStringEncodingUTF8); + } + if (set_lang) { + if (strcasestr(buf, "utf-8") == NULL) { + xstrlcat(buf, ".UTF-8", sizeof(buf)); } + os_setenv("LANG", buf, true); } CFRelease(cf_lang_region); # ifdef HAVE_LOCALE_H -- cgit