| /* Public domain. */ | |
| #include <stddef.h> | |
| void * | |
| memmove (void *dest, const void *src, size_t len) | |
| { | |
| char *d = dest; | |
| const char *s = src; | |
| if (d < s) | |
| while (len--) | |
| *d++ = *s++; | |
| else | |
| { | |
| char *lasts = s + (len-1); | |
| char *lastd = d + (len-1); | |
| while (len--) | |
| *lastd-- = *lasts--; | |
| } | |
| return dest; | |
| } |