Allow for overlapping regions.

This commit is contained in:
jshepher 2004-12-11 18:17:15 +00:00
parent f5e2060927
commit 7a5099b1d8
1 changed files with 12 additions and 3 deletions

View File

@ -5,8 +5,17 @@ void bcopy(const void *s1,void *s2,size_t n)
{
unsigned char *ch1 = s1;
unsigned char *ch2 = s2;
while (n > 0) {
*ch2++ = *ch1++;
n--;
if (ch1 < ch2) {
while (n > 0) {
*ch2++ = *ch1++;
n--;
}
} else {
ch1 += n;
ch2 += n;
while (n > 0) {
*ch2-- = *ch1--;
n--;
}
}
}