X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftty%2Ftty_update.c;h=b5151b94ed2763de2b548c3e410574f031dde3e4;hp=14fdd7bd1233893e62eeac2d1e71add2a9b163ea;hb=9da7d09296c1b625afd18567a6828d8e7ec2ee01;hpb=a20e6eb464be80b9cd8cae7ce925d27fe9c209ed diff --git a/ncurses/tty/tty_update.c b/ncurses/tty/tty_update.c index 14fdd7bd..b5151b94 100644 --- a/ncurses/tty/tty_update.c +++ b/ncurses/tty/tty_update.c @@ -84,7 +84,7 @@ #include -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,