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