Relevant part of the patch (in ncurses-6.0-20170722/ncurses/tty/tty_update.c):
@@ -816,7 +816,8 @@
SP_PARM->_fifohold--;
#if USE_SIZECHANGE
- if (SP_PARM->_endwin || _nc_handle_sigwinch(SP_PARM)) {
+ if ((SP_PARM->_endwin == ewRunning)
+ || _nc_handle_sigwinch(SP_PARM)) {
/*
* This is a transparent extension: XSI does not address it,
* and applications need not know that ncurses can do it.
_endwin was being compared to TRUE, which now corresponds to ewSuspend, but is now compared to ewRunning (approximately the old FALSE).
Adding a sed line to the PKGBUILD seems to work around it for now and restore the old behavior:
prepare() {
cd $pkgname-${_pkgver}
sed -i 's/== ewRunning/== ewSuspend/' ncurses/tty/tty_update.c
}
I will send this on to the ncurses mailing list to get some clarification.
]]>CTRL+L redraws everything, fixing it, but I also notice that resizing it back to halfscreen doesn't break it and in fact fixes it.
]]>I bisected the ncurses releases and tracked it down to the 20170722 changeset, which included changes to endwin. Only weechat seems to have any weird behavior, which makes me think there is some specific unusual way weechat is using ncurses. At this point I'm really not sure yet where to report bugs and need to investigate it further, but I would appreciate any help figuring this out in the meantime.
]]>