BSD 3 development
[unix-history] / usr / src / cmd / see.c
CommitLineData
6a956020
BJ
1#include <stdio.h>
2
3/*
4 * see - a cat like program which prints like the ex "print" command.
5 * It always prints backspaces as "^H".
6 *
7 * Bill Joy UCB July 13, 1978
8 *
9 */
10int noeol;
11
12main(argc, argv)
13 int argc;
14 char *argv[];
15{
16 register c;
17 char obuf[BUFSIZ];
18
19 setbuf(stdout, obuf);
20 argc--, argv++;
21 if (argc > 0 && argv[0][0] == '-')
22 noeol++, argc--, argv++;
23 do {
24 if (argc > 0) {
25 if (freopen(argv[0], "r", stdin) == 0) {
26 perror(argv[0]);
27 exit(1);
28 }
29 argc--, argv++;
30 }
31 for (;;) {
32 c = getchar();
33 if (c == -1)
34 break;
35 c &= 0177;
36 if (c == 0177)
37 putchar('^'), c = '?';
38 if (c == 033)
39 c = '$';
40 if (c < ' ')
41 switch (c) {
42
43 case '\n':
44 break;
45
46 default:
47 putchar('^');
48 c |= 0100;
49 }
50 if (c == '\n' && !noeol)
51 putchar('$');
52 putchar(c);
53 if (c == '\n')
54 fflush(stdout);
55 }
56 } while (argc > 0);
57 exit(0);
58}