]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/ncurses.c
ncurses 6.3 - patch 20221224
[ncurses.git] / test / ncurses.c
index 966c76afa3b5ab81bd3a82fba833eee13c497513..afa631ad5a3943ce008a554182c4e4d7679abe32 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey                                *
+ * Copyright 2018-2021,2022 Thomas E. Dickey                                *
  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -41,7 +41,7 @@ AUTHOR
    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
            Thomas E. Dickey (beginning revision 1.27 in 1996).
 
-$Id: ncurses.c,v 1.525 2021/05/08 19:44:31 tom Exp $
+$Id: ncurses.c,v 1.532 2022/12/04 00:40:11 tom Exp $
 
 ***************************************************************************/
 
@@ -855,7 +855,7 @@ wgetch_test(unsigned level, WINDOW *win, int delay)
            setup_getch(win, flags);
            wgetch_help(win, flags);
        } else if (c == 'g') {
-           waddstr(win, "getstr test: ");
+           waddstr(win, "wgetnstr test: ");
            echo();
            c = wgetnstr(win, buf, sizeof(buf) - 1);
            noecho();
@@ -1113,7 +1113,7 @@ wget_wch_test(unsigned level, WINDOW *win, int delay)
            setup_getch(win, flags);
            wgetch_help(win, flags);
        } else if (c == 'g') {
-           waddstr(win, "getstr test: ");
+           waddstr(win, "wgetn_str test: ");
            echo();
            code = wgetn_wstr(win, wint_buf, BUFSIZ - 1);
            noecho();
@@ -2885,6 +2885,10 @@ init_all_colors(bool xterm_colors, char *palette_file)
            while (fgets(buffer, sizeof(buffer), fp) != 0) {
                if (sscanf(buffer, "scale:%d", &c) == 1) {
                    scale = c;
+                   if (scale < 100)
+                       scale = 100;
+                   if (scale > 1000)
+                       scale = 1000;
                } else if (sscanf(buffer, "%d:%d %d %d",
                                  &c,
                                  &red,
@@ -4413,7 +4417,7 @@ x_acs_test(bool recur GCC_UNUSED)
            if (pending_code) {
                _nc_SPRINTF(at_page, _nc_SLIMIT(sizeof(at_page)) "%02x", digit);
            } else if (at_page[0] != '\0') {
-               _nc_SPRINTF(at_page, _nc_SLIMIT(sizeof(at_page)) "%x", digit);
+               sscanf(at_page, "%x", &digit);
            }
            break;
        default:
@@ -7236,11 +7240,11 @@ overlap_test(bool recur GCC_UNUSED)
            overlap_test_0(win2, win1);
            break;
 
-       case 'c':               /* fill window A so it's visible */
+       case 'c':               /* fill window A so it is visible */
            overlap_test_1(flavor[otBASE_fill], 0, win1, 'A');
            break;
 
-       case 'd':               /* fill window B so it's visible */
+       case 'd':               /* fill window B so it is visible */
            overlap_test_1(flavor[otBASE_fill], 1, win2, 'B');
            break;
 
@@ -7436,11 +7440,11 @@ x_overlap_test(bool recur GCC_UNUSED)
            overlap_test_0(win2, win1);
            break;
 
-       case 'c':               /* fill window A so it's visible */
+       case 'c':               /* fill window A so it is visible */
            x_overlap_test_1(flavor[otBASE_fill], 0, win1, WIDE_A);
            break;
 
-       case 'd':               /* fill window B so it's visible */
+       case 'd':               /* fill window B so it is visible */
            x_overlap_test_1(flavor[otBASE_fill], 1, win2, WIDE_B);
            break;
 
@@ -7635,48 +7639,49 @@ settings_test(bool recur GCC_UNUSED)
  ****************************************************************************/
 
 static void
-usage(void)
+usage(int ok)
 {
     static const char *const tbl[] =
     {
        "Usage: ncurses [options]"
        ,""
+       ,USAGE_COMMON
        ,"Options:"
 #ifdef NCURSES_VERSION
-       ,"  -a f,b   set default-colors (assumed white-on-black)"
-       ,"  -d       use default-colors if terminal supports them"
+       ," -a f,b   set default-colors (assumed white-on-black)"
+       ," -d       use default-colors if terminal supports them"
 #endif
 #if HAVE_USE_ENV
-       ,"  -E       call use_env(FALSE) to ignore $LINES and $COLUMNS"
+       ," -E       call use_env(FALSE) to ignore $LINES and $COLUMNS"
 #endif
 #if USE_SOFTKEYS
-       ,"  -e fmt   specify format for soft-keys test (e)"
+       ," -e fmt   specify format for soft-keys test (e)"
 #endif
 #if HAVE_RIPOFFLINE
-       ,"  -f       rip-off footer line (can repeat)"
-       ,"  -h       rip-off header line (can repeat)"
+       ," -F       rip-off footer line (can repeat)"
+       ," -H       rip-off header line (can repeat)"
 #endif
-       ,"  -m       do not use colors"
+       ," -m       do not use colors"
 #if HAVE_COLOR_CONTENT
-       ,"  -p file  rgb values to use in 'd' rather than ncurses's builtin"
+       ," -p file  rgb values to use in 'd' rather than ncurses's builtin"
 #endif
 #if USE_LIBPANEL
-       ,"  -s msec  specify nominal time for panel-demo (default: 1, to hold)"
+       ," -s msec  specify nominal time for panel-demo (default: 1, to hold)"
 #endif
 #if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20120714) && !defined(_NC_WINDOWS)
-       ,"  -T       call use_tioctl(TRUE) to allow SIGWINCH to override environment"
+       ," -T       call use_tioctl(TRUE) to allow SIGWINCH to override environment"
 #endif
 #ifdef TRACE
-       ,"  -t mask  specify default trace-level (may toggle with ^T)"
+       ," -t mask  specify default trace-level (may toggle with ^T)"
 #endif
 #if HAVE_COLOR_CONTENT
-       ,"  -x       use xterm-compatible control for reading color palette"
+       ," -x       use xterm-compatible control for reading color palette"
 #endif
     };
     size_t n;
     for (n = 0; n < SIZEOF(tbl); n++)
        fprintf(stderr, "%s\n", tbl[n]);
-    ExitProgram(EXIT_FAILURE);
+    ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
 }
 
 static void
@@ -7855,7 +7860,7 @@ main_menu(bool top)
 
        if (doit != NULL && doit(FALSE) == OK) {
            /*
-            * This may be overkill; it's intended to reset everything back
+            * This may be overkill; it is intended to reset everything back
             * to the initial terminal modes so that tests don't get in
             * each other's way.
             */
@@ -7883,11 +7888,14 @@ main_menu(bool top)
 /*+-------------------------------------------------------------------------
        main(argc,argv)
 --------------------------------------------------------------------------*/
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
 
 int
 main(int argc, char *argv[])
 {
-    int c;
+    int ch;
     int my_e_param = 1;
 #ifdef NCURSES_VERSION_PATCH
 #if HAVE_USE_DEFAULT_COLORS
@@ -7907,8 +7915,8 @@ main(int argc, char *argv[])
 
     setlocale(LC_ALL, "");
 
-    while ((c = getopt(argc, argv, "a:dEe:fhmp:s:Tt:x")) != -1) {
-       switch (c) {
+    while ((ch = getopt(argc, argv, OPTS_COMMON "a:dEe:FHmp:s:Tt:x")) != -1) {
+       switch (ch) {
 #ifdef NCURSES_VERSION_PATCH
 #if HAVE_USE_DEFAULT_COLORS
 #if HAVE_ASSUME_DEFAULT_COLORS
@@ -7938,17 +7946,17 @@ main(int argc, char *argv[])
            my_e_param = atoi(optarg);
 #ifdef NCURSES_VERSION
            if (my_e_param > 3) /* allow extended layouts */
-               usage();
+               usage(FALSE);
 #else
            if (my_e_param > 1)
-               usage();
+               usage(FALSE);
 #endif
            break;
 #if HAVE_RIPOFFLINE
-       case 'f':
+       case 'F':
            ripoffline(-1, rip_footer);
            break;
-       case 'h':
+       case 'H':
            ripoffline(1, rip_header);
            break;
 #endif /* HAVE_RIPOFFLINE */
@@ -7980,8 +7988,12 @@ main(int argc, char *argv[])
            xterm_colors = TRUE;
            break;
 #endif
+       case OPTS_VERSION:
+           show_version(argv);
+           ExitProgram(EXIT_SUCCESS);
        default:
-           usage();
+           usage(ch == OPTS_USAGE);
+           /* NOTREACHED */
        }
     }