]> pd.if.org Git - pdclib/blob - functions/wchar/wmemmove.c
fe6a53eb4d3f3c083dd3bfdd4e5404c1e5d6e720
[pdclib] / functions / wchar / wmemmove.c
1 /* wmemmove( wchar_t *, const wchar_t *, size_t )\r
2 \r
3    This file is part of the Public Domain C Library (PDCLib).\r
4    Permission is granted to use, modify, and / or redistribute at will.\r
5 */\r
6 \r
7 #include <wchar.h>\r
8 \r
9 #ifndef REGTEST\r
10 \r
11 wchar_t * wmemmove( wchar_t * dest, const wchar_t * src, size_t n )\r
12 {\r
13     wchar_t* rv = dest;\r
14     if ( dest <= src )\r
15     {\r
16         while ( n-- )\r
17         {\r
18             *dest++ = *src++;\r
19         }\r
20     }\r
21     else\r
22     {\r
23         src += n;\r
24         dest += n;\r
25         while ( n-- )\r
26         {\r
27             *--dest = *--src;\r
28         }\r
29     }\r
30     return rv;\r
31 }\r
32 \r
33 #endif\r
34 \r
35 #ifdef TEST\r
36 #include "_PDCLIB_test.h"\r
37 \r
38 int main( void )\r
39 {\r
40     wchar_t s[] = L"xxxxabcde";\r
41     TESTCASE( wmemmove( s, s + 4, 5 ) == s );\r
42     TESTCASE( s[0] == L'a' );\r
43     TESTCASE( s[4] == L'e' );\r
44     TESTCASE( s[5] == L'b' );\r
45     TESTCASE( wmemmove( s + 4, s, 5 ) == s + 4 );\r
46     TESTCASE( s[4] == L'a' );\r
47     return TEST_RESULTS;\r
48 }\r
49 #endif\r