Mercurial > hg > octave-shane > gnulib-hg
changeset 17135:3ae14a5da4df
fcntl-h: support GNU flags like O_IGNORE_CTTY
* doc/posix-headers/fcntl.texi (fcntl.h): Support O_IGNORE_CTTY,
O_NOLINK, and O_NOTRANS. These flags are nonzero on GNU/Hurd
systems. Discovered when using fcntl-h with GNU Emacs, which uses
O_IGNORE_CTTY. Fix misspelling of F_SETLKW.
* lib/fcntl.in.h (O_IGNORE_CTTY, O_NOLINK, O_NOTRANS):
Define to 0 if not already defined.
* tests/test-fcntl-h.c: Test these new flags.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Mon, 15 Oct 2012 09:31:07 -0700 |
parents | af797cb33018 |
children | 17358db77276 |
files | ChangeLog doc/posix-headers/fcntl.texi lib/fcntl.in.h tests/test-fcntl-h.c |
diffstat | 4 files changed, 39 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2012-10-15 Paul Eggert <eggert@cs.ucla.edu> + + fcntl-h: support GNU flags like O_IGNORE_CTTY + * doc/posix-headers/fcntl.texi (fcntl.h): Support O_IGNORE_CTTY, + O_NOLINK, and O_NOTRANS. These flags are nonzero on GNU/Hurd + systems. Discovered when using fcntl-h with GNU Emacs, which uses + O_IGNORE_CTTY. Fix misspelling of F_SETLKW. + * lib/fcntl.in.h (O_IGNORE_CTTY, O_NOLINK, O_NOTRANS): + Define to 0 if not already defined. + * tests/test-fcntl-h.c: Test these new flags. + 2012-10-14 Paul Eggert <eggert@cs.ucla.edu> faccessat, etc.: support AT_FDCWD-only use
--- a/doc/posix-headers/fcntl.texi +++ b/doc/posix-headers/fcntl.texi @@ -45,8 +45,9 @@ not on others. @item -@samp{O_DIRECT}, @samp{O_NDELAY}, @samp{O_NOATIME}, -and @samp{O_NOLINKS} (not specified by POSIX) are defined +@samp{O_DIRECT}, @samp{O_IGNORE_CTTY}, @samp{O_NDELAY}, +@samp{O_NOATIME}, @samp{O_NOLINK}, @samp{O_NOLINKS}, and +@samp{O_NOTRANS} (not specified by POSIX) are defined on some platforms but not on others. @item @@ -77,7 +78,7 @@ @itemize @item @samp{F_SETFD}, @samp{F_GETFL}, @samp{F_SETFL}, @samp{F_GETLK}, -@samp{F_SETLK}, @samp{F_SETLOKW}, @samp{F_GETOWN}, and @samp{F_SETOWN} +@samp{F_SETLK}, @samp{F_SETLKW}, @samp{F_GETOWN}, and @samp{F_SETOWN} are not defined on some platforms: mingw, MSVC 9.
--- a/lib/fcntl.in.h +++ b/lib/fcntl.in.h @@ -216,6 +216,10 @@ # define O_EXEC O_RDONLY /* This is often close enough in older systems. */ #endif +#ifndef O_IGNORE_CTTY +# define O_IGNORE_CTTY 0 +#endif + #ifndef O_NDELAY # define O_NDELAY 0 #endif @@ -249,10 +253,18 @@ # define O_NOFOLLOW 0 #endif +#ifndef O_NOLINK +# define O_NOLINK 0 +#endif + #ifndef O_NOLINKS # define O_NOLINKS 0 #endif +#ifndef O_NOTRANS +# define O_NOTRANS 0 +#endif + #ifndef O_RSYNC # define O_RSYNC 0 #endif
--- a/tests/test-fcntl-h.c +++ b/tests/test-fcntl-h.c @@ -21,9 +21,9 @@ #include <fcntl.h> /* Check that the various O_* macros are defined. */ -int o = O_DIRECT | O_DIRECTORY | O_DSYNC | O_NDELAY | O_NOATIME | O_NONBLOCK - | O_NOCTTY | O_NOFOLLOW | O_NOLINKS | O_RSYNC | O_SYNC | O_TTY_INIT - | O_BINARY | O_TEXT; +int o = (O_DIRECT | O_DIRECTORY | O_DSYNC | O_IGNORE_CTTY | O_NDELAY | O_NOATIME + | O_NONBLOCK | O_NOCTTY | O_NOFOLLOW | O_NOLINK | O_NOLINKS | O_NOTRANS + | O_RSYNC | O_SYNC | O_TTY_INIT | O_BINARY | O_TEXT); /* Check that the various SEEK_* macros are defined. */ int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET }; @@ -84,6 +84,9 @@ #if O_DSYNC case O_DSYNC: #endif +#if O_IGNORE_CTTY + case O_IGNORE_CTTY: +#endif #if O_NOATIME case O_NOATIME: #endif @@ -96,9 +99,15 @@ #if O_NOFOLLOW case O_NOFOLLOW: #endif +#if O_NOLINK + case O_NOLINK: +#endif #if O_NOLINKS case O_NOLINKS: #endif +#if O_NOTRANS + case O_NOTRANS: +#endif #if O_RSYNC && O_RSYNC != O_DSYNC case O_RSYNC: #endif