root/share/man/tools/line.c
/*      $NetBSD: line.c,v 1.2 1998/01/09 08:05:00 perry Exp $   */

/*      @(#)line.c      1.1     */
/*
        This program reads a single line from the standard input
        and writes it on the standard output. It is probably most useful
        in conjunction with the Bourne shell.
*/
#define LSIZE 512
int EOF;
char nl = '\n';
main()
{
        register char c;
        char line[LSIZE];
        register char *linep, *linend;

EOF = 0;
linep = line;
linend = line + LSIZE;

while ((c = readc()) != nl)
        {
        if (linep == linend)
                {
                write (1, line, LSIZE);
                linep = line;
                }
        *linep++ = c;
        }
write (1, line, linep-line);
write(1,&nl,1);
if (EOF == 1) exit(1);
exit (0);
}
readc()
{
        char c;
if (read (0, &c, 1) != 1) {
        EOF = 1;
        return(nl);
        }
else
        return (c);
}