[PATCH 07/16] [Kernel32 & MLang]: SISOLANGNAME
Eric Pouech
eric.pouech at wanadoo.fr
Sun Oct 22 14:48:22 CDT 2006
- changed encoding for Divehi (which has a 639-1 enconding)
- fixed Mlang to handle correctly LOCALE_SISO639LANGNAME which
are not encoded in 639-1 but in 639-2
(valgrind spotted some errors which lead to this fix)
A+
---
dlls/kernel32/nls/div.nls | 2 +-
dlls/mlang/mlang.c | 10 +++++++---
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/nls/div.nls b/dlls/kernel32/nls/div.nls
index e081c48..43eb7d0 100644
--- a/dlls/kernel32/nls/div.nls
+++ b/dlls/kernel32/nls/div.nls
@@ -101,7 +101,7 @@ STRINGTABLE LANGUAGE LANG_DIVEHI, SUBLAN
LOCALE_SGROUPING L"3;0"
LOCALE_SINTLSYMBOL L"MVR"
LOCALE_SISO3166CTRYNAME L"MV"
- LOCALE_SISO639LANGNAME L"div"
+ LOCALE_SISO639LANGNAME L"dv"
LOCALE_SLANGUAGE L"Divehi"
LOCALE_SLIST L"\x060c"
LOCALE_SLONGDATE L"dd MMMM yyyy"
diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c
index 52e932d..724af34 100644
--- a/dlls/mlang/mlang.c
+++ b/dlls/mlang/mlang.c
@@ -1731,9 +1731,13 @@ static BOOL CALLBACK enum_locales_proc(L
n = GetLocaleInfoW(info->lcid, LOCALE_SISO639LANGNAME, info->wszRfc1766, MAX_RFC1766_NAME);
if (n && n < MAX_RFC1766_NAME)
{
- info->wszRfc1766[n - 1] = '-';
- GetLocaleInfoW(info->lcid, LOCALE_SISO3166CTRYNAME, info->wszRfc1766 + n, MAX_RFC1766_NAME - n);
- LCMapStringW(LOCALE_USER_DEFAULT, LCMAP_LOWERCASE, info->wszRfc1766 + n, -1, info->wszRfc1766 + n, MAX_RFC1766_NAME - n);
+ if (GetLocaleInfoW(info->lcid, LOCALE_SISO3166CTRYNAME,
+ info->wszRfc1766 + n, MAX_RFC1766_NAME - n))
+ {
+ info->wszRfc1766[n - 1] = '-';
+ LCMapStringW(LOCALE_USER_DEFAULT, LCMAP_LOWERCASE, info->wszRfc1766 + n,
+ -1, info->wszRfc1766 + n, MAX_RFC1766_NAME - n);
+ }
}
info->wszLocaleName[0] = 0;
GetLocaleInfoW(info->lcid, LOCALE_SLANGUAGE, info->wszLocaleName, MAX_LOCALE_NAME);
More information about the wine-patches
mailing list