From 375bba6e8a549e02505de21961ff30ea7334283d Mon Sep 17 00:00:00 2001 From: Andy Cedilnik <andy.cedilnik@kitware.com> Date: Wed, 12 Oct 2005 12:08:49 -0400 Subject: [PATCH] ENH: Add an accessor for the maximum file length --- SystemTools.cxx | 30 +++++++++++++++++++++--------- SystemTools.hxx.in | 5 +++++ 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/SystemTools.cxx b/SystemTools.cxx index 3c4a362..2bc8718 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -89,6 +89,18 @@ public: #include <io.h> #include <direct.h> #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) { return _mkdir(dir); @@ -141,15 +153,7 @@ inline int Chdir(const char* dir) } inline void Realpath(const char *path, kwsys_stl::string & resolved_path) { -# ifdef MAXPATHLEN - char resolved_name[MAXPATHLEN]; -# else -# ifdef PATH_MAX - char resolved_name[PATH_MAX]; -# else - char resolved_name[5024]; -# endif //PATH_MAX -# endif //MAXPATHLEN + char resolved_name[KWSYS_SYSTEMTOOLS_MAXPATH]; realpath(path, resolved_name); resolved_path = resolved_name; @@ -196,6 +200,7 @@ class SystemToolsTranslationMap : { }; + double SystemTools::GetTime(void) { @@ -1848,6 +1853,13 @@ bool SystemTools::RemoveADirectory(const char* source) return (Rmdir(source) == 0); } +/** + */ +size_t SystemTools::GetMaximumFilePathLength() +{ + return KWSYS_SYSTEMTOOLS_MAXPATH; +} + /** * 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 diff --git a/SystemTools.hxx.in b/SystemTools.hxx.in index f2b56e1..5c73b27 100644 --- a/SystemTools.hxx.in +++ b/SystemTools.hxx.in @@ -472,6 +472,11 @@ public: */ 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 */ -- GitLab