Commit cf4754c6 authored by Thomas Wouters's avatar Thomas Wouters

Define MAXPATHLEN to be at least PATH_MAX, if that's defined. Python uses

MAXPATHLEN-sized buffers for various output-buffers (like to realpath()),
and that's correct on BSD platforms, but not Linux (which uses PATH_MAX, and
does not define MAXPATHLEN.) Cursory googling suggests Linux is following a
newer standard than BSD, but in cases like this, who knows. Using the
greater of PATH_MAX and 1024 as a fallback for MAXPATHLEN seems to be the
most portable solution.
parent f9cc415b
...@@ -37,8 +37,12 @@ extern "C" { ...@@ -37,8 +37,12 @@ extern "C" {
/* Max pathname length */ /* Max pathname length */
#ifndef MAXPATHLEN #ifndef MAXPATHLEN
#if defined(PATH_MAX) && PATH_MAX > 1024
#define MAXPATHLEN PATH_MAX
#else
#define MAXPATHLEN 1024 #define MAXPATHLEN 1024
#endif #endif
#endif
/* Search path entry delimiter */ /* Search path entry delimiter */
#ifndef DELIM #ifndef DELIM
......
...@@ -262,7 +262,11 @@ extern int lstat(const char *, struct stat *); ...@@ -262,7 +262,11 @@ extern int lstat(const char *, struct stat *);
#endif /* OS2 */ #endif /* OS2 */
#ifndef MAXPATHLEN #ifndef MAXPATHLEN
#if defined(PATH_MAX) && PATH_MAX > 1024
#define MAXPATHLEN PATH_MAX
#else
#define MAXPATHLEN 1024 #define MAXPATHLEN 1024
#endif
#endif /* MAXPATHLEN */ #endif /* MAXPATHLEN */
#ifdef UNION_WAIT #ifdef UNION_WAIT
......
...@@ -14,8 +14,12 @@ ...@@ -14,8 +14,12 @@
#endif #endif
#ifndef MAXPATHLEN #ifndef MAXPATHLEN
#if defined(PATH_MAX) && PATH_MAX > 1024
#define MAXPATHLEN PATH_MAX
#else
#define MAXPATHLEN 1024 #define MAXPATHLEN 1024
#endif #endif
#endif
extern char *getwd(char *); extern char *getwd(char *);
......
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