From 77defa9a250f03a401300d055a98e6f3a5a9e4d2 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 13 Jul 2010 13:57:00 +0300 Subject: [PATCH] Remove more "#ifdef subprocesses". process.c : Move to the common part. (Fwaiting_for_user_input_p): Move to the common part; return nil if async subprocesses aren't supported. sysdep.c (wait_for_termination) [!MSDOS]: Don't compile on MS-DOS. Remove "#ifdef subprocesses". (sys_subshell, sys_select): Remove "#ifdef subprocesses". (gettimeofday): Remove "#ifdef subprocesses". (wait_without_blocking): Remove function. (flush_pending_output, child_setup_tty): Don't compile on MS-DOS. Remove "#ifdef subprocesses". (child_setup_tty): Use WINDOWSNT instead of DOS_NT, since not compiled on MS-DOS. callproc.c (Fcall_process) [!MSDOS]: Don't call wait_for_termination on MS-DOS. emacs.c (shut_down_emacs): Remove "#ifndef subprocesses" from initialization of inhibit_sentinels. keyboard.c (record_asynch_buffer_change): Remove "#ifdef subprocesses" conditional. callproc.c (Fcall_process) [!subprocesses]: Don't call wait_for_termination, since `buffer' cannot be an integer when async subprocesses are not supported xdisp.c (decode_mode_spec): Use `MSDOS' instead of `subprocesses' for ifdefing away the call to Fprocess_status. --- src/ChangeLog | 25 +++++++++++++++++++++++++ src/callproc.c | 8 ++------ src/emacs.c | 2 -- src/keyboard.c | 9 +++------ src/process.c | 30 +++++++++++++++++------------- src/sysdep.c | 33 +++++---------------------------- src/xdisp.c | 2 +- 7 files changed, 53 insertions(+), 56 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 58eaef8920b..e8567d64245 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,30 @@ 2010-07-13 Eli Zaretskii + Remove subprocesses #ifdefs. + * process.c : Move to the common part. + (Fwaiting_for_user_input_p): Move to the common part; return nil + if async subprocesses aren't supported. + * sysdep.c (wait_for_termination) [!MSDOS]: Don't compile on + MS-DOS. Remove "#ifdef subprocesses". + (sys_subshell, sys_select): Remove "#ifdef subprocesses". + (gettimeofday): Remove "#ifdef subprocesses". + (wait_without_blocking): Remove function. + (flush_pending_output, child_setup_tty): Don't compile on MS-DOS. + Remove "#ifdef subprocesses". + (child_setup_tty): Use WINDOWSNT instead of DOS_NT, since not + compiled on MS-DOS. + * callproc.c (Fcall_process) [!MSDOS]: Don't call + wait_for_termination on MS-DOS. + * emacs.c (shut_down_emacs): Remove "#ifndef subprocesses" from + initialization of inhibit_sentinels. + * keyboard.c (record_asynch_buffer_change): Remove "#ifdef + subprocesses" conditional. + * callproc.c (Fcall_process) [!subprocesses]: Don't call + wait_for_termination, since `buffer' cannot be an integer when + async subprocesses are not supported + * xdisp.c (decode_mode_spec): Use `MSDOS' instead of `subprocesses' + for ifdefing away the call to Fprocess_status. + * process.c (add_keyboard_wait_descriptor) [!subprocesses]: Ifdef away the entire body of the function. diff --git a/src/callproc.c b/src/callproc.c index fd2cf6356ec..4286ab1ae29 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -612,12 +612,6 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) { if (fd[0] >= 0) emacs_close (fd[0]); -#ifndef subprocesses - /* If Emacs has been built with asynchronous subprocess support, - we don't need to do this, I think because it will then have - the facilities for handling SIGCHLD. */ - wait_without_blocking (); -#endif /* subprocesses */ return Qnil; } @@ -811,8 +805,10 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) make_number (total_read)); } +#ifndef MSDOS /* Wait for it to terminate, unless it already has. */ wait_for_termination (pid); +#endif immediate_quit = 0; diff --git a/src/emacs.c b/src/emacs.c index f5cd46cfc27..fbae7763877 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -2130,9 +2130,7 @@ shut_down_emacs (int sig, int no_x, Lisp_Object stuff) stuff_buffered_input (stuff); -#ifdef subprocesses inhibit_sentinels = 1; -#endif kill_buffer_processes (Qnil); Fdo_auto_save (Qt, Qnil); diff --git a/src/keyboard.c b/src/keyboard.c index 4ce915d28ab..c2f010cf4e7 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -6901,18 +6901,15 @@ record_asynch_buffer_change (void) event.frame_or_window = Qnil; event.arg = Qnil; -#ifdef subprocesses /* We don't need a buffer-switch event unless Emacs is waiting for input. The purpose of the event is to make read_key_sequence look up the keymaps again. If we aren't in read_key_sequence, we don't need one, - and the event could cause trouble by messing up (input-pending-p). */ + and the event could cause trouble by messing up (input-pending-p). + Note: Fwaiting_for_user_input_p always returns nil when async + subprocesses aren't supported. */ tem = Fwaiting_for_user_input_p (); if (NILP (tem)) return; -#else - /* We never need these events if we have no asynchronous subprocesses. */ - return; -#endif /* Make sure no interrupt happens while storing the event. */ #ifdef SIGIO diff --git a/src/process.c b/src/process.c index bd1a651a8b8..219098905cf 100644 --- a/src/process.c +++ b/src/process.c @@ -304,6 +304,10 @@ static int kbd_is_on_hold; /* Nonzero means delete a process right away if it exits. */ static int delete_exited_processes; +/* Nonzero means don't run process sentinels. This is used + when exiting. */ +int inhibit_sentinels; + #ifdef subprocesses /* Mask of bits indicating the descriptors that we wait for input on. */ @@ -381,10 +385,6 @@ struct sockaddr_and_len { /* Maximum number of bytes to send to a pty without an eof. */ static int pty_max_bytes; -/* Nonzero means don't run process sentinels. This is used - when exiting. */ -int inhibit_sentinels; - #ifdef HAVE_PTYS #ifdef HAVE_PTY_H #include @@ -5433,15 +5433,6 @@ read_process_output (Lisp_Object proc, register int channel) unbind_to (count, Qnil); return nbytes; } - -DEFUN ("waiting-for-user-input-p", Fwaiting_for_user_input_p, Swaiting_for_user_input_p, - 0, 0, 0, - doc: /* Returns non-nil if Emacs is waiting for input from the user. -This is intended for use by asynchronous process output filters and sentinels. */) - (void) -{ - return (waiting_for_user_input_p ? Qt : Qnil); -} /* Sending data to subprocess */ @@ -7279,6 +7270,19 @@ kill_buffer_processes (Lisp_Object buffer) #endif /* subprocesses */ } +DEFUN ("waiting-for-user-input-p", Fwaiting_for_user_input_p, Swaiting_for_user_input_p, + 0, 0, 0, + doc: /* Returns non-nil if Emacs is waiting for input from the user. +This is intended for use by asynchronous process output filters and sentinels. */) + (void) +{ +#ifdef subprocesses + return (waiting_for_user_input_p ? Qt : Qnil); +#else + return Qnil; +#endif +} + /* Stop reading input from keyboard sources. */ void diff --git a/src/sysdep.c b/src/sysdep.c index e45664a8bd6..d720c7c5811 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -355,16 +355,6 @@ set_exclusive_use (int fd) /* Ok to do nothing if this feature does not exist */ } -#ifndef subprocesses - -void -wait_without_blocking (void) -{ - croak ("wait_without_blocking"); - synch_process_alive = 0; -} - -#endif /* not subprocesses */ int wait_debugging; /* Set nonzero to make following function work under dbx (at least for bsd). */ @@ -373,6 +363,7 @@ SIGTYPE wait_for_termination_signal (void) {} +#ifndef MSDOS /* Wait for subprocess with process id `pid' to terminate and make sure it will get eliminated (not remain forever as a zombie) */ @@ -381,7 +372,6 @@ wait_for_termination (int pid) { while (1) { -#ifdef subprocesses #if defined (BSD_SYSTEM) || defined (HPUX) /* Note that kill returns -1 even if the process is just a zombie now. But inevitably a SIGCHLD interrupt should be generated @@ -417,14 +407,9 @@ wait_for_termination (int pid) sigsuspend (&empty_mask); #endif /* not WINDOWSNT */ #endif /* not BSD_SYSTEM, and not HPUX version >= 6 */ -#else /* not subprocesses */ - break; -#endif /* not subprocesses */ } } -#ifdef subprocesses - /* * flush any pending output * (may flush input as well; it does not matter the way we use it) @@ -459,7 +444,7 @@ flush_pending_output (int channel) void child_setup_tty (int out) { -#ifndef DOS_NT +#ifndef WINDOWSNT struct emacs_tty s; EMACS_GET_TTY (out, &s); @@ -543,10 +528,10 @@ child_setup_tty (int out) EMACS_SET_TTY (out, &s, 0); -#endif /* not DOS_NT */ +#endif /* not WINDOWSNT */ } +#endif /* MSDOS */ -#endif /* subprocesses */ /* Record a signal code and the handler for it. */ struct save_signal @@ -650,9 +635,7 @@ sys_subshell (void) if (str) chdir ((char *) str); -#ifdef subprocesses close_process_descs (); /* Close Emacs's pipes/ptys */ -#endif #ifdef SET_EMACS_PRIORITY { @@ -1699,11 +1682,7 @@ sys_select (int nfds, int timeoutval; int *local_timeout; extern int proc_buffered_char[]; -#ifndef subprocesses - int process_tick = 0, update_tick = 0; -#else extern int process_tick, update_tick; -#endif unsigned char buf; #if defined (HAVE_SELECT) && defined (HAVE_X_WINDOWS) @@ -2433,7 +2412,6 @@ dup2 (int oldd, int newd) * Only needed when subprocesses are defined. */ -#ifdef subprocesses #ifndef HAVE_GETTIMEOFDAY #ifdef HAVE_TIMEVAL @@ -2451,8 +2429,7 @@ gettimeofday (struct timeval *tp, struct timezone *tzp) } #endif -#endif -#endif /* subprocess && !HAVE_GETTIMEOFDAY && HAVE_TIMEVAL */ +#endif /* !HAVE_GETTIMEOFDAY && HAVE_TIMEVAL */ /* * This function will go away as soon as all the stubs fixed. (fnf) diff --git a/src/xdisp.c b/src/xdisp.c index 8879fa41b75..3464efd6435 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -19597,7 +19597,7 @@ decode_mode_spec (struct window *w, register int c, int field_width, obj = Fget_buffer_process (Fcurrent_buffer ()); if (NILP (obj)) return "no process"; -#ifdef subprocesses +#ifndef MSDOS obj = Fsymbol_name (Fprocess_status (obj)); #endif break; -- 2.39.2