diff options
| author | Paul Eggert | 2012-11-17 14:12:47 -0800 |
|---|---|---|
| committer | Paul Eggert | 2012-11-17 14:12:47 -0800 |
| commit | 49cdacdad393e2b9282a19a963030dfbe1a738ab (patch) | |
| tree | 40b11ac721a6a64102dae1a4f227fbc4d1eff0bc /src/keyboard.c | |
| parent | 310e60d9454fe2d7e6920cf51f20d438e57f7b28 (diff) | |
| download | emacs-49cdacdad393e2b9282a19a963030dfbe1a738ab.tar.gz emacs-49cdacdad393e2b9282a19a963030dfbe1a738ab.zip | |
Assume POSIX 1003.1-1988 or later for fcntl.h.
* 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
Diffstat (limited to 'src/keyboard.c')
| -rw-r--r-- | src/keyboard.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index 8f3a206139d..951d4ad79dc 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -6948,7 +6948,7 @@ tty_read_avail_input (struct terminal *terminal, | |||
| 6948 | #elif defined USG || defined CYGWIN | 6948 | #elif defined USG || defined CYGWIN |
| 6949 | /* Read some input if available, but don't wait. */ | 6949 | /* Read some input if available, but don't wait. */ |
| 6950 | n_to_read = sizeof cbuf; | 6950 | n_to_read = sizeof cbuf; |
| 6951 | fcntl (fileno (tty->input), F_SETFL, O_NDELAY); | 6951 | fcntl (fileno (tty->input), F_SETFL, O_NONBLOCK); |
| 6952 | #else | 6952 | #else |
| 6953 | # error "Cannot read without possibly delaying" | 6953 | # error "Cannot read without possibly delaying" |
| 6954 | #endif | 6954 | #endif |
| @@ -6982,7 +6982,7 @@ tty_read_avail_input (struct terminal *terminal, | |||
| 6982 | } | 6982 | } |
| 6983 | while ( | 6983 | while ( |
| 6984 | /* We used to retry the read if it was interrupted. | 6984 | /* We used to retry the read if it was interrupted. |
| 6985 | But this does the wrong thing when O_NDELAY causes | 6985 | But this does the wrong thing when O_NONBLOCK causes |
| 6986 | an EAGAIN error. Does anybody know of a situation | 6986 | an EAGAIN error. Does anybody know of a situation |
| 6987 | where a retry is actually needed? */ | 6987 | where a retry is actually needed? */ |
| 6988 | #if 0 | 6988 | #if 0 |