diff options
| author | Paul Eggert | 2020-03-07 11:58:20 -0800 |
|---|---|---|
| committer | Paul Eggert | 2020-03-07 11:58:48 -0800 |
| commit | 9f4b260c2b98ea05a02e0ab7213156ce2e60e5a9 (patch) | |
| tree | 10620a4522a216216922299407460d0e8e3330dd | |
| parent | 3274b8090bf18dec00b6ce45d6a01bf5263982ed (diff) | |
| download | emacs-9f4b260c2b98ea05a02e0ab7213156ce2e60e5a9.tar.gz emacs-9f4b260c2b98ea05a02e0ab7213156ce2e60e5a9.zip | |
Update from Gnulib
This incorporates:
2020-03-07 open, openat: port to (O_RDWR | O_RDONLY) != 0
* lib/open.c: Copy from Gnulib.
| -rw-r--r-- | lib/open.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/open.c b/lib/open.c index 487194f6652..bb180fde292 100644 --- a/lib/open.c +++ b/lib/open.c | |||
| @@ -110,7 +110,9 @@ open (const char *filename, int flags, ...) | |||
| 110 | directories, | 110 | directories, |
| 111 | - if O_WRONLY or O_RDWR is specified, open() must fail because the | 111 | - if O_WRONLY or O_RDWR is specified, open() must fail because the |
| 112 | file does not contain a '.' directory. */ | 112 | file does not contain a '.' directory. */ |
| 113 | if (flags & (O_CREAT | O_WRONLY | O_RDWR)) | 113 | if ((flags & O_CREAT) |
| 114 | || (flags & O_ACCMODE) == O_RDWR | ||
| 115 | || (flags & O_ACCMODE) == O_WRONLY) | ||
| 114 | { | 116 | { |
| 115 | size_t len = strlen (filename); | 117 | size_t len = strlen (filename); |
| 116 | if (len > 0 && filename[len - 1] == '/') | 118 | if (len > 0 && filename[len - 1] == '/') |