|
|
1.1 ! root 1: # include <sccs.h> ! 2: ! 3: SCCSID(@(#)pmove.c 7.1 2/5/81) ! 4: ! 5: /* ! 6: ** Packed Move ! 7: ** ! 8: ** Moves string `s' to storage area `b' of length `l' bytes. If ! 9: ** `s' is too long, it is truncated, otherwise it is padded to ! 10: ** length `l' with character `c'. `B' after the transfer is ! 11: ** returned. ! 12: */ ! 13: ! 14: char * ! 15: pmove(s1, b1, l1, c) ! 16: char *s1; ! 17: char *b1; ! 18: int l1; ! 19: char c; ! 20: { ! 21: register char *s; ! 22: register char *b; ! 23: register int l; ! 24: ! 25: s = s1; ! 26: b = b1; ! 27: l = l1; ! 28: ! 29: /* move up to `l' bytes */ ! 30: while (*s && l > 0) ! 31: { ! 32: *b++ = *s++; ! 33: l -= 1; ! 34: } ! 35: ! 36: /* if we still have some `l', pad */ ! 37: while (l-- > 0) ! 38: { ! 39: *b++ = c; ! 40: } ! 41: ! 42: return (b); ! 43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.