xref: /original-bsd/old/vfilters/necf/necf.c (revision 0b685140)
1 /*	necf.c	1.4	81/08/24	*/
2 #include <stdio.h>
3 #include <sgtty.h>
4 #include <signal.h>
5 
6 #define PAGESIZE	66
7 
8 #ifdef TTY
9 #ifndef BAUDRATE
10 #	define BAUDRATE	B300
11 #endif
12 
13 struct sgttyb tty;
14 #endif
15 
16 main()
17 {
18 	extern char _sobuf[BUFSIZ];
19 	extern char *rindex();
20 	char line[256];
21 	register char c, *cp;
22 	register lnumber;
23 
24 	signal(SIGINT, SIG_IGN);
25 	signal(SIGQUIT, SIG_IGN);
26 	signal(SIGHUP, SIG_IGN);
27 
28 #ifdef TTY
29 	tty.sg_ispeed = tty.sg_ospeed = BAUDRATE;
30 	tty.sg_erase = tty.sg_kill = -1;
31 	tty.sg_flags = (ANYP|XTABS|LDECCTQ);
32 	if (ioctl(1, TIOCSETP, (char *)&tty) < 0)
33 		exit (2);
34 #endif
35 	setbuf(stdout, _sobuf);
36 #ifdef SHEETFEEDER
37 	printf("\033=\033\033\033O\f");
38 #else
39 	printf("\033=");
40 #endif
41 	lnumber = 0;
42 	while (fgets(line, sizeof(line), stdin) != NULL) {
43 #ifdef SHEETFEEDER
44 		if (lnumber == PAGESIZE-1) {
45 			putchar('\f');
46 			lnumber = 0;
47 		}
48 		if (lnumber >= 2) {
49 #endif
50 #ifdef TTY
51 			if ((cp = rindex(line, '\n')) != NULL)
52 				*cp = '\r';
53 #endif
54 			printf("%s", line);
55 #ifdef SHEETFEEDER
56 		}
57 		lnumber++;
58 #endif
59 	}
60 	fflush (stdout);
61 }
62