diff options
author | 2017-02-01 16:32:08 +0000 | |
---|---|---|
committer | 2017-02-01 16:36:58 +0000 | |
commit | 8bebcec47848b5129e0ce41fd4c3ee8a79ba7600 (patch) | |
tree | efa477e5fd57ebf68b56981258aca2ca478b6d8b /src/main/cpp/util/file.cc | |
parent | efe3bf98b0430497ea1926b80e6dbb0b3642eac6 (diff) |
Rollback of commit 855fbe9ee447b7b37fd8c73dbc047d69b7ceffcf.
*** Reason for rollback ***
Causing bazel server restart every time on Windows
See https://github.com/bazelbuild/bazel/issues/2466
*** Original change description ***
Bazel client: platform-specific JoinPath
This allows joining paths on "\" instead of "/"
when building for Windows.
See https://github.com/bazelbuild/bazel/issues/2107
--
PiperOrigin-RevId: 146246700
MOS_MIGRATED_REVID=146246700
Diffstat (limited to 'src/main/cpp/util/file.cc')
-rw-r--r-- | src/main/cpp/util/file.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/cpp/util/file.cc b/src/main/cpp/util/file.cc index cae87198a7..392af372af 100644 --- a/src/main/cpp/util/file.cc +++ b/src/main/cpp/util/file.cc @@ -77,6 +77,31 @@ string Basename(const string &path) { return SplitPath(path).second; } +string JoinPath(const string &path1, const string &path2) { + if (path1.empty()) { + // "" + "/bar" + return path2; + } + + if (path1[path1.size() - 1] == '/') { + if (path2.find('/') == 0) { + // foo/ + /bar + return path1 + path2.substr(1); + } else { + // foo/ + bar + return path1 + path2; + } + } else { + if (path2.find('/') == 0) { + // foo + /bar + return path1 + path2; + } else { + // foo + bar + return path1 + "/" + path2; + } + } +} + class DirectoryTreeWalker : public DirectoryEntryConsumer { public: DirectoryTreeWalker(vector<string> *files, |