]> pd.if.org Git - pdclib/blobdiff - functions/string/memmove.c
Minimized include scope.
[pdclib] / functions / string / memmove.c
index 9ecce5db20fa32741d4ab4164fa6214a38d3dde9..06f67741ef7fc8270e6737957932c747164645e6 100644 (file)
@@ -5,4 +5,27 @@
 // This code is Public Domain. Use, modify, and redistribute at will.
 // ----------------------------------------------------------------------------
 
-void * memmove( void * s1, const void * s2, size_t n ) { /* TODO */ };
+#include <__size_t.h>
+
+void * memmove( void * dest, const void * src, size_t n )
+{
+    const char * src_p = (const char *) src;
+    char * dest_p = (char *) dest;
+    if ( dest_p < src_p )
+    {
+        while ( n-- )
+        {
+            *dest_p++ = *src_p++;
+        }
+    }
+    else
+    {
+        src_p += n;
+        dest_p += n;
+        while ( n-- )
+        {
+            *dest_p-- = *src_p--;
+        }
+    }
+    return dest;
+}