ncurses 6.2 - patch 20200627
[ncurses.git] / test / background.c
index c7e61113d9523b9c68b77db67da358da496b1965..391ab1a7d3298c7d7c15de6a6cdf9dc7c3bd932b 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 2003-2011,2012 Free Software Foundation, Inc.              *
+ * Copyright 2018,2020 Thomas E. Dickey                                     *
+ * Copyright 2003-2014,2017 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: background.c,v 1.12 2012/05/12 20:58:40 tom Exp $
+ * $Id: background.c,v 1.19 2020/02/02 23:34:34 tom Exp $
  */
 
 #define NEED_COLOR_CODE 1
 #define NEED_COLOR_NAME 1
 #include <color_name.h>
+#include <dump_window.h>
 
 static int default_bg = COLOR_BLACK;
 static int default_fg = COLOR_WHITE;
@@ -39,33 +41,33 @@ static int default_fg = COLOR_WHITE;
 static void
 test_background(void)
 {
-    short f, b;
+    NCURSES_COLOR_T f, b;
     int row;
     int chr;
 
     if (pair_content(0, &f, &b) == ERR) {
        printw("pair 0 contains no data\n");
     } else {
-       printw("pair 0 contains (%d,%d)\n", f, b);
+       printw("pair 0 contains (%d,%d)\n", (int) f, (int) b);
     }
-    getch();
+    dump_window(stdscr);
 
     printw("Initializing pair 1 to red/%s\n", color_name(default_bg));
-    init_pair(1, COLOR_RED, (short) default_bg);
-    bkgdset(' ' | COLOR_PAIR(1));
+    init_pair(1, COLOR_RED, (NCURSES_COLOR_T) default_bg);
+    bkgdset((chtype) (' ' | COLOR_PAIR(1)));
     printw("RED/BLACK\n");
-    getch();
+    dump_window(stdscr);
 
     printw("Initializing pair 2 to %s/blue\n", color_name(default_fg));
-    init_pair(2, (short) default_fg, COLOR_BLUE);
-    bkgdset(' ' | COLOR_PAIR(2));
+    init_pair(2, (NCURSES_COLOR_T) default_fg, COLOR_BLUE);
+    bkgdset((chtype) (' ' | COLOR_PAIR(2)));
     printw("This line should be %s/blue\n", color_name(default_fg));
-    getch();
+    dump_window(stdscr);
 
     printw("Initializing pair 3 to %s/cyan (ACS_HLINE)\n", color_name(default_fg));
-    init_pair(3, (short) default_fg, COLOR_CYAN);
+    init_pair(3, (NCURSES_COLOR_T) default_fg, COLOR_CYAN);
     printw("...and drawing a box which should be followed by lines\n");
-    bkgdset(ACS_HLINE | COLOR_PAIR(3));
+    bkgdset(ACS_HLINE | (chtype) COLOR_PAIR(3));
     /*
      * Characters from vt100 line-drawing should be mapped to line-drawing,
      * since A_ALTCHARSET is set in the background, and the character part
@@ -80,50 +82,50 @@ test_background(void)
     row = 7;
     mvprintw(row++, 10, "l");
     for (chr = 0; chr < 32; ++chr)
-       addch(' ');
+       AddCh(' ');
     printw("x\n");
     chr = 32;
     while (chr < 128) {
        if ((chr % 32) == 0)
            mvprintw(row++, 10, "x");
-       addch((chr == 127) ? ' ' : chr);
+       AddCh((chr == 127) ? ' ' : chr);
        if ((++chr % 32) == 0)
            printw("x\n");
     }
     mvprintw(row++, 10, "m");
     for (chr = 0; chr < 32; ++chr)
-       addch(' ');
+       AddCh(' ');
     printw("j\n");
-    getch();
+    dump_window(stdscr);
 
-    bkgdset(' ' | COLOR_PAIR(0));
+    bkgdset((chtype) (' ' | COLOR_PAIR(0)));
     printw("Default Colors\n");
-    getch();
+    dump_window(stdscr);
 
     printw("Resetting colors to pair 1\n");
-    bkgdset(' ' | COLOR_PAIR(1));
+    bkgdset((chtype) (' ' | COLOR_PAIR(1)));
     printw("This line should be red/%s\n", color_name(default_bg));
-    getch();
+    dump_window(stdscr);
 
     printw("Setting screen to pair 0\n");
-    bkgd(' ' | COLOR_PAIR(0));
-    getch();
+    bkgd((chtype) (' ' | COLOR_PAIR(0)));
+    dump_window(stdscr);
 
     printw("Setting screen to pair 1\n");
-    bkgd(' ' | COLOR_PAIR(1));
-    getch();
+    bkgd((chtype) (' ' | COLOR_PAIR(1)));
+    dump_window(stdscr);
 
     printw("Setting screen to pair 2\n");
-    bkgd(' ' | COLOR_PAIR(2));
-    getch();
+    bkgd((chtype) (' ' | COLOR_PAIR(2)));
+    dump_window(stdscr);
 
     printw("Setting screen to pair 3\n");
-    bkgd(' ' | COLOR_PAIR(3));
-    getch();
+    bkgd((chtype) (' ' | COLOR_PAIR(3)));
+    dump_window(stdscr);
 
     printw("Setting screen to pair 0\n");
-    bkgd(' ' | COLOR_PAIR(0));
-    getch();
+    bkgd((chtype) (' ' | COLOR_PAIR(0)));
+    dump_window(stdscr);
 }
 
 static void
@@ -164,7 +166,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 
     setlocale(LC_ALL, "");
 
-    while ((n = getopt(argc, argv, "ab:df:")) != -1) {
+    while ((n = getopt(argc, argv, "ab:df:l:")) != -1) {
        switch (n) {
 #if HAVE_ASSUME_DEFAULT_COLORS
        case 'a':
@@ -182,6 +184,10 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
        case 'f':
            default_fg = color_code(optarg);
            break;
+       case 'l':
+           if (!open_dump(optarg))
+               usage();
+           break;
        default:
            usage();
        }
@@ -230,6 +236,6 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
        getch();
     }
     endwin();
-
+    close_dump();
     ExitProgram(EXIT_SUCCESS);
 }