Merge "Preserve backslashes within double quotes in CLIGitCommand::split()"

This commit is contained in:
David Pursehouse 2016-10-23 19:18:37 -04:00 committed by Gerrit Code Review @ Eclipse.org
commit 88f433be84
2 changed files with 3 additions and 1 deletions

View File

@ -218,7 +218,7 @@ else if (r.length() > 0) {
inquote = !inquote;
continue;
case '\\':
if (inquote || ip == commandLine.length())
if (inDblQuote || inquote || ip == commandLine.length())
r.append(b); // literal within a quote
else
r.append(commandLine.charAt(ip++));

View File

@ -51,9 +51,11 @@ public class CLIGitCommandTest {
@Test
public void testSplit() throws Exception {
assertArrayEquals(new String[0], split(""));
assertArrayEquals(new String[] { "a" }, split("a"));
assertArrayEquals(new String[] { "a", "b" }, split("a b"));
assertArrayEquals(new String[] { "a", "b c" }, split("a 'b c'"));
assertArrayEquals(new String[] { "a", "b c" }, split("a \"b c\""));
assertArrayEquals(new String[] { "a", "b\\c" }, split("a \"b\\c\""));
}
}