From: Jan Djärv Date: Mon, 26 Jan 2004 23:39:08 +0000 (+0000) Subject: Define synch_process_termsig. X-Git-Tag: ttn-vms-21-2-B4~7824 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ca4981285f6aa4883c44f0ac857aaca686241669;p=emacs.git 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. --- 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);