Eric Biederman | 5cd8173 | 2004-03-11 15:01:31 +0000 | [diff] [blame] | 1 | #include <string.h> |
2 | void *memmove(void *vdest, const void *vsrc, size_t count) | ||||
3 | { | ||||
4 | const char *src = vsrc; | ||||
5 | char *dest = vdest; | ||||
Eric Biederman | 5cd8173 | 2004-03-11 15:01:31 +0000 | [diff] [blame] | 6 | |
7 | if (dest <= src) { | ||||
8 | while (count--) { | ||||
9 | *dest++ = *src++; | ||||
10 | } | ||||
11 | } else { | ||||
12 | src += count - 1; | ||||
13 | dest += count - 1; | ||||
14 | while(count--) { | ||||
15 | *dest-- = *src--; | ||||
16 | } | ||||
17 | } | ||||
18 | return vdest; | ||||
19 | } |