1 /*
2  * Copyright (C) 2002     Manuel Novoa III
3  * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
4  *
5  * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
6  */
7 
8 #include "_string.h"
9 
10 #ifdef WANT_WIDE
11 # define Wmemmove wmemmove
12 #else
13 # define Wmemmove memmove
14 #endif
15 
Wmemmove(Wvoid * s1,const Wvoid * s2,size_t n)16 Wvoid *Wmemmove(Wvoid *s1, const Wvoid *s2, size_t n)
17 {
18 	register Wchar *s = (Wchar *) s1;
19 	register const Wchar *p = (const Wchar *) s2;
20 
21 	if (p >= s) {
22 		while (n) {
23 			*s++ = *p++;
24 			--n;
25 		}
26 	} else {
27 		while (n) {
28 			--n;
29 			s[n] = p[n];
30 		}
31 	}
32 
33 	return s1;
34 }
35 
36 #ifndef WANT_WIDE
37 libc_hidden_def(memmove)
38 #endif
39