summaryrefslogtreecommitdiff
path: root/src/lib/memmove.c
blob: 0a4908325eb24134f0412b8f0ce74869bd30686c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string.h>
void *memmove(void *vdest, const void *vsrc, size_t count)
{
	const char *src = vsrc;
	char *dest = vdest;
	int i;

	if (dest <= src) {
		while (count--) {
			*dest++ = *src++;
		}
	} else {
		src  += count - 1;
		dest += count - 1;
		while(count--) {
			*dest-- = *src--;
		}
	}
	return vdest;
}