• Paul Eggert's avatar
    Assume POSIX 1003.1-1988 or later for fcntl.h. · 49cdacda
    Paul Eggert authored
    * admin/CPP-DEFINES (O_RDONLY, O_RDWR, HAVE_FCNTL_H): Remove.
    * admin/merge-gnulib (GNULIB_MODULES): Add fcntl-h.
    * configure.ac: Do not check for fcntl.h.
    * lib/gnulib.mk: Regenerate.
    * lib-src/movemail.c, lib-src/update-game-score.c: Assume <fcntl.h> exists.
    * nt/inc/sys/socket.h (O_NONBLOCK): Rename from O_NDELAY, since the
    POSIX name for this flag is O_NONBLOCK.  All uses changed.
    * nt/inc/unistd.h (O_RDWR, O_NOCTTY): New macros.  Like AT_FDCWD etc.
    these really should be moved to a replacement <fcntl.h> if and
    when that gets implemented.  In the meantime, include <fcntl.h>
    to make sure we don't override its definitions.
    * src/callproc.c (relocate_fd): Assume F_DUPFD.
    * src/emacs.c, src/term.c (O_RDWR): Remove.
    * src/keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
    O_NDELAY, since O_NONBLOCK is the standard name for this flag.
    * src/nsterm.m: Assume <fcntl.h> exists.
    * src/process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
    (create_pty, Fmake_network_process, server_accept_connection)
    (wait_reading_process_output, init_process_emacs):
    Assume O_NONBLOCK.
    (wait_reading_process_output): Put in a special case for WINDOWSNT
    to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
    It's not clear this is needed, but it's a more-conservative change.
    (create_process): Assume FD_CLOEXEC.
    (create_process, create_pty): Assume O_NOCTTY.
    * src/sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
    (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
    Omit if not DOS_NT, since F_GETFL is not defined there.
    (serial_open): Assume O_NONBLOCK and O_NOCTTY.
    * src/term.c: Include <fcntl.h>, for flags like O_NOCTTY.
    (O_NOCTTY): Remove.
    (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
    lack it, since gnulib guarantees this.
    * src/w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
    
    Fixes: debbugs:12881
    49cdacda
ChangeLog 366 KB