Commit 84152c25 by Vladimir Prus Committed by Vladimir Prus

cppfiles.c (open_file): Account for the fact that on windows, opening a directory gives EACCES.

        * cppfiles.c (open_file): Account for the
        fact that on windows, opening a directory gives
        EACCES.

From-SVN: r125590
parent ad365750
2007-06-09 Vladimir Prus <vladimir@codesourcery.com>
* cppfiles.c (open_file): Account for the
fact that on windows, opening a directory gives
EACCES.
2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de> 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
PR preprocessor/23479 PR preprocessor/23479
......
...@@ -228,6 +228,19 @@ open_file (_cpp_file *file) ...@@ -228,6 +228,19 @@ open_file (_cpp_file *file)
close (file->fd); close (file->fd);
file->fd = -1; file->fd = -1;
} }
#if defined(_WIN32) && !defined(__CYGWIN__)
else if (errno == EACCES)
{
/* On most UNIX systems, open succeeds on a directory. Above,
we check if we have opened a directory and if so, set errno
to ENOENT. However, on Windows, opening a directory
fails with EACCESS. We want to return ENOENT in that
case too. */
if (stat (file->path, &file->st) == 0
&& S_ISDIR (file->st.st_mode))
errno = ENOENT;
}
#endif
else if (errno == ENOTDIR) else if (errno == ENOTDIR)
errno = ENOENT; errno = ENOENT;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment