Fix TryCreateParentDirectory on Windows

On Windows, both '/' and '\' are valid path separators. So when creating
the parent directories, split the filename on both

Signed-off-by: Akshat Gokhale <agokhale@pivotal.io>
pull/5024/head
Sam Smith 6 years ago committed by Akshat Gokhale
parent 9bbc4b1fab
commit 84963a5511
  1. 5
      src/google/protobuf/compiler/command_line_interface.cc

@ -168,7 +168,12 @@ bool VerifyDirectoryExists(const string& path) {
// directories listed in |filename|.
bool TryCreateParentDirectory(const string& prefix, const string& filename) {
// Recursively create parent directories to the output file.
#if defined(_WIN32)
// on Windows, both '/' and '\' are valid path separators
std::vector<string> parts = Split(filename, "/\\", true);
#else
std::vector<string> parts = Split(filename, "/", true);
#endif
string path_so_far = prefix;
for (int i = 0; i < parts.size() - 1; i++) {
path_so_far += parts[i];

Loading…
Cancel
Save