OSDN Git Service

ruby-1.9.1-rc1
[splhack/AndroidRuby.git] / lib / ruby-1.9.1-rc1 / missing / memmove.c
diff --git a/lib/ruby-1.9.1-rc1/missing/memmove.c b/lib/ruby-1.9.1-rc1/missing/memmove.c
new file mode 100644 (file)
index 0000000..19c5f18
--- /dev/null
@@ -0,0 +1,21 @@
+/* public domain rewrite of memcmp(3) */
+
+#include <stddef.h>
+
+void *
+memmove(void *d, const void *s, size_t n)
+{
+    char *dst = (char *)d;
+    const char *src = (const char *)s;
+
+    if (src < dst) {
+       src += n;
+       dst += n;
+       for (; n; --n)
+           *--dst = *--src;
+    }
+    else if (dst < src)
+       for (; n; --n)
+           *dst++ = *src++;
+    return d;
+}