Hi

You need to explicitly configure upstream ncurses with --enable-sigwinch
so many other platforms do not enable it either. They must also have
been affected when ncurses made USE_SIZECHANGE depend on it. We have
never had USE_SIGWINCH on.


On Fri, Apr 22, 2011 at 08:24:34PM +0100, Mikolaj Kucharski wrote:
> Hi,
> 
> I was troubleshooting issue with window resize in net/ekg. In the past
> it was working properly, but stopped. I figured out that breakage
> happened between OpenBSD 4.6 and 4.7, when ncurses was updated.
> 
> I've recompiled ncurses with -DTRACE and and used it with very simple
> program to test (see screensize.c under url mentioned below).
> 
> Comparing tracing of above code from OpenBSD 4.6 and OpenBSD 4.9
> (-current) show that in the latest code function _nc_update_screensize()
> is not executed in doupdate() (lib/libcurses/tty/tty_update.c). It is
> executed however in OpenBSD 4.6. Reason is that USE_SIZECHANGE is
> defined as 0 (zero) bacause of following code (curses.priv.h from 4.9):
> 
> 
> #if HAVE_SIZECHANGE && USE_SIGWINCH && defined(SIGWINCH)
> #define USE_SIZECHANGE 1
> #else
> #define USE_SIZECHANGE 0
> #undef USE_SIGWINCH
> #define USE_SIGWINCH 0
> #endif
> 
> 
> HAVE_SIZECHANGE is defined to 1 in OpenBSD 4.6 and 4.9, but USE_SIGWINCH
> is not defined to 1. In OpenBSD 4.6 only HAVE_SIZECHANGE was checked to
> set USE_SIZECHANGE to 1 (curses.priv.h from 4.6):
> 
> 
> #if HAVE_SIZECHANGE
> #define USE_SIZECHANGE 1
> #else
> #undef USE_SIGWINCH
> #endif
> 
> 
> Is there any reason why USE_SIGWINCH is not defined to 1 in current
> OpenBSD (in ncurses_cfg.h)?
> 
> 
> You can find my debugging files under following location:
> 
>  http://www1.kucharski.name/pub/ekg/
> 
> - screensize.c -- code to test the issue
> 
> - patches for libcurses which enable tracing and adds some additional
> logging
> 
> - trace logs, so you can compare how ncurses on OpenBSD 4.6, unpatched
> 4.9 and with USE_SIGWINCH defined to 1 on 4.9 behave
> 
> 
> 
> -- 
> best regards
> q#

Reply via email to