]> pd.if.org Git - pdclib/blob - functions/string/memmove.c
06f67741ef7fc8270e6737957932c747164645e6
[pdclib] / functions / string / memmove.c
1 // ----------------------------------------------------------------------------
2 // $Id$
3 // ----------------------------------------------------------------------------
4 // Public Domain C Library - http://pdclib.sourceforge.net
5 // This code is Public Domain. Use, modify, and redistribute at will.
6 // ----------------------------------------------------------------------------
7
8 #include <__size_t.h>
9
10 void * memmove( void * dest, const void * src, size_t n )
11 {
12     const char * src_p = (const char *) src;
13     char * dest_p = (char *) dest;
14     if ( dest_p < src_p )
15     {
16         while ( n-- )
17         {
18             *dest_p++ = *src_p++;
19         }
20     }
21     else
22     {
23         src_p += n;
24         dest_p += n;
25         while ( n-- )
26         {
27             *dest_p-- = *src_p--;
28         }
29     }
30     return dest;
31 }