Mercurial > vim
diff src/os_mac_conv.c @ 22417:68115baaf9e4 v8.2.1757
patch 8.2.1757: Mac: default locale is lacking the encoding
Commit: https://github.com/vim/vim/commit/a5fe91e6dc610bc823bc3201e2c88179989b13fb
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Sep 27 16:03:15 2020 +0200
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 https://github.com/vim/vim/issues/7022)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 27 Sep 2020 16:15:03 +0200 |
parents | e1e24b1dba6e |
children | fc859aea8cec |
line wrap: on
line diff
--- 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, "");