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