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