[PATCH 1/3] msvcrt: Added _mbsncoll and _mbsncoll_l implementation.

Jactry Zeng jactry92 at gmail.com
Fri Apr 19 01:42:50 CDT 2013


-------------- next part --------------
From 9c4433aef126acfebe51ebda26f7425fb8b4aea1 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <jactry92 at gmail.com>
Date: Fri, 19 Apr 2013 11:02:44 +0800
Subject: msvcrt: Added _mbsncoll and _mbsncoll_l implementation.

---
 dlls/msvcr100/msvcr100.spec |    2 +-
 dlls/msvcr110/msvcr110.spec |    2 +-
 dlls/msvcr80/msvcr80.spec   |    2 +-
 dlls/msvcr90/msvcr90.spec   |    2 +-
 dlls/msvcrt/mbcs.c          |   17 +++++++++++++++++
 dlls/msvcrt/msvcrt.spec     |    4 ++--
 include/msvcrt/mbstring.h   |    5 +++++
 7 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index de346c4..24e1822 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1147,7 +1147,7 @@
 @ cdecl _mbsncmp(str str long) msvcrt._mbsncmp
 @ stub _mbsncmp_l
 @ cdecl _mbsncoll(str str long) msvcrt._mbsncoll
-@ stub _mbsncoll_l
+@ cdecl _mbsncoll_l(str str long ptr) msvcrt._mbsncoll_l
 @ cdecl _mbsncpy(ptr str long) msvcrt._mbsncpy
 @ stub _mbsncpy_l
 @ stub _mbsncpy_s
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 40f1470..944ef9a 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1509,7 +1509,7 @@
 @ cdecl _mbsncmp(str str long) msvcrt._mbsncmp
 @ stub _mbsncmp_l
 @ cdecl _mbsncoll(str str long) msvcrt._mbsncoll
-@ stub _mbsncoll_l
+@ cdecl _mbsncoll_l(str str long ptr) msvcrt._mbsncoll_l
 @ cdecl _mbsncpy(ptr str long) msvcrt._mbsncpy
 @ stub _mbsncpy_l
 @ stub _mbsncpy_s
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 30e3fa5..2c9bf2d 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -803,7 +803,7 @@
 @ cdecl _mbsncmp(str str long) msvcrt._mbsncmp
 @ stub _mbsncmp_l
 @ cdecl _mbsncoll(str str long) msvcrt._mbsncoll
-@ stub _mbsncoll_l
+@ cdecl _mbsncoll_l(str str long ptr) msvcrt._mbsncoll_l
 @ cdecl _mbsncpy(ptr str long) msvcrt._mbsncpy
 @ stub _mbsncpy_l
 @ stub _mbsncpy_s
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 2db3042..21dd1c0 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -796,7 +796,7 @@
 @ cdecl _mbsncmp(str str long) msvcrt._mbsncmp
 @ stub _mbsncmp_l
 @ cdecl _mbsncoll(str str long) msvcrt._mbsncoll
-@ stub _mbsncoll_l
+@ cdecl _mbsncoll_l(str str long ptr) msvcrt._mbsncoll_l
 @ cdecl _mbsncpy(ptr str long) msvcrt._mbsncpy
 @ stub _mbsncpy_l
 @ stub _mbsncpy_s
diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c
index fdc5422..060eb32 100644
--- a/dlls/msvcrt/mbcs.c
+++ b/dlls/msvcrt/mbcs.c
@@ -832,6 +832,23 @@ int CDECL _mbscoll_l(const unsigned char *str1, const unsigned char *str2, MSVCR
 }
 
 /*********************************************************************
+ *              _mbsncoll(MSVCRT.@)
+ */
+int CDECL _mbsncoll(const unsigned char *str1, const unsigned char *str2, MSVCRT_size_t count)
+{
+    return _mbsnbcoll_l(str1, str2, count, NULL);
+}
+
+/*********************************************************************
+ *              _mbsncoll_l(MSVCRT.@)
+ */
+int CDECL _mbsncoll_l(const unsigned char *str1, const unsigned char *str2, MSVCRT_size_t count,
+		      MSVCRT__locale_t locale)
+{
+    return _mbsnbcoll_l(str1, str2, count, locale);
+}
+
+/*********************************************************************
  *              _mbsnbcoll(MSVCRT.@)
  */
 int CDECL _mbsnbcoll(const unsigned char *str1, const unsigned char *str2, MSVCRT_size_t len)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index ff96b36..51b74c6 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -771,8 +771,8 @@
 # stub _mbsnccnt_l(str long ptr)
 @ cdecl _mbsncmp(str str long)
 # stub _mbsncmp_l(str str long ptr)
-@ stub _mbsncoll(str str long)
-# stub _mbsncoll_l(str str long ptr)
+@ cdecl _mbsncoll(str str long)
+@ cdecl _mbsncoll_l(str str long ptr)
 @ cdecl _mbsncpy(ptr str long)
 # stub _mbsncpy_l(ptr str long ptr)
 # stub _mbsncpy_s(ptr long str long)
diff --git a/include/msvcrt/mbstring.h b/include/msvcrt/mbstring.h
index a4d0746..cbd353b 100644
--- a/include/msvcrt/mbstring.h
+++ b/include/msvcrt/mbstring.h
@@ -66,12 +66,14 @@ unsigned char* __cdecl _mbscat(unsigned char*,const unsigned char*);
 unsigned char* __cdecl _mbschr(const unsigned char*,unsigned int);
 int            __cdecl _mbscmp(const unsigned char*,const unsigned char*);
 int            __cdecl _mbscoll(const unsigned char*,const unsigned char*);
+int            __cdecl _mbscoll_l(const unsigned char*, const unsigned char*, _locale_t);
 unsigned char* __cdecl _mbscpy(unsigned char*,const unsigned char*);
 size_t         __cdecl _mbscspn(const unsigned char*,const unsigned char*);
 unsigned char* __cdecl _mbsdec(const unsigned char*,const unsigned char*);
 unsigned char* __cdecl _mbsdup(const unsigned char*);
 int            __cdecl _mbsicmp(const unsigned char*,const unsigned char*);
 int            __cdecl _mbsicoll(const unsigned char*,const unsigned char*);
+int            __cdecl _mbsicoll_l(const unsigned char*, const unsigned char*, _locale_t);
 unsigned char* __cdecl _mbsinc(const unsigned char*);
 size_t         __cdecl _mbslen(const unsigned char*);
 unsigned char* __cdecl _mbslwr(unsigned char*);
@@ -79,15 +81,18 @@ unsigned char* __cdecl _mbsnbcat(unsigned char*,const unsigned char*,size_t);
 errno_t        __cdecl _mbsnbcat_s(unsigned char*,size_t,const unsigned char*,size_t);
 int            __cdecl _mbsnbcmp(const unsigned char*,const unsigned char*,size_t);
 int            __cdecl _mbsnbcoll(const unsigned char*,const unsigned char*,size_t);
+int            __cdecl _mbsnbcoll_l(const unsigned char*, const unsigned char*, size_t, _locale_t);
 size_t         __cdecl _mbsnbcnt(const unsigned char*,size_t);
 unsigned char* __cdecl _mbsnbcpy(unsigned char*,const unsigned char*,size_t);
 int            __cdecl _mbsnbicmp(const unsigned char*,const unsigned char*,size_t);
 int            __cdecl _mbsnbicoll(const unsigned char*,const unsigned char*,size_t);
+int            __cdecl _mbsnbicoll_l(const unsigned char*, const unsigned char*, size_t, _locale_t);
 unsigned char* __cdecl _mbsnbset(unsigned char*,unsigned int,size_t);
 unsigned char* __cdecl _mbsncat(unsigned char*,const unsigned char*, size_t);
 size_t         __cdecl _mbsnccnt(const unsigned char*,size_t);
 int            __cdecl _mbsncmp(const unsigned char*,const unsigned char*,size_t);
 int            __cdecl _mbsncoll(const unsigned char*,const unsigned char*,size_t);
+int            __cdecl _mbsncoll_l(const unsigned char*, const unsigned char*, size_t, _locale_t);
 unsigned char* __cdecl _mbsncpy(unsigned char*,const unsigned char*,size_t);
 unsigned int   __cdecl _mbsnextc (const unsigned char*);
 int            __cdecl _mbsnicmp(const unsigned char*,const unsigned char*,size_t);
-- 
1.7.9.5


More information about the wine-patches mailing list