diff options
Diffstat (limited to 'lib/stat.c')
-rw-r--r-- | lib/stat.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/lib/stat.c b/lib/stat.c index b203172fe..075e79e47 100644 --- a/lib/stat.c +++ b/lib/stat.c @@ -16,10 +16,13 @@ /* written by Eric Blake */ +/* If the user's config.h happens to include <sys/stat.h>, let it include only + the system's <sys/stat.h> here, so that orig_stat doesn't recurse to + rpl_stat. */ +#define __need_system_sys_stat_h #include <config.h> /* Get the original definition of stat. It might be defined as a macro. */ -#define __need_system_sys_stat_h #include <sys/types.h> #include <sys/stat.h> #undef __need_system_sys_stat_h @@ -31,7 +34,10 @@ orig_stat (const char *filename, struct stat *buf) } /* Specification. */ -#include <sys/stat.h> +/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc + eliminates this include because of the preliminary #include <sys/stat.h> + above. */ +#include "sys/stat.h" #include <errno.h> #include <limits.h> @@ -40,6 +46,15 @@ orig_stat (const char *filename, struct stat *buf) #include "dosname.h" #include "verify.h" +#if REPLACE_FUNC_STAT_DIR +# include "pathmax.h" + /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also + have a constant PATH_MAX. */ +# ifndef PATH_MAX +# error "Please port this replacement to your platform" +# endif +#endif + /* Store information about NAME into ST. Work around bugs with trailing slashes. Mingw has other bugs (such as st_ino always being 0 on success) which this wrapper does not work around. But @@ -64,11 +79,6 @@ rpl_stat (char const *name, struct stat *st) } #endif /* REPLACE_FUNC_STAT_FILE */ #if REPLACE_FUNC_STAT_DIR - /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also - have a constant PATH_MAX. */ -# ifndef PATH_MAX -# error "Please port this replacement to your platform" -# endif if (result == -1 && errno == ENOENT) { |