From 1ddba60e3d084bfca4615bbd77c3c6f4ed34d8ee Mon Sep 17 00:00:00 2001 From: Thomas Wouters Date: Tue, 25 Apr 2006 15:29:46 +0000 Subject: 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. --- Include/osdefs.h | 4 ++++ Modules/posixmodule.c | 4 ++++ Python/getcwd.c | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/Include/osdefs.h b/Include/osdefs.h index 8190a75..6937659 100644 --- a/Include/osdefs.h +++ b/Include/osdefs.h @@ -37,8 +37,12 @@ extern "C" { /* Max pathname length */ #ifndef MAXPATHLEN +#if defined(PATH_MAX) && PATH_MAX > 1024 +#define MAXPATHLEN PATH_MAX +#else #define MAXPATHLEN 1024 #endif +#endif /* Search path entry delimiter */ #ifndef DELIM diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index ac74a67..7f2356c 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -262,7 +262,11 @@ extern int lstat(const char *, struct stat *); #endif /* OS2 */ #ifndef MAXPATHLEN +#if defined(PATH_MAX) && PATH_MAX > 1024 +#define MAXPATHLEN PATH_MAX +#else #define MAXPATHLEN 1024 +#endif #endif /* MAXPATHLEN */ #ifdef UNION_WAIT diff --git a/Python/getcwd.c b/Python/getcwd.c index 5c57291..967d484 100644 --- a/Python/getcwd.c +++ b/Python/getcwd.c @@ -14,8 +14,12 @@ #endif #ifndef MAXPATHLEN +#if defined(PATH_MAX) && PATH_MAX > 1024 +#define MAXPATHLEN PATH_MAX +#else #define MAXPATHLEN 1024 #endif +#endif extern char *getwd(char *); -- cgit v0.12