Annotation of 3BSD/cmd/see.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.