From 3e47f16c969b845e323f38f421a6b1da8c20c3a5 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Mon, 10 Jan 2011 21:45:58 +0200 Subject: Fixes for OS/2. --- io.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'io.c') diff --git a/io.c b/io.c index 2063c2a9..af15aa02 100644 --- a/io.c +++ b/io.c @@ -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 */ -- cgit v1.2.3