ref: 5ac3a0d4c1a9d7e4d3912c4770084b885007aca6
dir: /src/libc/string/memmove.c/
#include <string.h> #undef memmove void * memmove(void *s1, const void *s2, size_t n) { char *d = s1; const char *s = s2; if (d < s) { while (n-- > 0) *d++ = *s++; } else { s += n-1, d += n-1; while (n-- > 0) *d-- = *s--; } return s1; }