Alexandre Julliard : ntdll: Recognize more script names in Unix locales.

Alexandre Julliard julliard at winehq.org
Fri Apr 1 16:04:27 CDT 2022


Module: wine
Branch: master
Commit: 4a757e2d20eec90b6061ca2868cd7ecd02a9afd7
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=4a757e2d20eec90b6061ca2868cd7ecd02a9afd7

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Apr  1 15:24:39 2022 +0200

ntdll: Recognize more script names in Unix locales.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/unix/env.c | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/dlls/ntdll/unix/env.c b/dlls/ntdll/unix/env.c
index 2302ee46e86..64117e70abe 100644
--- a/dlls/ntdll/unix/env.c
+++ b/dlls/ntdll/unix/env.c
@@ -1019,6 +1019,7 @@ static WCHAR **build_wargv( const WCHAR *image )
 static BOOL unix_to_win_locale( const char *unix_name, char *win_name )
 {
     static const char sep[] = "_.@";
+    const char *extra = NULL;
     char buffer[LOCALE_NAME_MAX_LENGTH];
     char *p, *country = NULL, *modifier = NULL;
 
@@ -1062,9 +1063,23 @@ static BOOL unix_to_win_locale( const char *unix_name, char *win_name )
     strcpy( win_name, buffer );
     if (modifier)
     {
-        if (!strcmp( modifier, "latin" )) strcat( win_name, "-Latn" );
-        else if (!strcmp( modifier, "euro" )) {} /* ignore */
-        else return FALSE;
+        if (!strcmp( modifier, "arabic" )) strcat( win_name, "-Arab" );
+        else if (!strcmp( modifier, "chakma" )) strcat( win_name, "-Cakm" );
+        else if (!strcmp( modifier, "cherokee" )) strcat( win_name, "-Cher" );
+        else if (!strcmp( modifier, "cyrillic" )) strcat( win_name, "-Cyrl" );
+        else if (!strcmp( modifier, "devanagari" )) strcat( win_name, "-Deva" );
+        else if (!strcmp( modifier, "gurmukhi" )) strcat( win_name, "-Guru" );
+        else if (!strcmp( modifier, "javanese" )) strcat( win_name, "-Java" );
+        else if (!strcmp( modifier, "latin" )) strcat( win_name, "-Latn" );
+        else if (!strcmp( modifier, "mongolian" )) strcat( win_name, "-Mong" );
+        else if (!strcmp( modifier, "syriac" )) strcat( win_name, "-Syrc" );
+        else if (!strcmp( modifier, "tifinagh" )) strcat( win_name, "-Tfng" );
+        else if (!strcmp( modifier, "tibetan" )) strcat( win_name, "-Tibt" );
+        else if (!strcmp( modifier, "vai" )) strcat( win_name, "-Vaii" );
+        else if (!strcmp( modifier, "yi" )) strcat( win_name, "-Yiii" );
+        else if (!strcmp( modifier, "saaho" )) strcpy( win_name, "ssy" );
+        else if (!strcmp( modifier, "valencia" )) extra = "-valencia";
+        /* ignore unknown modifiers */
     }
     if (country)
     {
@@ -1072,6 +1087,7 @@ static BOOL unix_to_win_locale( const char *unix_name, char *win_name )
         *p++ = '-';
         strcpy( p, country );
     }
+    if (extra) strcat( win_name, extra );
     return TRUE;
 }
 




More information about the wine-cvs mailing list