]> pd.if.org Git - zos/blobdiff - klib/memmove.c
klib and makefile
[zos] / klib / memmove.c
diff --git a/klib/memmove.c b/klib/memmove.c
new file mode 100644 (file)
index 0000000..b372945
--- /dev/null
@@ -0,0 +1,18 @@
+#include <string.h>
+
+void *memmove(void *s1, const void *s2, size_t n) {
+       char *dest = (char *)s1;
+       const char *src = (const char *)s2;
+       if (dest <= src) {
+               while (n--) {
+                       *dest++ = *src++;
+               }
+       } else {
+               src += n;
+               dest += n;
+               while (n--) {
+                       *--dest = *--src;
+               }
+       }
+       return s1;
+}