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#