|
|
1.1 ! root 1: #ifndef lint ! 2: static char sccsid[] = "@(#)tc3.c 4.1 (Berkeley) 6/27/83"; ! 3: #endif ! 4: ! 5: /* ! 6: * tc3 [term] ! 7: * Dummy program to test out termlib. ! 8: * Input two numbers and it prints out the tgoto string generated. ! 9: */ ! 10: #include <stdio.h> ! 11: char buf[1024]; ! 12: char *getenv(), *tgetstr(); ! 13: char *rdchar(); ! 14: char *tgoto(); ! 15: char *CM; ! 16: char cmbuff[30]; ! 17: char *x; ! 18: char *UP; ! 19: char *tgout; ! 20: ! 21: main(argc, argv) char **argv; { ! 22: char *p; ! 23: int rc; ! 24: int row, col; ! 25: ! 26: if (argc < 2) ! 27: p = getenv("TERM"); ! 28: else ! 29: p = argv[1]; ! 30: rc = tgetent(buf,p); ! 31: x = cmbuff; ! 32: UP = tgetstr("up", &x); ! 33: printf("UP = %x = ", UP); pr(UP); printf("\n"); ! 34: if (UP && *UP==0) ! 35: UP = 0; ! 36: CM = tgetstr("cm", &x); ! 37: printf("CM = "); pr(CM); printf("\n"); ! 38: for (;;) { ! 39: if (scanf("%d %d", &row, &col) < 2) ! 40: exit(0); ! 41: tgout = tgoto(CM, row, col); ! 42: pr(tgout); ! 43: printf("\n"); ! 44: } ! 45: } ! 46: ! 47: pr(p) ! 48: register char *p; ! 49: { ! 50: for (; *p; p++) ! 51: printf("%s", rdchar(*p)); ! 52: } ! 53: ! 54: /* ! 55: * rdchar: returns a readable representation of an ASCII char, using ^ notation. ! 56: */ ! 57: #include <ctype.h> ! 58: char *rdchar(c) ! 59: char c; ! 60: { ! 61: static char ret[4]; ! 62: register char *p; ! 63: ! 64: /* ! 65: * Due to a bug in isprint, this prints spaces as ^`, but this is OK ! 66: * because we want something to show up on the screen. ! 67: */ ! 68: ret[0] = ((c&0377) > 0177) ? '\'' : ' '; ! 69: c &= 0177; ! 70: ret[1] = isprint(c) ? ' ' : '^'; ! 71: ret[2] = isprint(c) ? c : c^0100; ! 72: ret[3] = 0; ! 73: for (p=ret; *p==' '; p++) ! 74: ; ! 75: return (p); ! 76: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.