1169689Skan/* Public domain. */ 2169689Skan#include <stddef.h> 3169689Skan 4169689Skanvoid * 5169689Skanmemmove (void *dest, const void *src, size_t len) 6169689Skan{ 7169689Skan char *d = dest; 8169689Skan const char *s = src; 9169689Skan if (d < s) 10169689Skan while (len--) 11169689Skan *d++ = *s++; 12169689Skan else 13169689Skan { 14169689Skan char *lasts = s + (len-1); 15169689Skan char *lastd = d + (len-1); 16169689Skan while (len--) 17169689Skan *lastd-- = *lasts--; 18169689Skan } 19169689Skan return dest; 20169689Skan} 21