Piotr Caban : msvcrt: Fix pclmap and pcumap for "C" locale.
Alexandre Julliard
julliard at winehq.org
Fri Jun 3 14:04:42 CDT 2011
Module: wine
Branch: master
Commit: 2b9d946aeaf3223b36d9ff3f3cb02aa100ed64a0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2b9d946aeaf3223b36d9ff3f3cb02aa100ed64a0
Author: Piotr Caban <piotr at codeweavers.com>
Date: Fri Jun 3 15:28:46 2011 +0200
msvcrt: Fix pclmap and pcumap for "C" locale.
---
dlls/msvcrt/locale.c | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c
index 96a80c1..64960d9 100644
--- a/dlls/msvcrt/locale.c
+++ b/dlls/msvcrt/locale.c
@@ -826,10 +826,17 @@ MSVCRT__locale_t MSVCRT__create_locale(int category, const char *locale)
}
- LCMapStringA(lcid[MSVCRT_LC_CTYPE], LCMAP_LOWERCASE, buf, 256,
- (char*)loc->locinfo->pclmap, 256);
- LCMapStringA(lcid[MSVCRT_LC_CTYPE], LCMAP_UPPERCASE, buf, 256,
- (char*)loc->locinfo->pcumap, 256);
+ if(lcid[MSVCRT_LC_CTYPE]) {
+ LCMapStringA(lcid[MSVCRT_LC_CTYPE], LCMAP_LOWERCASE, buf, 256,
+ (char*)loc->locinfo->pclmap, 256);
+ LCMapStringA(lcid[MSVCRT_LC_CTYPE], LCMAP_UPPERCASE, buf, 256,
+ (char*)loc->locinfo->pcumap, 256);
+ } else {
+ for(i=0; i<256; i++) {
+ loc->locinfo->pclmap[i] = (i>='A' && i<='Z' ? i-'A'+'a' : i);
+ loc->locinfo->pcumap[i] = (i>='a' && i<='z' ? i-'a'+'A' : i);
+ }
+ }
loc->mbcinfo->refcount = 1;
loc->mbcinfo->mbcodepage = loc->locinfo->lc_id[MSVCRT_LC_CTYPE].wCodePage;
More information about the wine-cvs
mailing list