diff options
| -rw-r--r-- | llvm/include/llvm/System/Path.h | 4 | ||||
| -rw-r--r-- | llvm/lib/System/Path.cpp | 12 | 
2 files changed, 16 insertions, 0 deletions
diff --git a/llvm/include/llvm/System/Path.h b/llvm/include/llvm/System/Path.h index d28e11e5456..de2f173ae41 100644 --- a/llvm/include/llvm/System/Path.h +++ b/llvm/include/llvm/System/Path.h @@ -459,6 +459,10 @@ namespace sys {        /// @brief Make the current path name unique in the file system.        bool makeUnique( bool reuse_current /*= true*/, std::string* ErrMsg ); +      /// The current Path name is made absolute by prepending the +      /// current working directory if necessary. +      void makeAbsolute(); +      /// @}      /// @name Disk Mutators      /// @{ diff --git a/llvm/lib/System/Path.cpp b/llvm/lib/System/Path.cpp index c5a4b0676ff..4c965db7223 100644 --- a/llvm/lib/System/Path.cpp +++ b/llvm/lib/System/Path.cpp @@ -207,6 +207,18 @@ bool Path::hasMagicNumber(const std::string &Magic) const {    return false;  } +void Path::makeAbsolute() { +  if (isAbsolute()) +    return; + +  Path CWD = Path::GetCurrentDirectory(); +  assert(CWD.isAbsolute() && "GetCurrentDirectory returned relative path!"); + +  CWD.appendComponent(path); + +  path = CWD.toString(); +} +  static void getPathList(const char*path, std::vector<Path>& Paths) {    const char* at = path;    const char* delim = strchr(at, PathSeparator);  | 

