17 lines
259 B
C
17 lines
259 B
C
|
char *
|
||
|
memcpy(s1, s2, n)
|
||
|
register char *s1, *s2;
|
||
|
register int n;
|
||
|
{
|
||
|
/* Copy a block of data. */
|
||
|
|
||
|
char *ret = s1;
|
||
|
|
||
|
if (s2 <= s1 && s2 + (n-1) >= s1) {
|
||
|
s1 += n; s2 += n;
|
||
|
while (n-- > 0) *--s1 = *--s2;
|
||
|
}
|
||
|
else while (n-- > 0) *s1++ = *s2++;
|
||
|
return ret;
|
||
|
}
|