1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* public domain rewrite of memcmp(3) */ void * memmove (d, s, n) void *d, *s; int n; { char *dst = d; char *src = s; void *ret = dst; if (src < dst) { src += n; dst += n; while (n--) *--dst = *--src; } else if (dst < src) while (n--) *dst++ = *src++; return ret; }