# HG changeset patch # User Jan Dj¸«£rv # Date 1075160348 0 # Node ID 659b9b404c02988123a5e073271abab3c8d4c390 # Parent 46adc18f98155b47f4ffaf36d3572fd8529f171c 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 -r 46adc18f9815 -r 659b9b404c02 src/callproc.c --- a/src/callproc.c Mon Jan 26 23:06:20 2004 +0000 +++ b/src/callproc.c Mon Jan 26 23:39:08 2004 +0000 @@ -123,6 +123,9 @@ /* 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 @@ 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 @@ 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);