From 40cfd9e1e4491bbe5bcd251f89e8999000ea5dad Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Wed, 22 Apr 2009 18:53:21 +0000 Subject: [PATCH] import strcpy_s from wine svn path=/trunk/; revision=40654 --- reactos/dll/win32/msvcrt/msvcrt.def | 1 + reactos/lib/sdk/crt/string/string.c | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/reactos/dll/win32/msvcrt/msvcrt.def b/reactos/dll/win32/msvcrt/msvcrt.def index ca19192a554..563f5d9a4ac 100644 --- a/reactos/dll/win32/msvcrt/msvcrt.def +++ b/reactos/dll/win32/msvcrt/msvcrt.def @@ -852,5 +852,6 @@ EXPORTS _ftol2=_ftol _ftol2_sse=_ftol strcat_s + strcpy_s _swprintf=swprintf diff --git a/reactos/lib/sdk/crt/string/string.c b/reactos/lib/sdk/crt/string/string.c index eaacbe5221b..3b4bdf07d54 100644 --- a/reactos/lib/sdk/crt/string/string.c +++ b/reactos/lib/sdk/crt/string/string.c @@ -62,3 +62,26 @@ int CDECL strcat_s( char* dst, size_t elem, const char* src ) dst[0] = '\0'; return ERANGE; } + +/********************************************************************* + * strcpy_s (MSVCRT.@) + */ +int CDECL strcpy_s( char* dst, size_t elem, const char* src ) +{ + size_t i; + if(!elem) return EINVAL; + if(!dst) return EINVAL; + if(!src) + { + dst[0] = '\0'; + return EINVAL; + } + + for(i = 0; i < elem; i++) + { + if((dst[i] = src[i]) == '\0') return 0; + } + dst[0] = '\0'; + return ERANGE; +} +