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