|
|
1.1 ! root 1: /* @(#)line.c 1.1 */ ! 2: /* ! 3: This program reads a single line from the standard input ! 4: and writes it on the standard output. It is probably most useful ! 5: in conjunction with the Bourne shell. ! 6: */ ! 7: #define LSIZE 512 ! 8: int EOF; ! 9: char nl = '\n'; ! 10: main() ! 11: { ! 12: register char c; ! 13: char line[LSIZE]; ! 14: register char *linep, *linend; ! 15: ! 16: EOF = 0; ! 17: linep = line; ! 18: linend = line + LSIZE; ! 19: ! 20: while ((c = readc()) != nl) ! 21: { ! 22: if (linep == linend) ! 23: { ! 24: write (1, line, LSIZE); ! 25: linep = line; ! 26: } ! 27: *linep++ = c; ! 28: } ! 29: write (1, line, linep-line); ! 30: write(1,&nl,1); ! 31: if (EOF == 1) exit(1); ! 32: exit (0); ! 33: } ! 34: readc() ! 35: { ! 36: char c; ! 37: if (read (0, &c, 1) != 1) { ! 38: EOF = 1; ! 39: return(nl); ! 40: } ! 41: else ! 42: return (c); ! 43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.