[Python-checkins] r45715 - in python/trunk: Include/osdefs.h Modules/posixmodule.c Python/getcwd.c

thomas.wouters python-checkins at python.org
Tue Apr 25 17:29:49 CEST 2006


Author: thomas.wouters
Date: Tue Apr 25 17:29:46 2006
New Revision: 45715

Modified:
   python/trunk/Include/osdefs.h
   python/trunk/Modules/posixmodule.c
   python/trunk/Python/getcwd.c
Log:

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.



Modified: python/trunk/Include/osdefs.h
==============================================================================
--- python/trunk/Include/osdefs.h	(original)
+++ python/trunk/Include/osdefs.h	Tue Apr 25 17:29:46 2006
@@ -37,8 +37,12 @@
 
 /* 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

Modified: python/trunk/Modules/posixmodule.c
==============================================================================
--- python/trunk/Modules/posixmodule.c	(original)
+++ python/trunk/Modules/posixmodule.c	Tue Apr 25 17:29:46 2006
@@ -262,7 +262,11 @@
 #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

Modified: python/trunk/Python/getcwd.c
==============================================================================
--- python/trunk/Python/getcwd.c	(original)
+++ python/trunk/Python/getcwd.c	Tue Apr 25 17:29:46 2006
@@ -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 *);
 


More information about the Python-checkins mailing list