summaryrefslogtreecommitdiffstats
path: root/lib/libmytinfo/TESTS/ttest.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libmytinfo/TESTS/ttest.c')
-rw-r--r--lib/libmytinfo/TESTS/ttest.c297
1 files changed, 297 insertions, 0 deletions
diff --git a/lib/libmytinfo/TESTS/ttest.c b/lib/libmytinfo/TESTS/ttest.c
new file mode 100644
index 0000000..d6cc36e
--- /dev/null
+++ b/lib/libmytinfo/TESTS/ttest.c
@@ -0,0 +1,297 @@
+/*
+ * ttest.c
+ *
+ * By Ross Ridge
+ * Public Domain
+ * 92/02/01 07:30:47
+ *
+ */
+
+#define NOTLIB
+#include "defs.h"
+#include <term.h>
+
+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
+#ifdef USE_TERMIO
+struct termio new_tty;
+#else
+struct termios new_tty;
+#endif
+#endif
+
+int
+main(argc, argv)
+int argc;
+char **argv; {
+ 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);
+#else
+#ifdef USE_TERMIOS
+ tcgetattr(1, &new_tty);
+#endif
+#endif
+#if defined(USE_TERMIO) || defined(USE_TERMIOS)
+ new_tty.c_lflag &= ~(ICANON | ECHO);
+ new_tty.c_oflag &= ~(OPOST);
+ new_tty.c_cc[VMIN] = 1;
+ new_tty.c_cc[VTIME] = 1;
+#endif
+#ifdef USE_TERMIO
+ ioctl(1, TCSETA, &new_tty);
+#else
+#ifdef USE_TERMIOS
+ tcsetattr(1, TCSADRAIN, &new_tty);
+#endif
+#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);
+}
OpenPOWER on IntegriCloud