]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/dots_curses.c
ncurses 6.1 - patch 20190121
[ncurses.git] / test / dots_curses.c
index b0adfe186e9e3b92cfc92dfb27f5ba43149e85b4..215351815e03d11d1217ba95d76b326d1e6e8afe 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2014,2017 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2014-2018,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            *
 /*
  * Author: Thomas E. Dickey
  *
- * $Id: dots_curses.c,v 1.9 2017/10/22 00:44:39 tom Exp $
+ * $Id: dots_curses.c,v 1.14 2019/01/21 14:20:18 tom Exp $
  *
  * A simple demo of the curses interface used for comparison with termcap.
  */
 #include <test.priv.h>
 
-#if !defined(__MINGW32__)
+#if !defined(_WIN32)
 #include <sys/time.h>
 #endif
 
@@ -96,7 +96,9 @@ usage(void)
 #if HAVE_USE_DEFAULT_COLORS
        ," -d       invoke use_default_colors()"
 #endif
+#if HAVE_USE_ENV
        ," -e       allow environment $LINES / $COLUMNS"
+#endif
        ," -m SIZE  set margin (default: 2)"
        ," -s MSECS delay 1% of the time (default: 1 msecs)"
     };
@@ -120,20 +122,27 @@ main(int argc, char *argv[])
 #endif
     int m_option = 2;
     int s_option = 1;
+    size_t need;
+    char *my_env;
 
     while ((x = getopt(argc, argv, "T:dem:s:")) != -1) {
        switch (x) {
        case 'T':
-           putenv(strcat(strcpy(malloc(6 + strlen(optarg)), "TERM="), optarg));
+           need = 6 + strlen(optarg);
+           my_env = malloc(need);
+           _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
+           putenv(my_env);
            break;
 #if HAVE_USE_DEFAULT_COLORS
        case 'd':
            d_option = TRUE;
            break;
 #endif
+#if HAVE_USE_ENV
        case 'e':
            use_env(TRUE);
            break;
+#endif
        case 'm':
            m_option = atoi(optarg);
            break;
@@ -157,7 +166,12 @@ main(int argc, char *argv[])
 #endif
        for (fg = 0; fg < COLORS; fg++) {
            for (bg = 0; bg < COLORS; bg++) {
-               int pair = mypair(fg, bg);
+               int pair;
+               if (interrupted) {
+                   cleanup();
+                   ExitProgram(EXIT_FAILURE);
+               }
+               pair = mypair(fg, bg);
                if (pair > 0)
                    init_pair((short) pair, (short) fg, (short) bg);
            }