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 #7022)
diff --git a/src/os_mac_conv.c b/src/os_mac_conv.c
index fd62124..734f8f6 100644
--- a/src/os_mac_conv.c
+++ b/src/os_mac_conv.c
@@ -570,12 +570,17 @@
{
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, "");