/* Definitions for asynchronous process control in GNU Emacs.
- Copyright (C) 1985 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1994 Free Software Foundation, Inc.
This file is part of GNU Emacs.
struct Lisp_Process
{
- int size;
+ EMACS_INT size;
struct Lisp_Vector *v_next;
/* Descriptor by which we read from this process */
Lisp_Object infd;
/* Descriptor for the tty which this process is using.
nil if we didn't record it (on some systems, there's no need). */
Lisp_Object subtty;
+ /* Name of subprocess terminal. */
+ Lisp_Object tty_name;
/* Name of this process */
Lisp_Object name;
/* List of command arguments that this process was run with */
#define ChannelMask(n) (1<<(n))
+/* Indexed by descriptor, gives the process (if any) for that descriptor. */
+extern Lisp_Object chan_process[];
+
+/* Alist of elements (NAME . PROCESS). */
+extern Lisp_Object Vprocess_alist;
+
/* True iff we are about to fork off a synchronous process or if we
are waiting for it. */
extern int synch_process_alive;
+/* Communicate exit status of synch process to from sigchld_handler
+ to Fcall_process. */
+extern int synch_process_retcode;
+extern char *synch_process_death;
+
/* Nonzero => this is a string explaining death of synchronous subprocess. */
extern char *synch_process_death;
this is exit code of synchronous subprocess. */
extern int synch_process_retcode;
+/* The name of the file open to get a null file, or a data sink.
+ VMS, MS-DOS, and OS/2 redefine this. */
+#ifndef NULL_DEVICE
+#define NULL_DEVICE "/dev/null"
+#endif
+
+/* A string listing the possible suffixes used for executable files,
+ separated by colons. VMS, MS-DOS, and OS/2 redefine this. */
+#ifndef EXEC_SUFFIXES
+#define EXEC_SUFFIXES ""
+#endif