commit c0b15c2982428dfe763bbba7ea2ed91790ea0dd4
parent e889c28a957b1be04179ba66ef443e06c64e13f5
Author: Benno Schulenberg <bensberg@telfort.nl>
Date: Sun, 6 May 2018 16:46:41 +0200
signals: don't trap segfault/abort when envvar NANO_NOCATCH is defined
When the user wants to get a backtrace, the crash handler shouldn't
kick in.
Diffstat:
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/doc/nano.1 b/doc/nano.1
@@ -309,6 +309,10 @@ not by default distinguish modified from unmodified arrow keys.
Please report any other bugs that you encounter via:
.br
\fIhttps://savannah.gnu.org/bugs/?group=nano\fR.
+.sp
+When nano crashes, it will save any modified buffers to emergency .save files.
+If you are able to reproduce the crash and you want to get a backtrace, define
+the environment variable \fBNANO_NOCATCH\fR.
.SH HOMEPAGE
\fIhttps://nano-editor.org/\fR
diff --git a/src/nano.c b/src/nano.c
@@ -1213,6 +1213,7 @@ void signal_init(void)
}
#ifndef DEBUG
+ if (getenv("NANO_NOCATCH") == NULL) {
/* Trap SIGSEGV and SIGABRT to save any changed buffers and reset
* the terminal to a usable state. Reset these handlers to their
* defaults as soon as their signal fires. */
@@ -1220,6 +1221,7 @@ void signal_init(void)
act.sa_flags |= SA_RESETHAND;
sigaction(SIGSEGV, &act, NULL);
sigaction(SIGABRT, &act, NULL);
+ }
#endif
}