|
|
1.1 ! root 1: /* ! 2: * Copy s2 to s1, always copy n bytes ! 3: * return s1 ! 4: * ! 5: * JES 7Aug81 Allow overlapping moves in either direction. ! 6: */ ! 7: ! 8: /* eventually do this in machine language */ ! 9: extern char * ! 10: Memcpy(register char *s1, register const char *s2, int n) ! 11: { ! 12: char * os1 = s1; ! 13: register char * ns; ! 14: ! 15: if (s1 <= s2) { ! 16: ns = s1 + n; /* stopper for s1 */ ! 17: while ( s1 < ns ) ! 18: *s1++ = *s2++; ! 19: } else { ! 20: ns = s1; ! 21: s1 += n; ! 22: s2 += n; ! 23: while ( ns < s1 ) ! 24: *--s1 = *--s2; ! 25: } ! 26: return(os1); ! 27: } ! 28:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.