`raw_status_high', and `raw_status_low' with plain integers, and move
them to the end of the structure.
* alloc.c (allocate_process): Use PSEUDOVECSIZE to initialize the
pseudovector's size field so only the Lisp_Object fields get GC'd.
* process.c (update_status, make_process, Fdelete_process)
(Fprocess_status, list_processes_1, start_process_unwind)
(create_process, Fmake_network_process, server_accept_connection)
(wait_reading_process_output, send_process, Fprocess_running_child_p)
(process_send_signal, proc_encode_coding_system, Fprocess_send_eof)
(sigchld_handler, status_notify): Adjust to new non-Lisp fields for
`pid' and `raw_status'.
(Fprocess_id, Fsignal_process): Same, and additionally use floats when
representing PIDs that are larger than most-positive-fixnum.
Change arg "timeout" to "seconds" and allow both integer and float value.
Change arg "timeout-msec" to "millisec" and interpret" as milliseconds
rather than microseconds. Fix doc string accordingly.
(ifflag_table): Fix typo (IFF_OACTIV -> IFF_OACTIVE).
(Fnetwork_interface_info): Use HAVE_STRUCT_IFREQ_IFR_NETMASK
macro. Also try member ifr_addr when getting netmask.
(Qipv4, Qipv6): New vars.
(syms_of_process): Intern and staticpro them.
(Fformat_network_address): Handle 9 or 8 element vector as IPv6 address
with or without port number. Handle 4 element vector as IPv4 address
without port number.
(conv_sockaddr_to_lisp, get_lisp_to_sockaddr_size)
(conv_lisp_to_sockaddr): Handle IPv6 addresses.
(Fmake_network_process): Use :family 'ipv4 and 'ipv6 to explicitly
request that address family only. :family nil or omitted means to
determine address family from the specified :host and :service.
(server_accept_connection): Handle IPv6 addresses.
(init_process): Add (:family ipv4) and (:family ipv6) sub-features.
(ifflag_table): Add missing OpenBSD IFF_ flags.
(update_status, status_convert, decode_status, allocate_pty)
(make_process, remove_process, list_processes_1)
(create_process_1, unwind_request_sigio, read_process_output)
(send_process, keyboard_bit_set): Declare static.
(Fdelete_process): Simplify. Pass process to status_notify, so we
don't try to read output from it.
(status_notify): New arg deleting_process--don't try to read
output from that process.
(DARWIN): Defined.
* process.c (init_process): Default process-connection-type to
nil on darwin 6 or less, t if it is 7 or higher. This way the
broken pty behavior is still allowed on darwin 6 for interactive
processes for people that know what they are doing.
declare and use them if NON_BLOCKING_CONNECT is defined.
(IF_NON_BLOCKING_CONNECT): New helper macro.
(wait_reading_process_output): Only declare and use local vars
Connecting and check_connect when NON_BLOCKING_CONNECT is defined.
(init_process): Initialize them if NON_BLOCKING_CONNECT defined.
Add wait_for_cell, wait_proc, and just_wait_proc args
to avoid overloading `read_kbd' and `do_display' args.
Change read_kbd arg to int. All callers changed.
forward to wait_reading_process_input via DO_DISPLAY arg.
(wait_reading_process_input): If DO_DISPLAY < 0 for a process
object, only process output from that process; also inhibit
running timers if DO_DISPLAY==-2.
with alarm based polling.
mac.c (sys_select): Redo sys_select to use alarm-based
polling instead of 1 sec timeouts (like solaris).
macterm.c (x_make_frame_visible): Comment in polling on
frame creation.
keyboard.c: Undef SIGIO on Carbon
atimer.c (alarm_signal_handler): Call alarm handlers after
scheduling.
eval.c (Feval): Remove quit_char test
process.c (wait_reading_process_input): Remove clearing
stdin for select call on process input