From 1efa2983a439ae1f5f282cd0c780bded4869881a Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Tue, 9 Jan 1996 23:38:34 +0000 Subject: [PATCH] (main): In batch mode, don't handle SIGHUP if was ignored. Block it while we decide what to do. --- src/emacs.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/emacs.c b/src/emacs.c index 4f0d70cbbe1..b18e3d5dc5f 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -646,6 +646,22 @@ Usage: %s [-t term] [--terminal term] [-nw] [--no-windows] [--batch]\n\ init_signals (); #endif + /* Don't catch SIGHUP if dumping. */ + if (1 +#ifndef CANNOT_DUMP + && initialized +#endif + ) + { + sigblockx (SIGHUP); + /* In --batch mode, don't catch SIGHUP if already ignored. + That makes nohup work. */ + if (! noninteractive + || signal (SIGHUP, SIG_IGN) != SIG_IGN) + signal (SIGHUP, fatal_error_signal); + sigunblockx (SIGHUP); + } + if ( #ifndef CANNOT_DUMP ! noninteractive || initialized @@ -654,10 +670,9 @@ Usage: %s [-t term] [--terminal term] [-nw] [--no-windows] [--batch]\n\ #endif ) { - /* Don't catch these signals in batch mode if not initialized. + /* Don't catch these signals in batch mode if dumping. On some machines, this sets static data that would make signal fail to work right when the dumped Emacs is run. */ - signal (SIGHUP, fatal_error_signal); signal (SIGQUIT, fatal_error_signal); signal (SIGILL, fatal_error_signal); signal (SIGTRAP, fatal_error_signal); -- 2.39.2