Overview
Comment: | OFFile: Add support for the C11 "x" modes |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
d7728534a46a370dc79f3e4ce15994f1 |
User & Date: | js on 2014-05-15 01:49:58 |
Other Links: | manifest | tags |
Context
2014-05-15
| ||
01:50 | Update buildsys check-in: 7b365b7a56 user: js tags: trunk | |
01:49 | OFFile: Add support for the C11 "x" modes check-in: d7728534a4 user: js tags: trunk | |
2014-05-14
| ||
21:09 | Replace @compatibility_alias with #define for NS* check-in: ac1ae59c91 user: js tags: trunk | |
Changes
Modified src/OFFile.m from [8a5121abb8] to [70aebcaeb2].
︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #define _POSIX_C_SOURCE 200112L #define _XOPEN_SOURCE 600 #define __NO_EXT_QNX #include "config.h" /* Work around a bug with Clang + glibc */ #ifdef __clang__ # define _HAVE_STRING_ARCH_strcmp | > > > > | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #define _POSIX_C_SOURCE 200112L #define _XOPEN_SOURCE 600 #define _BSD_SOURCE #define _NETBSD_SOURCE #define _DARWIN_C_SOURCE #define __BSD_VISIBLE 1 #define __NO_EXT_QNX #include "config.h" /* Work around a bug with Clang + glibc */ #ifdef __clang__ # define _HAVE_STRING_ARCH_strcmp |
︙ | ︙ | |||
89 90 91 92 93 94 95 96 97 98 99 100 101 102 | # include <windows.h> # include <direct.h> #endif #ifndef O_BINARY # define O_BINARY 0 #endif #ifndef S_IRGRP # define S_IRGRP 0 #endif #ifndef S_IROTH # define S_IROTH 0 #endif | > > > | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | # include <windows.h> # include <direct.h> #endif #ifndef O_BINARY # define O_BINARY 0 #endif #ifndef O_EXLOCK # define O_EXLOCK 0 #endif #ifndef S_IRGRP # define S_IRGRP 0 #endif #ifndef S_IROTH # define S_IROTH 0 #endif |
︙ | ︙ | |||
140 141 142 143 144 145 146 | } static int parseMode(const char *mode) { if (strcmp(mode, "r") == 0) return O_RDONLY; | | | | > > > > | | | | | | | | | | | | | | | | | > > | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | } static int parseMode(const char *mode) { if (strcmp(mode, "r") == 0) return O_RDONLY; if (strcmp(mode, "w") == 0) return O_WRONLY | O_CREAT | O_TRUNC; if (strcmp(mode, "wx") == 0) return O_WRONLY | O_CREAT | O_EXCL | O_EXLOCK; if (strcmp(mode, "a") == 0) return O_WRONLY | O_CREAT | O_APPEND; if (strcmp(mode, "rb") == 0) return O_RDONLY | O_BINARY; if (strcmp(mode, "wb") == 0) return O_WRONLY | O_CREAT | O_TRUNC | O_BINARY; if (strcmp(mode, "wbx") == 0) return O_WRONLY | O_CREAT | O_EXCL | O_EXLOCK; if (strcmp(mode, "ab") == 0) return O_WRONLY | O_CREAT | O_APPEND | O_BINARY; if (strcmp(mode, "r+") == 0) return O_RDWR; if (strcmp(mode, "w+") == 0) return O_RDWR | O_CREAT | O_TRUNC; if (strcmp(mode, "a+") == 0) return O_RDWR | O_CREAT | O_APPEND; if (strcmp(mode, "r+b") == 0 || strcmp(mode, "rb+") == 0) return O_RDWR | O_BINARY; if (strcmp(mode, "w+b") == 0 || strcmp(mode, "wb+") == 0) return O_RDWR | O_CREAT | O_TRUNC | O_BINARY; if (strcmp(mode, "w+bx") == 0 || strcmp(mode, "wb+x") == 0) return O_RDWR | O_CREAT | O_EXCL | O_EXLOCK; if (strcmp(mode, "ab+") == 0 || strcmp(mode, "a+b") == 0) return O_RDWR | O_CREAT | O_APPEND | O_BINARY; return -1; } @implementation OFFile |
︙ | ︙ |