summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/nlsfuncs.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/nlsfuncs.cc')
-rw-r--r--winsup/cygwin/nlsfuncs.cc34
1 files changed, 29 insertions, 5 deletions
diff --git a/winsup/cygwin/nlsfuncs.cc b/winsup/cygwin/nlsfuncs.cc
index 0388f32fd..91b2439b1 100644
--- a/winsup/cygwin/nlsfuncs.cc
+++ b/winsup/cygwin/nlsfuncs.cc
@@ -100,16 +100,22 @@ __get_lcid_from_locale (const char *name)
} sc_only_locale[] = {
{ "az-AZ" , L"az-Latn-AZ" },
{ "bs-BA" , L"bs-Latn-BA" },
+ { "chr-US", L"chr-Cher-US"},
+ { "ff-SN" , L"ff-Latn-SN" },
{ "ha-NG" , L"ha-Latn-NG" },
{ "iu-CA" , L"iu-Latn-CA" },
+ { "ku-IQ" , L"ku-Arab-IQ" },
{ "mn-CN" , L"mn-Mong-CN" },
{ "no-NO" , L"nb-NO" },
+ { "pa-PK" , L"pa-Arab-PK" },
+ { "sd-PK" , L"sd-Arab-PK" },
{ "sr-BA" , L"sr-Cyrl-BA" },
{ "sr-CS" , L"sr-Cyrl-CS" },
{ "sr-ME" , L"sr-Cyrl-ME" },
{ "sr-RS" , L"sr-Cyrl-RS" },
{ "tg-TJ" , L"tg-Cyrl-TJ" },
{ "tzm-DZ", L"tzm-Latn-DZ" },
+ { "tzm-MA", L"tzm-Tfng-MA" },
{ "uz-UZ" , L"uz-Latn-UZ" },
{ NULL , NULL }
};
@@ -1337,17 +1343,20 @@ __set_charset_from_locale (const char *locale, char *charset)
if (lcid == 0x0452) /* cy_GB (Welsh/Great Britain) */
cs = "ISO-8859-14";
else if (lcid == 0x4009 /* en_IN (English/India) */
+ || lcid == 0x0867 /* ff_SN (Fulah/Senegal) */
|| lcid == 0x0464 /* fil_PH (Filipino/Philippines) */
|| lcid == 0x0462 /* fy_NL (Frisian/Netherlands) */
|| lcid == 0x0468 /* ha_NG (Hausa/Nigeria) */
+ || lcid == 0x0475 /* haw_US (Hawaiian/United States) */
|| lcid == 0x0470 /* ig_NG (Igbo/Nigeria) */
+ || lcid == 0x085d /* iu_CA (Inuktitut/Canada) */
|| lcid == 0x046c /* nso_ZA (Northern Sotho/South Africa) */
|| lcid == 0x0487 /* rw_RW (Kinyarwanda/Rwanda) */
|| lcid == 0x043b /* se_NO (Northern Saami/Norway) */
+ || lcid == 0x0832 /* tn_BW (Tswana/Botswana) */
|| lcid == 0x0432 /* tn_ZA (Tswana/South Africa) */
|| lcid == 0x0488 /* wo_SN (Wolof/Senegal) */
- || lcid == 0x046a /* yo_NG (Yoruba/Nigeria) */
- || lcid == 0x085d) /* iu_CA (Inuktitut/Canada) */
+ || lcid == 0x046a) /* yo_NG (Yoruba/Nigeria) */
cs = "UTF-8";
else if (lcid == 0x042e) /* hsb_DE (Upper Sorbian/Germany) */
cs = "ISO-8859-2";
@@ -1375,6 +1384,8 @@ __set_charset_from_locale (const char *locale, char *charset)
break;
case 1256:
if (lcid == 0x0429 /* fa_IR (Persian/Iran) */
+ || lcid == 0x0846 /* pa_PK (Punjabi/Pakistan) */
+ || lcid == 0x0859 /* sd_PK (Sindhi/Pakistan) */
|| lcid == 0x0480 /* ug_CN (Uyghur/China) */
|| lcid == 0x0420) /* ur_PK (Urdu/Pakistan) */
cs = "UTF-8";
@@ -1389,17 +1400,30 @@ __set_charset_from_locale (const char *locale, char *charset)
break;
case 1258:
default:
- if (lcid == 0x0481) /* mi_NZ (Maori/New Zealand) */
- cs = "ISO-8859-13";
+ if (lcid == 0x3c09 /* en_HK (English/Hong Kong) */
+ || lcid == 0x200c /* fr_RE (French/RĂ©union) */
+ || lcid == 0x240c /* fr_CD (French/Congo) */
+ || lcid == 0x280c /* fr_SN (French/Senegal) */
+ || lcid == 0x2c0c /* fr_CM (French/Cameroon) */
+ || lcid == 0x300c /* fr_CI (French/Ivory Coast) */
+ || lcid == 0x340c /* fr_ML (French/Mali) */
+ || lcid == 0x380c /* fr_MA (French/Morocco) */
+ || lcid == 0x3c0c /* fr_HT (French/Haiti) */
+ || lcid == 0x0477 /* so_SO (Somali/Somali) */
+ || lcid == 0x0430) /* st_ZA (Sotho/South Africa) */
+ cs = "ISO-8859-1";
+ else if (lcid == 0x818) /* ro_MD (Romanian/Moldovia) */
+ cs = "ISO-8859-2";
else if (lcid == 0x043a) /* mt_MT (Maltese/Malta) */
cs = "ISO-8859-3";
+ else if (lcid == 0x0481) /* mi_NZ (Maori/New Zealand) */
+ cs = "ISO-8859-13";
else if (lcid == 0x0437) /* ka_GE (Georgian/Georgia) */
cs = "GEORGIAN-PS";
else if (lcid == 0x043f) /* kk_KZ (Kazakh/Kazakhstan) */
cs = "PT154";
else
cs = "UTF-8";
- break;
}
stpcpy (charset, cs);
}