]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tty/tty_update.c
ncurses 6.1 - patch 20180203
[ncurses.git] / ncurses / tty / tty_update.c
index 14fdd7bd1233893e62eeac2d1e71add2a9b163ea..b5151b94ed2763de2b548c3e410574f031dde3e4 100644 (file)
@@ -84,7 +84,7 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: tty_update.c,v 1.294 2017/07/31 21:06:04 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.297 2017/09/02 21:45:44 Jeb.Rosen Exp $")
 
 /*
  * This define controls the line-breakout optimization.  Every once in a
@@ -668,7 +668,9 @@ EmitRange(NCURSES_SP_DCLx const NCURSES_CH_T * ntext, int num)
                }
            } else if (repeat_char != 0 &&
 #if USE_WIDEC_SUPPORT
-                      (CharOf(ntext0) < ACS_LEN) &&
+                      (!SP_PARM->_screen_unicode &&
+                       ((AttrOf(ntext0) & A_ALTCHARSET) == 0 ||
+                        (CharOf(ntext0) < ACS_LEN))) &&
 #endif
                       runcount > SP_PARM->_rep_cost) {
                NCURSES_CH_T temp;
@@ -682,10 +684,11 @@ EmitRange(NCURSES_SP_DCLx const NCURSES_CH_T * ntext, int num)
                UpdateAttrs(SP_PARM, ntext0);
                temp = ntext0;
                if ((AttrOf(temp) & A_ALTCHARSET) &&
-                   SP_PARM->_acs_map != 0) {
+                   SP_PARM->_acs_map != 0 &&
+                   (SP_PARM->_acs_map[CharOf(temp)] & A_CHARTEXT) != 0) {
                    SetChar(temp,
-                           SP_PARM->_acs_map[CharOf(temp)],
-                           AttrOf(temp) | A_ALTCHARSET);
+                           (SP_PARM->_acs_map[CharOf(ntext0)] & A_CHARTEXT),
+                           AttrOf(ntext0) | A_ALTCHARSET);
                }
                NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
                                        TPARM_2(repeat_char,
@@ -828,7 +831,7 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
        SP_PARM->_fifohold--;
 
 #if USE_SIZECHANGE
-    if ((SP_PARM->_endwin == ewRunning)
+    if ((SP_PARM->_endwin == ewSuspend)
        || _nc_handle_sigwinch(SP_PARM)) {
        /*
         * This is a transparent extension:  XSI does not address it,