From ilya Tue Feb 24 00:46:27 1998 Subject: SIGWINCH To: emx@iaehv.nl (EMX Mailing list) Date: Tue, 24 Feb 1998 00:46:27 -0500 (EST) X-Mailer: ELM [version 2.5 PL0b1] Content-Length: 6159 Status: O I think the following patch should implement SIGWINCH in EMX. (Note that it will not be autogenerated in any way, it is the task of applications to exchange it.) Enjoy, Ilya --- emx/include/sys/signal.h Fri May 31 20:28:24 1996 +++ emx/include/sys/signal.h.new Mon Feb 23 22:43:34 1998 @@ -28,6 +28,7 @@ typedef int sig_atomic_t; #define SIGUSR2 17 /* User-defined signal #2 */ #define SIGCHLD 18 /* Death of a child process */ #define SIGBREAK 21 /* Break (Ctrl-Break) */ +#define SIGWINCH 22 /* Window size changed */ #define SIGPTRACENOTIFY 128 /* Notification from ptrace() */ @@ -43,7 +44,7 @@ int raise (int); #if !defined (__STRICT_ANSI__) -#define NSIG 22 +#define NSIG 23 #define SA_NOCLDSTOP 0x0001 --- emx/src/os2/signal.c Fri Aug 23 03:03:24 1996 +++ emx/src/os2/signal.c.new Mon Feb 23 22:42:28 1998 @@ -102,7 +102,7 @@ char const signal_valid[NSIG] = { FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, /* 0..9 */ TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, /* 10..19 */ - FALSE, TRUE /* 20..21 */ + FALSE, TRUE, TRUE /* 20..22 */ }; /* This array contains constant information about the signals: The @@ -132,7 +132,8 @@ static struct signal_descr const signal_ {"SIGCLD", ST_IGNORE, ST_IGNORE, 0}, {"SIG19", ST_TERM, ST_TERM, 0}, {"SIG20", ST_TERM, ST_TERM, 0}, - {"SIGBREAK", ST_TERM, ST_IGNORE, 0} + {"SIGBREAK", ST_TERM, ST_IGNORE, 0}, + {"SIGWINCH", ST_IGNORE, ST_IGNORE, 0} }; --- emx/src/dos/signal.asm Mon Feb 12 16:10:14 1996 +++ emx/src/dos/signal.asm.new Mon Feb 23 23:00:08 1998 @@ -112,6 +112,7 @@ $SIGUSR1 BYTE "SIGUSR1", 0 $SIGUSR2 BYTE "SIGUSR2", 0 $SIGCLD BYTE "SIGCLD", 0 $SIGBREAK BYTE "SIGBREAK", 0 +$SIGWINCH BYTE "SIGWINCH", 0 TALIGN 2 SIG_NAMES WORD $SIG_UNKNOWN, $SIGHUP, $SIGINT, $SIGQUIT ; 0..3 @@ -120,6 +121,7 @@ SIG_NAMES WORD $SIG_UNKNOWN, $S WORD $SIGSYS, $SIGPIPE, $SIGALRM, $SIGTERM ; 12..15 WORD $SIGUSR1, $SIGUSR2, $SIGCLD ; 16..18 WORD $SIG_UNKNOWN, $SIG_UNKNOWN, $SIGBREAK ; 19..21 + WORD $SIGWINCH ; 22 ; ; Valid signal numbers have a non-FALSE entry in this table. @@ -129,7 +131,7 @@ SIG_VALID BYTE FALSE, NOT F BYTE NOT FALSE, NOT FALSE, NOT FALSE, NOT FALSE ; 8..11 BYTE NOT FALSE, NOT FALSE, NOT FALSE, NOT FALSE ; 12..15 BYTE NOT FALSE, NOT FALSE, NOT FALSE, FALSE ; 16..19 - BYTE FALSE, NOT FALSE ; 20..21 + BYTE FALSE, NOT FALSE, FALSE ; 20..22 ; ; If SIG_CORE[signo] is FALSE, no core dump file will be written for @@ -141,7 +143,7 @@ SIG_CORE BYTE FALSE, FALSE BYTE NOT FALSE, FALSE, NOT FALSE, NOT FALSE ; 8..11 BYTE NOT FALSE, FALSE, FALSE, FALSE ; 12..15 BYTE FALSE, FALSE, FALSE, FALSE ; 16..19 - BYTE FALSE, FALSE ; 20..21 + BYTE FALSE, FALSE, FALSE ; 20..22 ; ; If SIG_DFL_ACTION[signo] is FALSE, the program will be terminated @@ -153,7 +155,7 @@ SIG_DFL_ACTION BYTE FALSE, FALSE BYTE FALSE, FALSE, FALSE, FALSE ; 8..11 BYTE FALSE, FALSE, FALSE, FALSE ; 12..15 BYTE NOT FALSE, NOT FALSE, NOT FALSE, FALSE ; 16..19 - BYTE FALSE, FALSE ; 20..21 + BYTE FALSE, FALSE, NOT FALSE ; 20..22 ; ; If SIG_IGN_ACTION[signo] is FALSE, the program will be terminated @@ -165,7 +167,7 @@ SIG_IGN_ACTION BYTE FALSE, NOT F BYTE FALSE, FALSE, FALSE, FALSE ; 8..11 BYTE FALSE, NOT FALSE, NOT FALSE, FALSE ; 12..15 BYTE NOT FALSE, NOT FALSE, NOT FALSE, FALSE ; 16..19 - BYTE FALSE, NOT FALSE, ; 20..21 + BYTE FALSE, NOT FALSE, NOT FALSE, ; 20..22 ; ; If SIG_FUN_ACTION[signo] is FALSE, the program will be terminated --- emx/src/dos/signal.inc Mon Sep 25 17:40:02 1995 +++ emx/src/dos/signal.inc.new Mon Feb 23 22:53:42 1998 @@ -45,8 +45,9 @@ SIGUSR1 = 16 SIGUSR2 = 17 ; User-defined signal #2 SIGCLD = 18 ; Death of a child process SIGBREAK = 21 ; Break (Ctrl-Break) +SIGWINCH = 22 ; Window size changed -SIGNALS = 22 ; Signals 0..21 +SIGNALS = 23 ; Signals 0..22 ; ; Cf. /emx/include/signal.h --- emx/src/doc/emxlib.src Fri Feb 13 00:48:36 1998 +++ emx/src/doc/emxlib.src.new Mon Feb 23 23:05:22 1998 @@ -99,7 +99,7 @@ emxlib.doc emx 0.9c C LIBRARY format tty SIG_DFL SIG_IGN SIG_ERR SIG_ACK SIGABRT SIGALRM SIGBREAK SIGFPE format tty SIGILL SIGINT SIGPIPE SIGSEGV SIGCHLD SIGCLD SIGKILL SIGTERM format tty SIGQUIT SIGTRAP SIGEMT SIGBUS SIGSYS SIGUSR1 SIGUSR2 SIGHUP -format tty SIGPTRACENOTIFY +format tty SIGWINCH SIGPTRACENOTIFY format tty SA_NOCLDSTOP SA_SYSV SA_ACK SIG_BLOCK SIG_UNBLOCK SIG_SETMASK format tty TCGETA TCSETA TCSETAF TCSETAW TCFLSH TCSBRK TCXONC format tty FIONREAD FGETHTYPE @@ -2157,6 +2157,7 @@ SIGUSR2 ignore POSIX.1 User-d SIGCHLD ignore POSIX.1 Death of a child process SIGCLD ignore SysV Synonym for SIGCHLD SIGBREAK terminate Break (Ctrl-Break) +SIGWINCH ignore Window size changed endexample The SIG_DFL column gives the default action for the signals, that --- emx/src/os2/emxdll.h~ Wed Feb 18 23:57:32 1998 +++ emx/src/os2/emxdll.h Thu Feb 26 22:27:26 1998 @@ -91,7 +91,7 @@ files for emx.dll. */ #define DEBUG_NOINHSIG 256 /* Don't inherit signal actions */ #define DEBUG_NOFDZERO 512 /* Don't fix select()'s missing FD_ZERO bug */ -#define NSIG 22 +#define NSIG 23 #define FIND_COUNT 4