|
|
1.1 ! root 1: /* ! 2: * Routines to use terminfo from emacs. ! 3: */ ! 4: #include <stdio.h> ! 5: #include "ed.h" ! 6: #include <term.h> ! 7: #if TERMNFO ! 8: #define NROW 24 /* default rows on the screen */ ! 9: #define NCOL 80 /* default columns on the screen */ ! 10: ! 11: extern int ttopen(); ! 12: extern int ttgetc(); ! 13: extern int ttputc(); ! 14: extern int ttflush(); ! 15: extern int ttclose(); ! 16: extern int tnfomove(); ! 17: extern int tnfoeeol(); ! 18: extern int tnfoeeop(); ! 19: extern int tnfobeep(); ! 20: extern int tnfoopen(); ! 21: extern int tnfostand(); ! 22: extern int tput(); ! 23: extern char *tgoto(); ! 24: extern char *tgetstr(); ! 25: extern char *realloc(); ! 26: ! 27: TERM term = { ! 28: NROW-1, ! 29: NCOL, ! 30: tnfoopen, ! 31: ttclose, ! 32: ttgetc, ! 33: ttputc, ! 34: ttflush, ! 35: tnfomove, ! 36: tnfoeeol, ! 37: tnfoeeop, ! 38: tnfobeep, ! 39: tnfostand ! 40: }; ! 41: ! 42: /* ! 43: * Get terminfo information ! 44: */ ! 45: tnfoopen() ! 46: { ! 47: static int fts; ! 48: int status; ! 49: ! 50: if (fts++) { ! 51: ttopen(); ! 52: return; ! 53: } ! 54: setupterm(NULL, fileno(stdout), &status); ! 55: if (1 != status) { ! 56: printf("Terminfo setup failed\n"); ! 57: exit(1); ! 58: } ! 59: term.t_ncol = columns; ! 60: term.t_nrow = lines - 1; ! 61: if (NULL == cursor_address) { ! 62: printf("Cursor address is not set in terminfo\n"); ! 63: exit(1); ! 64: } ! 65: if (NULL == clear_screen) { ! 66: printf("Clear screen is not set in terminfo\n"); ! 67: exit(1); ! 68: } ! 69: if (NULL == clr_eol) { ! 70: printf("Clear to end of line is not set in terminfo\n"); ! 71: exit(1); ! 72: } ! 73: ! 74: ttopen(); ! 75: } ! 76: ! 77: /* ! 78: * move to row and column. ! 79: */ ! 80: tnfomove(row, col) ! 81: { ! 82: putp(tparm(cursor_address, row, col)); ! 83: } ! 84: ! 85: /* ! 86: * Clear to end of line. ! 87: */ ! 88: tnfoeeol() ! 89: { ! 90: putp(clr_eol); ! 91: } ! 92: ! 93: /* ! 94: * Clear screen. ! 95: */ ! 96: tnfoeeop() ! 97: { ! 98: putp(clear_screen); ! 99: } ! 100: ! 101: /* ! 102: * Say beep ! 103: */ ! 104: tnfobeep() ! 105: { ! 106: putp(bell); ! 107: } ! 108: ! 109: /* ! 110: * Set or clear standout mode. ! 111: */ ! 112: tnfostand(f) ! 113: { ! 114: if (f) ! 115: putp(enter_standout_mode); ! 116: else ! 117: putp(exit_standout_mode); ! 118: } ! 119: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.