diff options
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -1502,6 +1502,15 @@ devopen(const char *name, const char *mode) strictopen: if (openfd == INVALID_HANDLE) openfd = open(name, flag, 0666); +#ifdef __EMX__ + if (openfd == INVALID_HANDLE && errno == EACCES) { + /* on OS/2 directory access via open() is not permitted */ + struct stat buf; + + if (stat(name, &buf) == 0 && S_ISDIR(buf.st_mode)) + errno = EISDIR; + } +#endif if (openfd != INVALID_HANDLE) { if (os_isdir(openfd)) { (void) close(openfd); /* don't leak fds */ |