diff options
| author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-03-11 22:05:42 +0000 |
|---|---|---|
| committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-03-11 22:05:42 +0000 |
| commit | afc50b3ed4b97d9060d9d56fde840217875492a6 (patch) | |
| tree | 583481e05c6329f8e54aef7772cbbba3ca77b200 /llvm/lib | |
| parent | 3b83496dd40aab5c18461dc2f2c986f012fb98db (diff) | |
| download | bcm5719-llvm-afc50b3ed4b97d9060d9d56fde840217875492a6.tar.gz bcm5719-llvm-afc50b3ed4b97d9060d9d56fde840217875492a6.zip | |
support: add a utility function to normalise path separators
Add a utility function to convert the Windows path separator to Unix style path
separators. This is used by a subsequent change in clang to enable the use of
Windows SDK headers on Linux.
llvm-svn: 203611
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Support/Unix/Path.inc | 13 | ||||
| -rw-r--r-- | llvm/lib/Support/Windows/Path.inc | 5 |
2 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/Support/Unix/Path.inc b/llvm/lib/Support/Unix/Path.inc index 2b29baca738..500b7fecb74 100644 --- a/llvm/lib/Support/Unix/Path.inc +++ b/llvm/lib/Support/Unix/Path.inc @@ -272,6 +272,19 @@ error_code create_directory(const Twine &path, bool IgnoreExisting) { return error_code::success(); } +error_code normalize_separators(SmallVectorImpl<char> &Path) { + for (auto PI = Path.begin(), PE = Path.end(); PI < PE; ++PI) { + if (*PI == '\\') { + auto PN = PI + 1; + if (PN < PE && *PN == '\\') + ++PI; // increment once, the for loop will move over the escaped slash + else + *PI = '/'; + } + } + return error_code::success(); +} + // Note that we are using symbolic link because hard links are not supported by // all filesystems (SMB doesn't). error_code create_link(const Twine &to, const Twine &from) { diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index a555f3e794e..e59888e3858 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -158,6 +158,11 @@ error_code create_directory(const Twine &path, bool IgnoreExisting) { return error_code::success(); } +error_code normalize_separators(SmallVectorImpl<char> &Path) { + (void) Path; + return error_code::success(); +} + // We can't use symbolic links for windows. error_code create_link(const Twine &to, const Twine &from) { // Get arguments. |

