xref: /netbsd/share/man/tools/line.c (revision bf9ec67e)
1 /*	$NetBSD: line.c,v 1.2 1998/01/09 08:05:00 perry Exp $	*/
2 
3 /*	@(#)line.c	1.1	*/
4 /*
5 	This program reads a single line from the standard input
6 	and writes it on the standard output. It is probably most useful
7 	in conjunction with the Bourne shell.
8 */
9 #define LSIZE 512
10 int EOF;
11 char nl = '\n';
12 main()
13 {
14 	register char c;
15 	char line[LSIZE];
16 	register char *linep, *linend;
17 
18 EOF = 0;
19 linep = line;
20 linend = line + LSIZE;
21 
22 while ((c = readc()) != nl)
23 	{
24 	if (linep == linend)
25 		{
26 		write (1, line, LSIZE);
27 		linep = line;
28 		}
29 	*linep++ = c;
30 	}
31 write (1, line, linep-line);
32 write(1,&nl,1);
33 if (EOF == 1) exit(1);
34 exit (0);
35 }
36 readc()
37 {
38 	char c;
39 if (read (0, &c, 1) != 1) {
40 	EOF = 1;
41 	return(nl);
42 	}
43 else
44 	return (c);
45 }
46