From ca4981285f6aa4883c44f0ac857aaca686241669 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Mon, 26 Jan 2004 23:39:08 +0000 Subject: [PATCH] Define synch_process_termsig. (Fcall_process): Initiate synch_process_termsig to zero and check if non-zero and get signal name after subprocess has ended. --- src/callproc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/callproc.c b/src/callproc.c index 00068a908fb..73d81d81b18 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -123,6 +123,9 @@ int synch_process_alive; /* Nonzero => this is a string explaining death of synchronous subprocess. */ char *synch_process_death; +/* Nonzero => this is the signal number that terminated the subprocess. */ +int synch_process_termsig; + /* If synch_process_death is zero, this is exit code of synchronous subprocess. */ int synch_process_retcode; @@ -506,6 +509,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) to avoid timing error if process terminates soon. */ synch_process_death = 0; synch_process_retcode = 0; + synch_process_termsig = 0; if (NILP (error_file)) fd_error = emacs_open (NULL_DEVICE, O_WRONLY, 0); @@ -977,6 +981,19 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) unbind_to (count, Qnil); + if (synch_process_termsig) + { + char *signame; + + synchronize_system_messages_locale (); + signame = strsignal (synch_process_termsig); + + if (signame == 0) + signame = "unknown"; + + synch_process_death = signame; + } + if (synch_process_death) return code_convert_string_norecord (build_string (synch_process_death), Vlocale_coding_system, 0); -- 2.39.2