ncurses 5.9 - patch 20130112
[ncurses.git] / test / insdelln.c
index f25a90c03a09c78b94de7fdd82227ba4fc49b284..758f0887f2ba5be83a651d25344317eab20247be 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2008 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2008-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            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: insdelln.c,v 1.1 2008/12/20 22:06:52 tom Exp $
+ * $Id: insdelln.c,v 1.7 2012/11/18 00:37:58 tom Exp $
  *
  * test-driver for deleteln, wdeleteln, insdelln, winsdelln, insertln, winsertln
  */
@@ -56,8 +56,8 @@ color_params(unsigned state, int *pair)
 {
     /* *INDENT-OFF* */
     static struct {
-       int pair;
-       int fg, bg;
+       short pair;
+       short fg, bg;
        const char *msg;
     } table[] = {
        { 0, COLOR_DEFAULT, COLOR_DEFAULT, "default" },
@@ -116,10 +116,17 @@ static void
 fill_window(WINDOW *win)
 {
     int y, x;
+    int y0 = -1, x0 = -1;
 
     getyx(win, y, x);
-    wmove(win, 1, 0);
+    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 +175,8 @@ do_subwindow(WINDOW *win, STATUS * sp, void func(WINDOW *))
        delwin(win1);
        touchwin(win);
     } else {
+       if (win1)
+           delwin(win1);
        beep();
     }
 }
@@ -217,7 +226,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();
@@ -293,7 +302,7 @@ test_winsdelln(WINDOW *win)
     init_status(win, &st);
 
     do {
-       wattrset(win, st.attr | COLOR_PAIR(st.pair));
+       (void) wattrset(win, (int) (st.attr | (attr_t) COLOR_PAIR(st.pair)));
        switch (st.ch) {
        case 'i':
            for (n = 0; n < st.count; ++n)
@@ -334,7 +343,7 @@ test_insdelln(void)
     init_status(stdscr, &st);
 
     do {
-       attrset(st.attr | COLOR_PAIR(st.pair));
+       (void) attrset(st.attr | (attr_t) COLOR_PAIR(st.pair));
        switch (st.ch) {
        case 'i':
            for (n = 0; n < st.count; ++n)