]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/clip_printw.c
ncurses 5.7 - patch 20090905
[ncurses.git] / test / clip_printw.c
index 7af637cc9597a593d2fcf154580aff20ca1a2e78..c90cc85910ee1370a3bc8a7d34c854d88a0abed7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2008 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2008,2009 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: clip_printw.c,v 1.1 2008/12/20 21:03:06 tom Exp $
+ * $Id: clip_printw.c,v 1.4 2009/08/29 19:00:44 tom Exp $
  *
  * demonstrate how to use printw without wrapping.
  */
 
 #include <test.priv.h>
 
+#ifdef HAVE_VW_PRINTW
+
 #define SHOW(n) ((n) == ERR ? "ERR" : "OK")
 #define COLOR_DEFAULT (-1)
 
@@ -53,7 +55,7 @@ typedef struct {
 } STATUS;
 
 static int
-clip_wprintw(WINDOW *win, const char *fmt,...)
+clip_wprintw(WINDOW *win, NCURSES_CONST char *fmt,...)
 {
     int y0, x0, y1, x1, width;
     WINDOW *sub;
@@ -150,10 +152,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);
 }
@@ -318,7 +327,7 @@ test_clipping(WINDOW *win)
     do {
        switch (st.ch) {
        case '.':               /* change from current position */
-           wattrset(win, st.attr | COLOR_PAIR(st.pair));
+           (void) wattrset(win, st.attr | COLOR_PAIR(st.pair));
            if (st.count > 0) {
                need = st.count + 1;
                sprintf(fmt, "%%c%%%ds%%c", st.count);
@@ -358,3 +367,12 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 
     ExitProgram(EXIT_SUCCESS);
 }
+
+#else
+int
+main(void)
+{
+    printf("This program requires the curses vw_printw function\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif