]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tty/tty_update.c
ncurses 6.0 - patch 20170701
[ncurses.git] / ncurses / tty / tty_update.c
index 4e43e2b016843ce0422ccba50c057a540153967b..482d66daab7669038431fa52ff34ac467046966e 100644 (file)
@@ -84,7 +84,7 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: tty_update.c,v 1.287 2017/02/28 22:13:45 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.289 2017/06/30 11:47:01 tom Exp $")
 
 /*
  * This define controls the line-breakout optimization.  Every once in a
@@ -769,9 +769,12 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
 
     T((T_CALLED("_nc_tinfo:doupdate(%p)"), (void *) SP_PARM));
 
-    if (SP_PARM == 0)
-       returnCode(ERR);
+    _nc_lock_global(update);
 
+    if (SP_PARM == 0) {
+       _nc_unlock_global(update);
+       returnCode(ERR);
+    }
 #if !USE_REENTRANT
     /*
      * It is "legal" but unlikely that an application could assign a new
@@ -792,9 +795,10 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
 
     if (CurScreen(SP_PARM) == 0
        || NewScreen(SP_PARM) == 0
-       || StdScreen(SP_PARM) == 0)
+       || StdScreen(SP_PARM) == 0) {
+       _nc_unlock_global(update);
        returnCode(ERR);
-
+    }
 #ifdef TRACE
     if (USE_TRACEF(TRACE_UPDATE)) {
        if (CurScreen(SP_PARM)->_clear)
@@ -1102,6 +1106,7 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
 
     _nc_signal_handler(TRUE);
 
+    _nc_unlock_global(update);
     returnCode(OK);
 }
 
@@ -2180,11 +2185,11 @@ NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_DCL0)
        SP_PARM->_color_defs = -(SP_PARM->_color_defs);
        for (n = 0; n < SP_PARM->_color_defs; ++n) {
            if (SP_PARM->_color_table[n].init) {
-               NCURSES_SP_NAME(init_color) (NCURSES_SP_ARGx
-                                            (short) n,
-                                            SP_PARM->_color_table[n].r,
-                                            SP_PARM->_color_table[n].g,
-                                            SP_PARM->_color_table[n].b);
+               _nc_init_color(SP_PARM,
+                              n,
+                              SP_PARM->_color_table[n].r,
+                              SP_PARM->_color_table[n].g,
+                              SP_PARM->_color_table[n].b);
            }
        }
     }