[BROKEN_O_NONBLOCK]: Undefine O_NONBLOCK.
(create_process): Delete SYSV4_PTYS code.
(deactivate_process): Likewise.
(create_process) [SET_CHILD_PTY_PGRP]: Do ioctls
to set the pgrp of the pty.
(wait_reading_process_input): Call prepare_menu_bars.
Use -1 to mean wait_channel is empty.
Start process loop with descriptor 0 if keyboard_descriptor is not 0.
(make_process): Initialize descriptors to -1.
(Fdelete_process): -1 means empty, in infd.
(deactivate_process): Likewise.
(process_send_signal): Likewise.
(kill_buffer_processes): Likewise.
(sigchld_handler): Likewise.
(status_notify): Likewise.
(close_process_descs): Likewise.
(create_process): Likewise.
(Fopen_network_stream): Likewise.
(send_process): Likewise.
(Fprocess_send_eof): Likewise. Use XINT when closing outfd.
(Fset_process_filter): Use XINT to get infd value.
(wait_reading_process_input): Likewise.
(wait_reading_process_input): When bypassing select, clear Available.
* s/irix4-0.h: Get rid of our fake definitions for setpgrp and
getpgrp.
* callproc.c (Fcall_process): Go ahead and use the USG calling
convention for setpgrp.
* ymakefile (pre-crt0.o): Add rule for this. Perhaps it will help
separate-source-directory compilation.
* emacs.c (shut_down_emacs): Some USG systems #define
EMACS_HAVE_TTY_PGRP; call getpgrp as appropriate for such systems.
* sysdep.c (sys_suspend): Call getpgrp as appropriate for USG and
non-USG.
* process.c [IRIX] (create_process): Don't put child in process
group zero before opening the tty; Irix is like USG in this
regard.
call setpgrp with arguments, even if USG is #defined.
* process.c [IRIX] (create_process): Don't call setpgrp before
opening the pty. Call it after doing the TIOCNOTTY ioctl.
* s/template.h: Mention that you should #define HAVE_TERMIO or
HAVE_TERMIOS, but not both, and that HAVE_TERMIOS is preferred.
* systty.h (EMACS_SET_TTY_PGRP): Don't assign the return value of
tcsetpgrp to *pgid; it's just a status value.
* config.h.in (HAVE_RANDOM): This shouldn't be defined on Linux
systems using XFree386, and perhaps is inappropriate in general.
* m/intel386.h: #undefine the integer size macros, since the Linux
<values.h> file #defines them itself.
* mem-limits.h (get_lim_data): Linux has the ulimit call; if it
fails, fall back on ULIMIT_BREAK_VALUE.
* process.c: Linux needs the WAITTYPE, etc. definitions.
* unexec.c (hdr, ohdr): Linux has the ordinary `struct exec' type;
no need to use SYSV names.
* s/linux.h: New file.
equivalent of /dev/null, and the suffixes used by executable
files. This is simple, and helps people porting Emacs to other
operating systems.
* process.h (NULL_DEVICE): Give this a default value.
* process.c (Fstart_process): Pass EXEC_SUFFIXES to openp.
(Fprocess_send_eof): Use NULL_DEVICE instead of "/dev/null".
* callproc.c (Fcall_process): Pass EXEC_SUFFIXES to openp.
Use NULL_DEVICE instead of "/dev/null".