Piotr Caban : msvcrt: Don't use strncmpW in wcsncmp.

Alexandre Julliard julliard at winehq.org
Tue Jul 14 16:23:39 CDT 2020


Module: wine
Branch: master
Commit: f20f4dee00bee16b8dd860018a98a5d9080d976b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=f20f4dee00bee16b8dd860018a98a5d9080d976b

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Jul 14 20:23:02 2020 +0200

msvcrt: Don't use strncmpW in wcsncmp.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msvcrt/wcs.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 0db911fe81..961a680ab8 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -413,6 +413,21 @@ MSVCRT_wchar_t* CDECL MSVCRT__wcslwr( MSVCRT_wchar_t* str )
     return str;
 }
 
+/*********************************************************************
+ *           wcsncmp    (MSVCRT.@)
+ */
+int CDECL MSVCRT_wcsncmp(const MSVCRT_wchar_t *str1, const MSVCRT_wchar_t *str2, MSVCRT_size_t n)
+{
+    if (!n)
+        return 0;
+    while(--n && *str1 && (*str1 == *str2))
+    {
+        str1++;
+        str2++;
+    }
+    return *str1 - *str2;
+}
+
 /*********************************************************************
  *              _wcsncoll_l (MSVCRT.@)
  */
@@ -427,7 +442,7 @@ int CDECL MSVCRT__wcsncoll_l(const MSVCRT_wchar_t* str1, const MSVCRT_wchar_t* s
         locinfo = locale->locinfo;
 
     if(!locinfo->lc_handle[MSVCRT_LC_COLLATE])
-        return strncmpW(str1, str2, count);
+        return MSVCRT_wcsncmp(str1, str2, count);
     return CompareStringW(locinfo->lc_handle[MSVCRT_LC_COLLATE], 0,
               str1, MSVCRT_wcsnlen(str1, count),
               str2, MSVCRT_wcsnlen(str2, count))-CSTR_EQUAL;
@@ -2643,14 +2658,6 @@ __int64 CDECL MSVCRT__wtoi64(const MSVCRT_wchar_t *str)
     return MSVCRT__wtoi64_l(str, NULL);
 }
 
-/*********************************************************************
- *           wcsncmp    (MSVCRT.@)
- */
-int CDECL MSVCRT_wcsncmp(const MSVCRT_wchar_t *str1, const MSVCRT_wchar_t *str2, int n)
-{
-    return strncmpW(str1, str2, n);
-}
-
 /*********************************************************************
  *              _wcsxfrm_l (MSVCRT.@)
  */




More information about the wine-cvs mailing list