Allow for overlapping regions.

This commit is contained in:
jshepher
2004-12-11 18:17:15 +00:00
parent f5e2060927
commit 7a5099b1d8
+12 -3
View File
@@ -5,8 +5,17 @@ void bcopy(const void *s1,void *s2,size_t n)
{ {
unsigned char *ch1 = s1; unsigned char *ch1 = s1;
unsigned char *ch2 = s2; unsigned char *ch2 = s2;
while (n > 0) { if (ch1 < ch2) {
*ch2++ = *ch1++; while (n > 0) {
n--; *ch2++ = *ch1++;
n--;
}
} else {
ch1 += n;
ch2 += n;
while (n > 0) {
*ch2-- = *ch1--;
n--;
}
} }
} }