ncurses 6.1 - patch 20191123
[ncurses.git] / test / gdc.c
index c70efba8c1cb4ca6bf445510e293c8b89247f82c..c2ef5b11522bf5c252b57e715dd91737f4a93959 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2017,2019 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            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,7 +33,7 @@
  * modified 10-18-89 for curses (jrl)
  * 10-18-89 added signal handling
  *
  * modified 10-18-89 for curses (jrl)
  * 10-18-89 added signal handling
  *
- * $Id: gdc.c,v 1.50 2017/09/09 20:23:09 tom Exp $
+ * $Id: gdc.c,v 1.52 2019/08/24 23:11:01 tom Exp $
  */
 
 #include <test.priv.h>
  */
 
 #include <test.priv.h>
@@ -86,7 +86,6 @@ static void
 drawbox(bool scrolling)
 {
     chtype bottom[XLENGTH + 1];
 drawbox(bool scrolling)
 {
     chtype bottom[XLENGTH + 1];
-    int n;
 
     if (hascolor)
        (void) attrset(AttrArg(COLOR_PAIR(PAIR_FRAMES), 0));
 
     if (hascolor)
        (void) attrset(AttrArg(COLOR_PAIR(PAIR_FRAMES), 0));
@@ -97,6 +96,7 @@ drawbox(bool scrolling)
 
     MvAddCh(YBASE + YDEPTH, XBASE - 1, ACS_LLCORNER);
     if ((mvinchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH)) != ERR) {
 
     MvAddCh(YBASE + YDEPTH, XBASE - 1, ACS_LLCORNER);
     if ((mvinchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH)) != ERR) {
+       int n;
        for (n = 0; n < XLENGTH; n++) {
            if (!scrolling)
                bottom[n] &= ~A_COLOR;
        for (n = 0; n < XLENGTH; n++) {
            if (!scrolling)
                bottom[n] &= ~A_COLOR;
@@ -227,8 +227,6 @@ main(int argc, char *argv[])
 
     setlocale(LC_ALL, "");
 
 
     setlocale(LC_ALL, "");
 
-    CATCHALL(sighndl);
-
     while ((k = getopt(argc, argv, "dnst:")) != -1) {
        switch (k) {
 #if HAVE_USE_DEFAULT_COLORS
     while ((k = getopt(argc, argv, "dnst:")) != -1) {
        switch (k) {
 #if HAVE_USE_DEFAULT_COLORS
@@ -253,21 +251,24 @@ main(int argc, char *argv[])
     if (optind < argc) {
        count = atoi(argv[optind++]);
        assert(count >= 0);
     if (optind < argc) {
        count = atoi(argv[optind++]);
        assert(count >= 0);
+       if (optind < argc)
+           usage();
     }
     }
-    if (optind < argc)
-       usage();
 
 
-    if (redirected) {
-       char *name = getenv("TERM");
-       if (name == 0
-           || newterm(name, ofp, ifp) == 0) {
-           fprintf(stderr, "cannot open terminal\n");
-           ExitProgram(EXIT_FAILURE);
+    InitAndCatch({
+       if (redirected) {
+           char *name = getenv("TERM");
+           if (name == 0
+               || newterm(name, ofp, ifp) == 0) {
+               fprintf(stderr, "cannot open terminal\n");
+               ExitProgram(EXIT_FAILURE);
+           }
+       } else {
+           initscr();
        }
        }
-
-    } else {
-       initscr();
     }
     }
+    ,sighndl);
+
     cbreak();
     noecho();
     nodelay(stdscr, 1);
     cbreak();
     noecho();
     nodelay(stdscr, 1);