]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/chgat.c
ncurses 5.9 - patch 20141011
[ncurses.git] / test / chgat.c
index f55b94ebaf923d0b8ac637bd6b53d96569a55456..919b5c9e3b98a2fcf6b0b9eff7b6bcdf1d95d6ab 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2006-2010,2012 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: chgat.c,v 1.5 2006/07/15 22:48:27 tom Exp $
+ * $Id: chgat.c,v 1.12 2012/11/18 01:55:35 tom Exp $
  *
  * test-driver for chgat/wchgat/mvchgat/mvwchgat
  */
 
 #include <test.priv.h>
 
-#ifdef HAVE_CHGAT
+#if HAVE_CHGAT
 
 #define SHOW(n) ((n) == ERR ? "ERR" : "OK")
 #define COLOR_DEFAULT (-1)
 typedef struct {
     unsigned c;
     unsigned v;
-    int pair, attr;
+    short pair;
+    unsigned attr;
     int count;
     int ch;
-    char *c_msg;
-    char *v_msg;
+    const char *c_msg;
+    const char *v_msg;
     int y_val;
     int x_val;
     int y_beg, x_beg;
     int y_max, x_max;
 } STATUS;
 
-static char *
-color_params(unsigned state, int *pair)
+static const char *
+color_params(unsigned state, short *pair)
 {
     /* *INDENT-OFF* */
     static struct {
-       int pair;
-       int fg, bg;
-       char *msg;
+       short pair;
+       short fg, bg;
+       const char *msg;
     } table[] = {
        { 0, COLOR_DEFAULT, COLOR_DEFAULT, "default" },
        { 1, COLOR_RED,     COLOR_BLACK,   "red/black" },
@@ -74,7 +75,7 @@ color_params(unsigned state, int *pair)
     /* *INDENT-ON* */
 
     static bool first = TRUE;
-    char *result = 0;
+    const char *result = 0;
 
     if (has_colors()) {
        if (first) {
@@ -93,13 +94,13 @@ color_params(unsigned state, int *pair)
     return result;
 }
 
-static char *
-video_params(unsigned state, int *attr)
+static const char *
+video_params(unsigned state, unsigned *attr)
 {
     /* *INDENT-OFF* */
     static struct {
-       int attr;
-       char *msg;
+       unsigned attr;
+       const char *msg;
     } table[] = {
        { A_NORMAL,     "normal" },
        { A_BOLD,       "bold" },
@@ -109,7 +110,7 @@ video_params(unsigned state, int *attr)
     };
     /* *INDENT-ON* */
 
-    char *result = 0;
+    const char *result = 0;
 
     if (state < SIZEOF(table)) {
        *attr = table[state].attr;
@@ -123,10 +124,17 @@ static void
 fill_window(WINDOW *win)
 {
     int y, x;
+    int y0 = -1, x0 = -1;
 
     getyx(win, y, x);
     wmove(win, 0, 0);
     while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) {
+       int y1, x1;
+       getyx(win, y1, x1);
+       if (y1 == y0 && x1 == x0)
+           break;
+       x0 = x1;
+       y0 = y1;
     }
     wmove(win, y, x);
 }
@@ -168,6 +176,8 @@ do_subwindow(WINDOW *win, STATUS * sp, void func(WINDOW *))
        delwin(win1);
        touchwin(win);
     } else {
+       if (win1 != 0)
+           delwin(win1);
        beep();
     }
 }
@@ -213,7 +223,7 @@ show_help(WINDOW *win)
 
     getmaxyx(win, y_max, x_max);
     for (row = 0; row < (int) SIZEOF(table) && row < y_max; ++row) {
-       mvwprintw(win, row, 0, "%.*s", x_max, table[row]);
+       MvWPrintw(win, row, 0, "%.*s", x_max, table[row]);
     }
     while (wgetch(win) != 'q')
        beep();