1/* public domain rewrite of memcmp(3) */
2
3#include "ruby/missing.h"
4#include <stddef.h>
5
6void *
7memmove(void *d, const void *s, size_t n)
8{
9    char *dst = (char *)d;
10    const char *src = (const char *)s;
11
12    if (src < dst) {
13	src += n;
14	dst += n;
15	for (; n; --n)
16	    *--dst = *--src;
17    }
18    else if (dst < src)
19	for (; n; --n)
20	    *dst++ = *src++;
21    return d;
22}
23