Annotation of coherent/d/bin/clear.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * clear.c
                      3:  * 3/18/91
                      4:  * Usage: clear
                      5:  * cc -o clear clear.c -lterm
                      6:  * Clear the screen (stdout) using termcap.
                      7:  */
                      8: 
                      9: #include <stdio.h>
                     10: 
                     11: #define        TCBUFLEN        1024
                     12: #define TCAPSLEN       315
                     13: #define        NLINES          22
                     14: 
                     15: extern char    *getenv();
                     16: extern int     tgetent();
                     17: extern char    *tgetstr();
                     18: extern char    *tgoto();
                     19: extern int     ttputc();
                     20: 
                     21: void   fatal();
                     22: int    ttputc();
                     23: 
                     24: char   tcbuf[TCBUFLEN];
                     25: char   tcapbuf[TCAPSLEN];
                     26: 
                     27: main()
                     28: {
                     29:        register char *clear, *move, *tv_stype, *p;
                     30: 
                     31:        p = tcapbuf;
                     32:        if ((tv_stype=getenv("TERM")) == NULL)
                     33:                fatal("enviroment variable TERM not defined");
                     34:        else if (tgetent(tcbuf, tv_stype) != 1)
                     35:                fatal("unknown terminal type \"%s\"", tv_stype);
                     36:        else if ((clear=tgetstr("cd", &p)) == NULL
                     37:              || (move =tgetstr("cm", &p)) == NULL)
                     38:                fatal("incomplete termcap entry");
                     39:        tputs(tgoto(move, 0, 0), 1, ttputc);
                     40:        tputs(clear, 1, ttputc);
                     41:        exit(0);
                     42: }
                     43: 
                     44: /* VARARGS */
                     45: void
                     46: fatal(x) char *x;
                     47: {
                     48:        register int i;
                     49: 
                     50:        fprintf(stderr, "clear: %r\n", &x);
                     51:        for (i = 1; i <= NLINES; i++)
                     52:                putchar('\n');
                     53:        exit(1);
                     54: }
                     55: 
                     56: int
                     57: ttputc(c) int c;
                     58: {
                     59:        return fputc(c, stdout);
                     60: }
                     61: 
                     62: /* end of clear.c */

unix.superglobalmegacorp.com

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