ENH: Add an accessor for the maximum file length

This commit is contained in:
Andy Cedilnik 2005-10-12 12:08:49 -04:00
parent 18e14ba2af
commit b93359f41d
2 changed files with 26 additions and 9 deletions

View File

@ -89,6 +89,18 @@ public:
#include <io.h> #include <io.h>
#include <direct.h> #include <direct.h>
#define _unlink unlink #define _unlink unlink
#endif
/* The maximum length of a file name. */
#if defined(PATH_MAX)
# define KWSYS_SYSTEMTOOLS_MAXPATH PATH_MAX
#elif defined(MAXPATHLEN)
# define KWSYS_SYSTEMTOOLS_MAXPATH MAXPATHLEN
#else
# define KWSYS_SYSTEMTOOLS_MAXPATH 16384
#endif
#if defined(_WIN32) && (defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__))
inline int Mkdir(const char* dir) inline int Mkdir(const char* dir)
{ {
return _mkdir(dir); return _mkdir(dir);
@ -141,15 +153,7 @@ inline int Chdir(const char* dir)
} }
inline void Realpath(const char *path, kwsys_stl::string & resolved_path) inline void Realpath(const char *path, kwsys_stl::string & resolved_path)
{ {
# ifdef MAXPATHLEN char resolved_name[KWSYS_SYSTEMTOOLS_MAXPATH];
char resolved_name[MAXPATHLEN];
# else
# ifdef PATH_MAX
char resolved_name[PATH_MAX];
# else
char resolved_name[5024];
# endif //PATH_MAX
# endif //MAXPATHLEN
realpath(path, resolved_name); realpath(path, resolved_name);
resolved_path = resolved_name; resolved_path = resolved_name;
@ -196,6 +200,7 @@ class SystemToolsTranslationMap :
{ {
}; };
double double
SystemTools::GetTime(void) SystemTools::GetTime(void)
{ {
@ -1848,6 +1853,13 @@ bool SystemTools::RemoveADirectory(const char* source)
return (Rmdir(source) == 0); return (Rmdir(source) == 0);
} }
/**
*/
size_t SystemTools::GetMaximumFilePathLength()
{
return KWSYS_SYSTEMTOOLS_MAXPATH;
}
/** /**
* Find the file the given name. Searches the given path and then * Find the file the given name. Searches the given path and then
* the system search path. Returns the full path to the file if it is * the system search path. Returns the full path to the file if it is

View File

@ -472,6 +472,11 @@ public:
*/ */
static bool RemoveADirectory(const char* source); static bool RemoveADirectory(const char* source);
/**
* Get the maximum full file path length
*/
static size_t GetMaximumFilePathLength();
/** /**
* Find a file in the system PATH, with optional extra paths * Find a file in the system PATH, with optional extra paths
*/ */