Commit 462e7fab authored by Ben Boeckel's avatar Ben Boeckel

protoc: support '=' in --proto_path arguments

parent 3af70545
......@@ -1106,8 +1106,13 @@ CommandLineInterface::InterpretArgument(const string& name,
// Make sure disk path exists, warn otherwise.
if (access(disk_path.c_str(), F_OK) < 0) {
std::cerr << disk_path << ": warning: directory does not exist."
<< std::endl;
// Try the original path; it may have just happed to have a '=' in it.
if (access(parts[i].c_str(), F_OK) < 0) {
cerr << disk_path << ": warning: directory does not exist." << endl;
} else {
virtual_path = "";
disk_path = parts[i];
}
}
// Don't use make_pair as the old/default standard library on Solaris
......
......@@ -780,6 +780,21 @@ TEST_F(CommandLineInterfaceTest, NonRootMapping) {
ExpectGenerated("test_generator", "", "bar/foo.proto", "Foo");
}
TEST_F(CommandLineInterfaceTest, PathWithEqualsSign) {
// Test setting up a search path which happens to have '=' in it.
CreateTempDir("with=sign");
CreateTempFile("with=sign/foo.proto",
"syntax = \"proto2\";\n"
"message Foo {}\n");
Run("protocol_compiler --test_out=$tmpdir "
"--proto_path=$tmpdir/with=sign foo.proto");
ExpectNoErrors();
ExpectGenerated("test_generator", "", "foo.proto", "Foo");
}
TEST_F(CommandLineInterfaceTest, MultipleGenerators) {
// Test that we can have multiple generators and use both in one invocation,
// each with a different output directory.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment