diff --git a/include/llvm/System/Path.h b/include/llvm/System/Path.h index 3ab9e087b0c..db1de770fc2 100644 --- a/include/llvm/System/Path.h +++ b/include/llvm/System/Path.h @@ -266,6 +266,14 @@ namespace sys { /// @brief Get the base name of the path std::string getBasename() const; + /// This function strips off the path and basename(up to and + /// including the last dot) of the file or directory name and + /// returns just the suffix. For example /a/foo.bar would cause + /// this function to return "bar". + /// @returns std::string containing the suffix of the path + /// @brief Get the suffix of the path + std::string getSuffix() const; + /// Obtain a 'C' string for the path name. /// @returns a 'C' string containing the path name. /// @brief Returns the path as a C string. diff --git a/lib/System/Path.cpp b/lib/System/Path.cpp index 6f0667fba50..11035cfee7a 100644 --- a/lib/System/Path.cpp +++ b/lib/System/Path.cpp @@ -172,7 +172,10 @@ bool Path::hasMagicNumber(const std::string &Magic) const { return false; } - +std::string +Path::getSuffix() const { + return path.substr(path.rfind('.') + 1); +} // Include the truly platform-specific parts of this class. #if defined(LLVM_ON_UNIX)