From a75239ad1314aad20f5599ca9dfe3e5084d8379a Mon Sep 17 00:00:00 2001 From: Sam Leffler Date: Mon, 27 Jun 1983 20:57:01 -0800 Subject: [PATCH] date and time created 83/06/27 13:57:01 by sam SCCS-vsn: lib/libterm/TEST/tc3.c 4.1 --- usr/src/lib/libterm/TEST/tc3.c | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 usr/src/lib/libterm/TEST/tc3.c diff --git a/usr/src/lib/libterm/TEST/tc3.c b/usr/src/lib/libterm/TEST/tc3.c new file mode 100644 index 0000000000..c618ab58af --- /dev/null +++ b/usr/src/lib/libterm/TEST/tc3.c @@ -0,0 +1,76 @@ +#ifndef lint +static char sccsid[] = "@(#)tc3.c 4.1 (Berkeley) %G%"; +#endif + +/* + * tc3 [term] + * Dummy program to test out termlib. + * Input two numbers and it prints out the tgoto string generated. + */ +#include +char buf[1024]; +char *getenv(), *tgetstr(); +char *rdchar(); +char *tgoto(); +char *CM; +char cmbuff[30]; +char *x; +char *UP; +char *tgout; + +main(argc, argv) char **argv; { + char *p; + int rc; + int row, col; + + if (argc < 2) + p = getenv("TERM"); + else + p = argv[1]; + rc = tgetent(buf,p); + x = cmbuff; + UP = tgetstr("up", &x); + printf("UP = %x = ", UP); pr(UP); printf("\n"); + if (UP && *UP==0) + UP = 0; + CM = tgetstr("cm", &x); + printf("CM = "); pr(CM); printf("\n"); + for (;;) { + if (scanf("%d %d", &row, &col) < 2) + exit(0); + tgout = tgoto(CM, row, col); + pr(tgout); + printf("\n"); + } +} + +pr(p) +register char *p; +{ + for (; *p; p++) + printf("%s", rdchar(*p)); +} + +/* + * rdchar: returns a readable representation of an ASCII char, using ^ notation. + */ +#include +char *rdchar(c) +char c; +{ + static char ret[4]; + register char *p; + + /* + * Due to a bug in isprint, this prints spaces as ^`, but this is OK + * because we want something to show up on the screen. + */ + ret[0] = ((c&0377) > 0177) ? '\'' : ' '; + c &= 0177; + ret[1] = isprint(c) ? ' ' : '^'; + ret[2] = isprint(c) ? c : c^0100; + ret[3] = 0; + for (p=ret; *p==' '; p++) + ; + return (p); +} -- 2.20.1