From 676796498defc0f26eb1c282c716785d20788b6f Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 24 Mar 2023 11:50:42 +0100 Subject: [PATCH] Cygwin: /proc/locales: fix "sr" locales The sr_XY locales are supposed to default to cyrillic, but the code always attached a @cyrillic, same reason as in the previous commit. Special case "sr" further to workaround that issue. Fixes: c42b98bdc665 ("Cygwin: introduce /proc/codesets and /proc/locales") Signed-off-by: Corinna Vinschen --- winsup/cygwin/fhandler/proc.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/fhandler/proc.cc b/winsup/cygwin/fhandler/proc.cc index 3dc0421a5..b74c58a11 100644 --- a/winsup/cygwin/fhandler/proc.cc +++ b/winsup/cygwin/fhandler/proc.cc @@ -2178,8 +2178,12 @@ format_proc_locale_proc (LPWSTR win_locale, DWORD info, LPARAM param) } /* Serbian: Windows default is Latin, Linux default is Cyrillic. We want the Linux default and attach @latin otherwise */ - else if (!wcscmp (iso639, L"sr") && !wcscmp (iso15924, L"Latn;")) - stpcpy (modifier, "@latin"); + else if (!wcscmp (iso639, L"sr")) + { + snprintf (posix_loc, sizeof posix_loc, "sr_%.27ls", iso3166); + if (!wcscmp (iso15924, L"Latn;")) + stpcpy (modifier, "@latin"); + } /* Tamazight: no modifier, iso639 is "ber" on Linux. "zgh-Tfng-MA" is equivalent to "ber_MA". */ else if (!wcscmp (iso639, L"zgh"))