ReactOS 0.4.17-dev-784-g3812a95
wcscpy_s.c
Go to the documentation of this file.
1#define _CRTIMP
2#include <precomp.h>
3
4errno_t CDECL wcscpy_s(wchar_t* wcDest, size_t numElement, const wchar_t *wcSrc)
5{
6 size_t size = 0;
7
8 if(!MSVCRT_CHECK_PMT(wcDest)) return EINVAL;
9 if(!MSVCRT_CHECK_PMT(numElement)) return EINVAL;
10
12 {
13 wcDest[0] = 0;
14 return EINVAL;
15 }
16
17 size = wcslen(wcSrc) + 1;
18
19 if(!MSVCRT_CHECK_PMT_ERR(size <= numElement, ERANGE))
20 {
21 wcDest[0] = 0;
22 return ERANGE;
23 }
24
25 memmove( wcDest, wcSrc, size*sizeof(WCHAR) );
26
27 return 0;
28}
29
30#ifdef _WIN64
31void* __imp_wcscpy_s = wcscpy_s;
32#else
34#endif
#define CDECL
Definition: compat.h:29
int errno_t
Definition: corecrt.h:249
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
Definition: wcs.c:2988
#define EINVAL
Definition: errno.h:44
#define ERANGE
Definition: errno.h:55
#define MSVCRT_CHECK_PMT(x)
Definition: msvcrt.h:378
#define MSVCRT_CHECK_PMT_ERR(x, err)
Definition: msvcrt.h:377
GLsizeiptr size
Definition: glext.h:5919
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
static const unsigned char *static size_t const wchar_t * wcSrc
Definition: string.c:76
short WCHAR
Definition: pedump.c:58
errno_t CDECL wcscpy_s(wchar_t *wcDest, size_t numElement, const wchar_t *wcSrc)
Definition: wcscpy_s.c:4
void * _imp__wcscpy_s
Definition: wcscpy_s.c:33