diff options
author | eivind <eivind@FreeBSD.org> | 1997-10-08 14:47:56 +0000 |
---|---|---|
committer | eivind <eivind@FreeBSD.org> | 1997-10-08 14:47:56 +0000 |
commit | 462d6dd113dfcd502c173210fb282f8fd42e6276 (patch) | |
tree | 500a821c05cf1f5111c6807573b2aa67fda80c63 /bin/ed | |
parent | b197c558d0c3e8c5cd7b1b4c9c8d79a8f6e654fd (diff) | |
download | FreeBSD-src-462d6dd113dfcd502c173210fb282f8fd42e6276.zip FreeBSD-src-462d6dd113dfcd502c173210fb282f8fd42e6276.tar.gz |
make signal handlers errno safe
Obtained from: OpenBSD (file rev 1.11) - Theo de Raadt <deraadt@openbsd.org>
Diffstat (limited to 'bin/ed')
-rw-r--r-- | bin/ed/main.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/bin/ed/main.c b/bin/ed/main.c index abeff54..b9fca59 100644 --- a/bin/ed/main.c +++ b/bin/ed/main.c @@ -37,7 +37,7 @@ static char * const copyright = static char * const rcsid = "@(#)main.c,v 1.1 1994/02/01 00:34:42 alm Exp"; #else static char * const rcsid = - "$Id: main.c,v 1.10 1997/03/28 15:24:19 imp Exp $"; + "$Id: main.c,v 1.11 1997/08/07 21:33:43 steve Exp $"; #endif #endif /* not lint */ @@ -1358,7 +1358,8 @@ signal_hup(signo) { if (mutex) sigflags |= (1 << (signo - 1)); - else handle_hup(signo); + else + handle_hup(signo); } @@ -1368,7 +1369,8 @@ signal_int(signo) { if (mutex) sigflags |= (1 << (signo - 1)); - else handle_int(signo); + else + handle_int(signo); } @@ -1418,6 +1420,8 @@ void handle_winch(signo) int signo; { + int save_errno = errno; + struct winsize ws; /* window size structure */ sigflags &= ~(1 << (signo - 1)); @@ -1425,6 +1429,7 @@ handle_winch(signo) if (ws.ws_row > 2) rows = ws.ws_row - 2; if (ws.ws_col > 8) cols = ws.ws_col - 8; } + errno = save_errno; } |