]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/dots_mvcur.c
ncurses 6.0 - patch 20170930
[ncurses.git] / test / dots_mvcur.c
index 752422727d1a57c1e35fa56891ed21399972fbd1..ed9de8c289e4e20c2115d491f37cbe374db3ef88 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2007-2009,2013 Free Software Foundation, Inc.              *
+ * Copyright (c) 2007-2013,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            *
@@ -29,7 +29,7 @@
 /*
  * Author: Thomas E. Dickey - 2007
  *
- * $Id: dots_mvcur.c,v 1.8 2013/05/25 22:58:22 tom Exp $
+ * $Id: dots_mvcur.c,v 1.13 2017/09/30 21:34:15 tom Exp $
  *
  * A simple demo of the terminfo interface, and mvcur.
  */
@@ -53,7 +53,7 @@ TPUTS_PROTO(outc, c)
 
     if (interrupted) {
        char tmp = (char) c;
-       if (write(STDOUT_FILENO, &tmp, 1) == -1)
+       if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1)
            rc = EOF;
     } else {
        if (putc(c, stdout) == EOF)
@@ -63,7 +63,7 @@ TPUTS_PROTO(outc, c)
 }
 
 static bool
-outs(char *s)
+outs(const char *s)
 {
     if (valid(s)) {
        tputs(s, 1, outc);
@@ -108,19 +108,27 @@ main(int argc GCC_UNUSED,
     double r;
     double c;
     SCREEN *sp;
+    int my_colors;
 
-    CATCHALL(onsig);
+    InitAndCatch((sp = newterm((char *) 0, stdout, stdin)), onsig);
+    refresh();                 /* needed with Solaris curses to cancel endwin */
+
+    if (sp == 0) {
+       fprintf(stderr, "Cannot initialize terminal\n");
+       ExitProgram(EXIT_FAILURE);
+    }
 
     srand((unsigned) time(0));
-    sp = newterm((char *) 0, stdout, stdin);
+
     outs(clear_screen);
     outs(cursor_home);
     outs(cursor_invisible);
-    if (max_colors > 1) {
+    my_colors = max_colors;
+    if (my_colors > 1) {
        if (!valid(set_a_foreground)
            || !valid(set_a_background)
            || (!valid(orig_colors) && !valid(orig_pair)))
-           max_colors = -1;
+           my_colors = -1;
     }
 
     r = (double) (lines - 4);
@@ -137,8 +145,8 @@ main(int argc GCC_UNUSED,
            y0 = y;
        }
 
-       if (max_colors > 0) {
-           z = (int) (ranf() * max_colors);
+       if (my_colors > 0) {
+           z = (int) (ranf() * my_colors);
            if (ranf() > 0.01) {
                tputs(tparm2(set_a_foreground, z), 1, outc);
            } else {