From: Chet Ramey Date: Mon, 29 Jan 2018 21:04:20 +0000 (-0500) Subject: Bash-4.4 patch 16 X-Git-Tag: bash-5.0-alpha~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c9f1b04651dae16e33f0aa8974c5122e26b362ae;p=thirdparty%2Fbash.git Bash-4.4 patch 16 --- diff --git a/lib/sh/zread.c b/lib/sh/zread.c index 868f97052..496f20b87 100644 --- a/lib/sh/zread.c +++ b/lib/sh/zread.c @@ -37,7 +37,10 @@ extern int errno; # define SEEK_CUR 1 #endif +extern int executing_builtin; + extern void check_signals_and_traps (void); +extern void check_signals (void); extern int signal_is_trapped (int); /* Read LEN bytes from FD into BUF. Retry the read on EINTR. Any other @@ -50,21 +53,13 @@ zread (fd, buf, len) { ssize_t r; -#if 0 -#if defined (HAVE_SIGINTERRUPT) - if (signal_is_trapped (SIGCHLD)) - siginterrupt (SIGCHLD, 1); -#endif -#endif - while ((r = read (fd, buf, len)) < 0 && errno == EINTR) - check_signals_and_traps (); /* XXX - should it be check_signals()? */ - -#if 0 -#if defined (HAVE_SIGINTERRUPT) - siginterrupt (SIGCHLD, 0); -#endif -#endif + /* XXX - bash-5.0 */ + /* We check executing_builtin and run traps here for backwards compatibility */ + if (executing_builtin) + check_signals_and_traps (); /* XXX - should it be check_signals()? */ + else + check_signals (); return r; } diff --git a/patchlevel.h b/patchlevel.h index 6e9ed3fc8..9074f4ddf 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 15 +#define PATCHLEVEL 16 #endif /* _PATCHLEVEL_H_ */