X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftty%2Ftty_update.c;h=fd35c47beb2e2bdd174f365736f70e04ab35ff46;hp=f86ee7292f78c78c7568b9a62c25a884faf6fc96;hb=7d6371e47006c8aef4ac94f52998a35b03bf89cf;hpb=a3bbc5227bb416f6446d860912e8da0aad7dbdf6 diff --git a/ncurses/tty/tty_update.c b/ncurses/tty/tty_update.c index f86ee729..fd35c47b 100644 --- a/ncurses/tty/tty_update.c +++ b/ncurses/tty/tty_update.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 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 * @@ -84,7 +84,7 @@ #include -MODULE_ID("$Id: tty_update.c,v 1.296 2017/08/27 19:40:17 tom Exp $") +MODULE_ID("$Id: tty_update.c,v 1.298 2018/05/05 19:11:55 tom Exp $") /* * This define controls the line-breakout optimization. Every once in a @@ -344,7 +344,9 @@ PutAttrChar(NCURSES_SP_DCLx CARG_CH_T ch) || is_wacs_value(CharOfD(ch)) #endif )) { + int c8; my_ch = CHDEREF(ch); /* work around const param */ + c8 = CharOf(my_ch); #if USE_WIDEC_SUPPORT /* * This is crude & ugly, but works most of the time. It checks if the @@ -368,8 +370,14 @@ PutAttrChar(NCURSES_SP_DCLx CARG_CH_T ch) chlen = 1; } #endif /* !NCURSES_WCWIDTH_GRAPHICS */ - } + } else #endif + if (!SP_PARM->_screen_acs_map[c8]) { + chtype temp = UChar(SP_PARM->_acs_map[c8]); + RemAttr(attr, A_ALTCHARSET); + SetChar(my_ch, temp, AttrOf(attr)); + } + /* * If we (still) have alternate character set, it is the normal 8bit * flavor. The _screen_acs_map[] array tells if the character was @@ -831,7 +839,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,