cppfiles.c (remove_component_p): Don't assume lstat/stat will keep errno unchanged on success.

* cppfiles.c (remove_component_p): Don't assume lstat/stat will
keep errno unchanged on success.

From-SVN: r42445
This commit is contained in:
Alexandre Oliva 2001-05-22 11:57:21 +00:00 committed by Alexandre Oliva
parent 75f153f3d4
commit 8d75ad04d0
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-05-22 Alexandre Oliva <aoliva@redhat.com>
* cppfiles.c (remove_component_p): Don't assume lstat/stat will
keep errno unchanged on success.
2001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
* c-lex.c (lex_number): If pedantic and not C99, pedwarn exactly

View File

@ -1027,6 +1027,12 @@ remove_component_p (path)
result = stat (path, &s);
#endif
/* There's no guarantee that errno will be unchanged, even on
success. Cygwin's lstat(), for example, will often set errno to
ENOSYS. In case of success, reset errno to zero. */
if (result == 0)
errno = 0;
return result == 0 && S_ISDIR (s.st_mode);
}