|
|
1.1 root 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: */
10: int noeol;
11:
12: main(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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.