"Spanish - Modern Sort_Spain.1252" locale on wine

GOUJON Alexandre ale.goujon at gmail.com
Wed Aug 25 06:54:43 CDT 2010


Hi everyone,

I'm trying to fix msvcrt:locale on wine and it appears "Spanish - Modern 
Sort_Spain.1252" locale is missing.

According to msdn 
(http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=VS.71%29.aspx), 
"esn" and "spanish-modern" are equivalent which is false

[quoted from msvcrt/tests/locale.c]
     ret = setlocale(LC_ALL, "esn");
     ok(ret != NULL || broken (ret == NULL), "ret == NULL\n");
     if(ret)
         ok(!strcmp(ret, "Spanish_Spain.1252")
         || broken(!strcmp(ret, "Spanish - Modern Sort_Spain.1252")), 
"ret = %s\n", ret);

and

     ret = setlocale(LC_ALL, "spanish-modern");
     ok(ret != NULL || broken (ret == NULL), "ret == NULL\n");
     if(ret)
         ok(!strcmp(ret, "Spanish - Modern Sort_Spain.1252")
         || broken(!strcmp(ret, "Spanish_Spain.1252")), "ret = %s\n", ret);

If I modify dlls/kernerl32/nls/esn.nls
   LOCALE_SENGLANGUAGE "Spanish"
to
   LOCALE_SENGLANGUAGE "Spanish - Modern Sort"
then it'll fix the second test and break the first one.

So I'm wondering what to do.
Create another nls file based on esn with a different 
LOCALE_SENGLANGUAGE ? (and change _country_synonyms[] in locale.c)
Hard code this (i.e. if .. == "spanish-modern" .. ) ?
Other advice ?

Thanks in advance



More information about the wine-devel mailing list