diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-09-27 16:03:15 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-09-27 16:03:15 +0200 |
commit | a5fe91e6dc610bc823bc3201e2c88179989b13fb (patch) | |
tree | 549279515623ddd6f45cfa0ba006d5fac01aeef4 /src/os_mac_conv.c | |
parent | cfcd011fcd8021da52fba62dabf7a2497f1879b7 (diff) | |
download | vim-git-a5fe91e6dc610bc823bc3201e2c88179989b13fb.tar.gz |
patch 8.2.1757: Mac: default locale is lacking the encodingv8.2.1757
Problem: Mac: default locale is lacking the encoding.
Solution: Add ".UTF-8 to the locale. (Yee Cheng Chin, closes #7022)
Diffstat (limited to 'src/os_mac_conv.c')
-rw-r--r-- | src/os_mac_conv.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/os_mac_conv.c b/src/os_mac_conv.c index fd6212464..734f8f6c9 100644 --- a/src/os_mac_conv.c +++ b/src/os_mac_conv.c @@ -570,12 +570,17 @@ mac_lang_init(void) { if (mch_getenv((char_u *)"LANG") == NULL) { - char buf[20]; + char buf[50]; + + // $LANG is not set, either because it was unset or Vim was started + // from the Dock. Query the system locale. if (LocaleRefGetPartString(NULL, kLocaleLanguageMask | kLocaleLanguageVariantMask | kLocaleRegionMask | kLocaleRegionVariantMask, - sizeof buf, buf) == noErr && *buf) + sizeof(buf) - 10, buf) == noErr && *buf) { + if (strcasestr(buf, "utf-8") == NULL) + strcat(buf, ".UTF-8"); vim_setenv((char_u *)"LANG", (char_u *)buf); # ifdef HAVE_LOCALE_H setlocale(LC_ALL, ""); |