home *** CD-ROM | disk | FTP | other *** search
- /*
- * ttest.c
- *
- * By Ross Ridge
- * Public Domain
- * 92/02/01 07:30:47
- *
- */
-
- #define NOTLIB
- #include "defs.h"
- #include "term.h"
-
- static const char SCCSid[] = "@(#) mytinfo ttest.c 3.2 92/02/01 public domain, By Ross Ridge";
-
- int
- cup(x,y)
- int x, y; {
- if (columns < 2 || lines < 2)
- return -1;
- if (cursor_address != NULL)
- putp(tparm(cursor_address, y, x));
- else if (cursor_home != NULL && cursor_down != NULL
- && cursor_right != NULL) {
- putp(cursor_home);
- if (parm_down_cursor != NULL)
- putp(tparm(parm_down_cursor, y));
- else
- for(; y > 0; y--)
- putp(cursor_down);
- if (parm_right_cursor != NULL)
- putp(tparm(parm_right_cursor, y));
- else
- for(; y > 0; y--)
- putp(cursor_right);
- } else if (cursor_to_ll != NULL && cursor_up != NULL
- && cursor_right != NULL) {
- putp(cursor_to_ll);
- if (parm_up_cursor != NULL)
- putp(tparm(parm_up_cursor, y));
- else
- for(y++; y < columns ; y++)
- putp(cursor_up);
- if (parm_right_cursor != NULL)
- putp(tparm(parm_right_cursor, y));
- else
- for(; y > 0; y--)
- putp(cursor_right);
- } else
- return 1;
- return 0;
- }
-
- int
- clear() {
- int r;
- if (clear_screen != NULL)
- putp(clear_screen);
- else if (clr_eos != NULL) {
- r = cup(0,0);
- if (r != 0)
- return r;
- putp(clr_eos);
- } else
- return -2;
- return 0;
- }
-
- void
- nl() {
- if (newline != NULL)
- putp(newline);
- else if (carriage_return != NULL && cursor_down != NULL) {
- putp(cursor_down);
- putp(carriage_return);
- } else
- quit(-1, "can't do a newline");
- return;
- }
-
- void
- putln(s)
- char *s; {
- int i;
-
- if (columns < 2 || auto_right_margin)
- fputs(s, stdout);
- else {
- i = 0;
- while(*s) {
- putchar(*s);
- s++;
- if (++i == columns) {
- nl();
- i = 0;
- }
- }
- }
- nl();
- }
-
- void
- anykey() {
- fputs("-- press any key --", stdout);
- fflush(stdout);
- getchar();
- nl();
- }
-
- void
- do_cleanup(e)
- int e; {
- fflush(stdout);
- fflush(stderr);
- reset_shell_mode();
- fprintf(stderr, "\n");
- }
-
- #ifdef USE_SGTTY
- struct sgttyb new_tty;
- #else
- struct termio new_tty;
- #endif
-
- int
- main(argc, argv)
- int argc;
- char **argv; {
- int r;
- register int i;
-
- prg_name = argv[0];
- cleanup = do_cleanup;
-
- if (argc == 1)
- setupterm(NULL, 1, (int *) 0);
- else if (argc == 2)
- setupterm(argv[1], 1, (int *) 0);
- else {
- fprintf(stderr, "usage: %s [terminal]\n", argv[0]);
- return 1;
- }
- fflush(stderr);
- fflush(stdout);
- #ifdef USE_SGTTY
- ioctl(1, TIOCGETP, &new_tty);
- new_tty.sg_flags &= ~(CRMOD | ECHO | XTABS);
- #ifdef CBREAK
- new_tty.sg_flags |= CBREAK;
- #else
- new_tty.sg_flags |= RAW;
- #endif
- ioctl(1, TIOCSETP, &new_tty);
- #endif
- #ifdef USE_TERMIO
- ioctl(1, TCGETA, &new_tty);
- new_tty.c_lflag &= ~(ICANON | ECHO);
- new_tty.c_oflag &= ~(OPOST);
- new_tty.c_cc[VMIN] = 1;
- new_tty.c_cc[VTIME] = 1;
- ioctl(1, TCSETA, &new_tty);
- #endif
- def_prog_mode();
-
- clear();
- printf("columns = %d", columns);
- nl();
- printf("lines = %d", lines);
- if (columns < 2)
- quit(-1, "columns must be > 1");
- nl();
- anykey();
- nl();
- if (auto_right_margin) {
- putln("auto_right_margin = TRUE");
- nl();
- for(i = 0; i < columns; i++)
- putchar('1');
- for(i = 0; i < columns / 2; i++)
- putchar('2');
- nl();
- } else {
- putln("auto_right_margin = FALSE");
- nl();
- for(i = 0; i < columns + columns / 2; i++)
- putchar('1');
- nl();
- for(i = 0; i < columns / 2; i++)
- putchar('2');
- nl();
- }
- nl();
- putln("***a line of 1's followed by a line of 2's");
- nl();
- anykey();
- nl();
-
- if (over_strike) {
- putln("over_strike = TRUE");
- if (cursor_left != NULL) {
- for(i = 0; i < columns / 4 + 1; i++) {
- putchar('/');
- putp(cursor_left);
- putchar('\\');
- }
- } else if (carriage_return != NULL) {
- for(i = 0; i < columns / 4 + 1; i++)
- putchar('/');
- putp(carriage_return);
- for(i = 0; i < columns / 4 + 1; i++)
- putchar('\\');
- }
- nl();
- nl();
- putln("*** X's made from \\'s overstriking /'s");
- nl();
- anykey();
- nl();
- }
-
- if (cup(0,0) == 0) {
- clear();
- putln("cup test");
- for(i = 1; i < columns; i++)
- putp(tparm(cursor_address, 0, i));
- for(i = 0; i < lines; i++)
- putp(tparm(cursor_address, i, columns - 1));
- for(i = columns; i--;)
- putp(tparm(cursor_address, lines - 1, i));
- for(i = lines; i--;)
- putp(tparm(cursor_address, i, 0));
- nl();
- anykey();
- }
- clear();
-
- putln("Attribute test");
- nl();
- if (enter_blink_mode != NULL) {
- putp(enter_blink_mode);
- printf("blink");
- putp(exit_attribute_mode);
- nl();
- }
- if (enter_bold_mode != NULL) {
- putp(enter_bold_mode);
- printf("bold");
- putp(exit_attribute_mode);
- nl();
- }
- if (enter_dim_mode != NULL) {
- putp(enter_dim_mode);
- printf("dim");
- putp(exit_attribute_mode);
- nl();
- }
- if (enter_reverse_mode != NULL) {
- putp(enter_reverse_mode);
- printf("reverse");
- putp(exit_attribute_mode);
- nl();
- }
- if (enter_standout_mode != NULL) {
- putp(enter_standout_mode);
- printf("standout");
- putp(exit_standout_mode);
- nl();
- }
- if (enter_underline_mode != NULL) {
- putp(enter_underline_mode);
- printf("underline");
- putp(exit_underline_mode);
- nl();
- }
- nl();
- anykey();
-
- clear();
- reset_shell_mode();
-
- return (0);
- }
-