|
|
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.