the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#ifndef _XEMACS_PROCESS_H_
-#define _XEMACS_PROCESS_H_
+#ifndef INCLUDED_process_h_
+#define INCLUDED_process_h_
#if defined (NO_SUBPROCESSES)
#undef XPROCESS
#else /* not NO_SUBPROCESSES */
-/* Only process.c needs to know about the guts of this */
-struct Lisp_Process;
+/* struct Lisp_Process is defined in procimpl.h; only process-*.c need
+ to know about the guts of it. */
-DECLARE_LRECORD (process, struct Lisp_Process);
-#define XPROCESS(x) XRECORD (x, process, struct Lisp_Process)
+DECLARE_LRECORD (process, Lisp_Process);
+#define XPROCESS(x) XRECORD (x, process, Lisp_Process)
#define XSETPROCESS(x, p) XSETRECORD (x, p, process)
#define PROCESSP(x) RECORDP (x, process)
#define CHECK_PROCESS(x) CHECK_RECORD (x, process)
-#define PROCESS_LIVE_P(x) (!NILP (XPROCESS(x)->pipe_instream))
+#define PROCESS_LIVE_P(x) (EQ ((x)->status_symbol, Qrun))
+#define PROCESS_READABLE_P(x) (!NILP ((x)->pipe_instream))
+
+#define CHECK_LIVE_PROCESS(x) do { \
+ CHECK_PROCESS (x); \
+ if (! PROCESS_LIVE_P (XPROCESS (x))) \
+ dead_wrong_type_argument (Qprocess_live_p, (x)); \
+} while (0)
+
+#define CHECK_READABLE_PROCESS(x) do { \
+ CHECK_PROCESS (x); \
+ if (! PROCESS_READABLE_P (XPROCESS (x))) \
+ dead_wrong_type_argument (Qprocess_readable_p, (x)); \
+} while (0)
#ifdef emacs
Lisp_Object buffer,
Lisp_Object infd,
Lisp_Object outfd);
-int connected_via_filedesc_p (struct Lisp_Process *p);
+int connected_via_filedesc_p (Lisp_Process *p);
void kill_buffer_processes (Lisp_Object buffer);
void close_process_descs (void);
extern volatile int synch_process_alive;
/* Nonzero => this is a string explaining death of synchronous subprocess. */
-extern CONST char *synch_process_death;
+extern const char *synch_process_death;
/* If synch_process_death is zero,
this is exit code of synchronous subprocess. */
Lisp_Object status_symbol,
int exit_code, int core_dumped);
-void get_process_streams (struct Lisp_Process *p,
+void get_process_streams (Lisp_Process *p,
Lisp_Object *instr, Lisp_Object *outstr);
-int get_process_selected_p (struct Lisp_Process *p);
-void set_process_selected_p (struct Lisp_Process *p, int selected_p);
+int get_process_selected_p (Lisp_Process *p);
+void set_process_selected_p (Lisp_Process *p, int selected_p);
-struct Lisp_Process *get_process_from_usid (USID usid);
+Lisp_Process *get_process_from_usid (USID usid);
#ifdef HAVE_SOCKETS
int network_connection_p (Lisp_Object process);
void deactivate_process (Lisp_Object proc);
-#ifdef WINDOWSNT
+#ifdef WIN32_NATIVE
int
#else
void
#endif
child_setup (int in, int out, int err,
- char **new_argv, CONST char *current_dir);
+ char **new_argv, const char *current_dir);
Charcount read_process_output (Lisp_Object proc);
-CONST char *signal_name (int signum);
+const char *signal_name (int signum);
Lisp_Object canonicalize_host_name (Lisp_Object host);
#endif /* emacs */
-#ifdef HAVE_GETPT
-#define PTY_ITERATION
-#define PTY_OPEN \
- if ((fd = getpt()) < 0 || grantpt (fd) < 0 || unlockpt (fd) < 0) \
- return -1;
-#define PTY_NAME_SPRINTF
-#define PTY_TTY_NAME_SPRINTF strcpy (pty_name, ptsname (fd));
-#endif
-
-#endif /* _XEMACS_PROCESS_H_ */
+#endif /* INCLUDED_process_h_ */