static long speedcode;
-static int initLI = 0;
static int initCO = 0;
-static int HC = 0; /* are we on a hardcopy terminal? */
-static int LI = 40; /* number of lines */
static int CO = 80; /* number of colums */
-static char *CL = NULL; /* termcap string to clear screen */
-static char *SE = NULL; /* termcap string to end standout mode */
-static char *SO = NULL; /* termcap string to begin standout mode */
static char termcap[TXTSIZ];
# endif
#endif
- HC = tgetflag("hc");
-
if (!initCO && (CO = tgetnum("co")) <= 0)
CO = 80;
- if (!initLI && (LI = tgetnum("li")) <= 0)
- LI = 24;
cp = termcap;
- CL = tgetstr("cl", &cp);
if ((bp = tgetstr("pc", &cp)))
PC = *bp;
- if (tgetnum("sg") <= 0) {
- SE = tgetstr("se", &cp);
- SO = tgetstr("so", &cp);
- }
}
return CO;
}
-
-
-int
-sc_length(void)
-{
-#ifdef TIOCGWINSZ
- struct winsize win;
-
- if (ioctl(fileno(stderr), TIOCGWINSZ, &win) != NOTOK
- && (LI = win.ws_row) > 0)
- initLI++;
- else
-#endif /* TIOCGWINSZ */
- read_termcap();
-
- return LI;
-}
-
-
-void
-clear_screen(void)
-{
- read_termcap();
-
- if (CL && speedcode)
- tputs(CL, LI, putchar);
- else {
- printf("\f");
- if (speedcode)
- printf("\200");
- }
-
- fflush(stdout);
-}
-
-
-/*
-** print in standout mode
-*/
-int
-SOprintf(char *fmt, ...)
-{
- va_list ap;
-
- read_termcap();
- if (!(SO && SE))
- return NOTOK;
-
- tputs(SO, 1, putchar);
-
- va_start(ap, fmt);
- vprintf(fmt, ap);
- va_end(ap);
-
- tputs(SE, 1, putchar);
-
- return OK;
-}
-
-/*
-** Is this a hardcopy terminal?
-*/
-
-int
-sc_hardcopy(void)
-{
- read_termcap();
- return HC;
-}