Annotation of researchv10dc/ncurses/screen/show.c, revision 1.1.1.1

1.1       root        1: #include <curses.h>
                      2: #include <signal.h>
                      3: 
                      4: #ifdef DEBUGfoo
                      5: #undef LINES
                      6: #define LINES 5
                      7: #endif
                      8: 
                      9: main(argc, argv)
                     10: char **argv;
                     11: {
                     12:        FILE *fd;
                     13:        char linebuf[512];
                     14:        int line;
                     15:        int done();
                     16: 
                     17:        if (argc < 2) {
                     18:                (void) fprintf(stderr, "Usage: show file\n");
                     19:                exit(1);
                     20:        }
                     21:        fd = fopen(argv[1], "r");
                     22:        if (fd == NULL) {
                     23:                perror(argv[1]);
                     24:                exit(2);
                     25:        }
                     26:        (void) signal(SIGINT, done);    /* die gracefully */
                     27: 
                     28:        initscr();                      /* initialize curses */
                     29:        noecho();                       /* turn off tty echo */
                     30:        cbreak();                       /* enter cbreak mode */
                     31:        nonl();                         /* allow more optimizations */
                     32:        idlok(stdscr, TRUE);            /* allow insert/delete line */
                     33: 
                     34:        for (;;) {                      /* for each screen full */
                     35:                (void) move(0, 0);
                     36:                /* werase(stdscr); */
                     37:                for (line=0; line<LINES; line++) {
                     38:                        if (fgets(linebuf, sizeof linebuf, fd) == NULL) {
                     39:                                clrtobot();
                     40:                                done();
                     41:                        }
                     42:                        (void) mvprintw(line, 0, "%s", linebuf);
                     43:                }
                     44:                (void) refresh();       /* sync screen */
                     45:                if(getch() == 'q')      /* wait for user to read it */
                     46:                        done();
                     47:        }
                     48: }
                     49: 
                     50: /*
                     51:  * Clean up and exit.
                     52:  */
                     53: done()
                     54: {
                     55:        (void) move(LINES-1,0);         /* to lower left corner */
                     56:        clrtoeol();                     /* clear bottom line */
                     57:        (void) refresh();               /* flush out everything */
                     58:        endwin();                       /* curses cleanup */
                     59:        exit(0);
                     60: }

unix.superglobalmegacorp.com

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