Eric Pouech : msvcrt: Implemented wcscat_s.

Alexandre Julliard julliard at winehq.org
Mon Oct 13 06:39:15 CDT 2008


Module: wine
Branch: master
Commit: 07c80924ebfe9b416d93221609261d19c9252981
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=07c80924ebfe9b416d93221609261d19c9252981

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Sun Oct 12 13:34:16 2008 +0200

msvcrt: Implemented wcscat_s.

---

 dlls/msvcrt/msvcrt.spec |    1 +
 dlls/msvcrt/wcs.c       |   26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 0da6a25..b11af56 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -762,6 +762,7 @@
 @ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf
 @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
 @ cdecl wcscat(wstr wstr) ntdll.wcscat
+@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
 @ cdecl wcschr(wstr long) ntdll.wcschr
 @ cdecl wcscmp(wstr wstr) ntdll.wcscmp
 @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 5c80092..81528be 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1077,3 +1077,29 @@ INT CDECL MSVCRT_wcsncpy_s( MSVCRT_wchar_t* wcDest, MSVCRT_size_t numElement, co
 
     return 0;
 }
+
+/******************************************************************
+ *		wcscat_s (MSVCRT.@)
+ *
+ */
+INT CDECL MSVCRT_wcscat_s(MSVCRT_wchar_t* dst, MSVCRT_size_t elem, const MSVCRT_wchar_t* src)
+{
+    MSVCRT_wchar_t* ptr = dst;
+
+    if (!dst || elem == 0) return MSVCRT_EINVAL;
+    if (!src)
+    {
+        dst[0] = '\0';
+        return MSVCRT_EINVAL;
+    }
+
+    /* seek to end of dst string (or elem if no end of string is found */
+    while (ptr < dst + elem && *ptr != '\0') ptr++;
+    while (ptr < dst + elem)
+    {
+        if ((*ptr++ = *src++) == '\0') return 0;
+    }
+    /* not enough space */
+    dst[0] = '\0';
+    return MSVCRT_ERANGE;
+}




More information about the wine-cvs mailing list