# HG changeset patch # User Eli Zaretskii # Date 1279018620 -10800 # Node ID 4e99d7aa75260f9390f6b152dc8daac328cb061f # Parent cef697cc4464897f427483851829451639bbe1f0 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. diff -r cef697cc4464 -r 4e99d7aa7526 src/ChangeLog --- a/src/ChangeLog Tue Jul 13 13:03:22 2010 +0300 +++ b/src/ChangeLog Tue Jul 13 13:57:00 2010 +0300 @@ -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 -r cef697cc4464 -r 4e99d7aa7526 src/callproc.c --- a/src/callproc.c Tue Jul 13 13:03:22 2010 +0300 +++ b/src/callproc.c Tue Jul 13 13:57:00 2010 +0300 @@ -612,12 +612,6 @@ { 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 @@ make_number (total_read)); } +#ifndef MSDOS /* Wait for it to terminate, unless it already has. */ wait_for_termination (pid); +#endif immediate_quit = 0; diff -r cef697cc4464 -r 4e99d7aa7526 src/emacs.c --- a/src/emacs.c Tue Jul 13 13:03:22 2010 +0300 +++ b/src/emacs.c Tue Jul 13 13:57:00 2010 +0300 @@ -2130,9 +2130,7 @@ stuff_buffered_input (stuff); -#ifdef subprocesses inhibit_sentinels = 1; -#endif kill_buffer_processes (Qnil); Fdo_auto_save (Qt, Qnil); diff -r cef697cc4464 -r 4e99d7aa7526 src/keyboard.c --- a/src/keyboard.c Tue Jul 13 13:03:22 2010 +0300 +++ b/src/keyboard.c Tue Jul 13 13:57:00 2010 +0300 @@ -6901,18 +6901,15 @@ 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 -r cef697cc4464 -r 4e99d7aa7526 src/process.c --- a/src/process.c Tue Jul 13 13:03:22 2010 +0300 +++ b/src/process.c Tue Jul 13 13:57:00 2010 +0300 @@ -304,6 +304,10 @@ /* 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 @@ /* 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 @@ 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 @@ #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 -r cef697cc4464 -r 4e99d7aa7526 src/sysdep.c --- a/src/sysdep.c Tue Jul 13 13:03:22 2010 +0300 +++ b/src/sysdep.c Tue Jul 13 13:57:00 2010 +0300 @@ -355,16 +355,6 @@ /* 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 @@ 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 @@ { 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 @@ 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 @@ void child_setup_tty (int out) { -#ifndef DOS_NT +#ifndef WINDOWSNT struct emacs_tty s; EMACS_GET_TTY (out, &s); @@ -543,10 +528,10 @@ EMACS_SET_TTY (out, &s, 0); -#endif /* not DOS_NT */ +#endif /* not WINDOWSNT */ } - -#endif /* subprocesses */ +#endif /* MSDOS */ + /* Record a signal code and the handler for it. */ struct save_signal @@ -650,9 +635,7 @@ if (str) chdir ((char *) str); -#ifdef subprocesses close_process_descs (); /* Close Emacs's pipes/ptys */ -#endif #ifdef SET_EMACS_PRIORITY { @@ -1699,11 +1682,7 @@ 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 @@ * Only needed when subprocesses are defined. */ -#ifdef subprocesses #ifndef HAVE_GETTIMEOFDAY #ifdef HAVE_TIMEVAL @@ -2451,8 +2429,7 @@ } #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 -r cef697cc4464 -r 4e99d7aa7526 src/xdisp.c --- a/src/xdisp.c Tue Jul 13 13:03:22 2010 +0300 +++ b/src/xdisp.c Tue Jul 13 13:57:00 2010 +0300 @@ -19597,7 +19597,7 @@ obj = Fget_buffer_process (Fcurrent_buffer ()); if (NILP (obj)) return "no process"; -#ifdef subprocesses +#ifndef MSDOS obj = Fsymbol_name (Fprocess_status (obj)); #endif break;