PATCH: mbsicoll
Marcus Meissner
meissner at suse.de
Wed Jan 29 18:35:19 CST 2003
Hi,
Ciao, Marcus
Changelog:
Implemented mbsicoll (without locale handling)
Index: dlls/msvcrt/mbcs.c
===================================================================
RCS file: /home/wine/wine/dlls/msvcrt/mbcs.c,v
retrieving revision 1.21
diff -u -r1.21 mbcs.c
--- dlls/msvcrt/mbcs.c 19 Dec 2002 04:21:30 -0000 1.21
+++ dlls/msvcrt/mbcs.c 30 Jan 2003 00:34:47 -0000
@@ -307,6 +307,32 @@
}
/*********************************************************************
+ * _mbsicoll(MSVCRT.@)
+ * FIXME: handle locales.
+ */
+int _mbsicoll(const unsigned char* str, const unsigned char* cmp)
+{
+ if(MSVCRT___mb_cur_max > 1)
+ {
+ unsigned int strc, cmpc;
+ do {
+ if(!*str)
+ return *cmp ? -1 : 0;
+ if(!*cmp)
+ return 1;
+ strc = _mbctolower(_mbsnextc(str));
+ cmpc = _mbctolower(_mbsnextc(cmp));
+ if(strc != cmpc)
+ return strc < cmpc ? -1 : 1;
+ str +=(strc > 255) ? 2 : 1;
+ cmp +=(strc > 255) ? 2 : 1; /* equal, use same increment */
+ } while(1);
+ }
+ return strcasecmp(str, cmp); /* ASCII CP */
+}
+
+
+/*********************************************************************
* _mbsicmp(MSVCRT.@)
*/
int _mbsicmp(const unsigned char* str, const unsigned char* cmp)
Index: dlls/msvcrt/msvcrt.spec
===================================================================
RCS file: /home/wine/wine/dlls/msvcrt/msvcrt.spec,v
retrieving revision 1.59
diff -u -r1.59 msvcrt.spec
--- dlls/msvcrt/msvcrt.spec 11 Jan 2003 21:01:04 -0000 1.59
+++ dlls/msvcrt/msvcrt.spec 30 Jan 2003 00:34:47 -0000
@@ -355,7 +355,7 @@
@ cdecl _mbsdec(ptr ptr) _mbsdec
@ cdecl _mbsdup(str) _strdup
@ cdecl _mbsicmp(str str) _mbsicmp
-@ stub _mbsicoll #(str str)
+@ cdecl _mbsicoll(str str) _mbsicoll
@ cdecl _mbsinc(str) _mbsinc
@ cdecl _mbslen(str) _mbslen
@ cdecl _mbslwr(str) _mbslwr
More information about the wine-patches
mailing list