Commit ca498128 authored by Jan Djärv's avatar Jan Djärv

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.
parent 6497a8f8
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment