summaryrefslogtreecommitdiff
path: root/src/callproc.c
diff options
context:
space:
mode:
authorJan Djärv <jan.h.d@swipnet.se>2004-01-26 23:39:08 +0000
committerJan Djärv <jan.h.d@swipnet.se>2004-01-26 23:39:08 +0000
commitca4981285f6aa4883c44f0ac857aaca686241669 (patch)
tree89c6a66b43cdb44702d2f26dcbd2dc375e98955a /src/callproc.c
parent6497a8f888d17ff230428fa802a6b5685c542280 (diff)
downloademacs-ca4981285f6aa4883c44f0ac857aaca686241669.tar.gz
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.
Diffstat (limited to 'src/callproc.c')
-rw-r--r--src/callproc.c17
1 files changed, 17 insertions, 0 deletions
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);