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