Commit d5e7f8d0 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Fix the MS-DOS build; remove more "#ifdef subprocesses".

 process.c <inhibit_sentinels>: 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.
parents 79cb9c05 77defa9a
2010-07-13 Eli Zaretskii <eliz@gnu.org>
Remove subprocesses #ifdefs.
* process.c <inhibit_sentinels>: 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.
2010-07-13 Dan Nicolaescu <dann@ics.uci.edu>
 
Remove subprocesses #ifdefs from term.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;
......
......@@ -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);
......
......@@ -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
......
......@@ -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 <pty.h>
......@@ -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 */
......@@ -7122,10 +7113,12 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd,
void
add_keyboard_wait_descriptor (int desc)
{
#ifdef subprocesses
FD_SET (desc, &input_wait_mask);
FD_SET (desc, &non_process_wait_mask);
if (desc > max_keyboard_desc)
max_keyboard_desc = desc;
#endif
}
/* From now on, do not expect DESC to give keyboard input. */
......@@ -7277,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
......
......@@ -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)
......
......@@ -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;
......
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