summaryrefslogtreecommitdiff
path: root/src/os_mac_conv.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-09-27 16:03:15 +0200
committerBram Moolenaar <Bram@vim.org>2020-09-27 16:03:15 +0200
commita5fe91e6dc610bc823bc3201e2c88179989b13fb (patch)
tree549279515623ddd6f45cfa0ba006d5fac01aeef4 /src/os_mac_conv.c
parentcfcd011fcd8021da52fba62dabf7a2497f1879b7 (diff)
downloadvim-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.c9
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, "");