diff -ur links-2.1pre33.orig/os_dep.c links-2.1pre33/os_dep.c --- links-2.1pre33.orig/os_dep.c 2007-12-28 09:40:31.000000000 +0300 +++ links-2.1pre33/os_dep.c 2008-04-24 23:41:27.000000000 +0400 @@ -176,7 +176,9 @@ void handle_terminal_resize(int fd, void (*fn)(void)) { +#ifdef SIGWINCH install_signal_handler(SIGWINCH, sigwinch, fn, 0); +#endif #ifdef WIN32 win32_resize_poll(); #endif @@ -184,7 +186,9 @@ void unhandle_terminal_resize(int fd) { +#ifdef SIGWINCH install_signal_handler(SIGWINCH, NULL, NULL, 0); +#endif } int get_terminal_size(int fd, int *x, int *y) diff -ur links-2.1pre33.orig/select.c links-2.1pre33/select.c --- links-2.1pre33.orig/select.c 2007-12-11 21:45:38.000000000 +0300 +++ links-2.1pre33/select.c 2008-04-24 23:10:58.000000000 +0400 @@ -246,7 +246,7 @@ } } -#define NUM_SIGNALS 32 +#define NUM_SIGNALS 512 struct signal_handler { void (*fn)(void *); @@ -341,16 +341,20 @@ void sigchld(void *p) { +#ifdef SIGCHLD #ifndef WNOHANG wait(NULL); #else while (waitpid(-1, NULL, WNOHANG) > 0) ; #endif +#endif } void set_sigcld(void) { +#ifdef SIGCHLD install_signal_handler(SIGCHLD, sigchld, NULL, 1); +#endif } int terminate_loop = 0;