From 28d4f49b78058c04ee51ed7c4104a94870ff028e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 19 Jul 2008 01:53:04 +0000 Subject: [PATCH] already escaped backslash shouldn't escape the following quote in ConvertStringToArgs() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/cmdline.cpp | 2 +- tests/cmdline/cmdlinetest.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/cmdline.cpp b/src/common/cmdline.cpp index 95afbfe27f..ce169ac95b 100644 --- a/src/common/cmdline.cpp +++ b/src/common/cmdline.cpp @@ -1332,7 +1332,7 @@ wxCmdLineParser::ConvertStringToArgs(const wxString& cmdline, break; } - lastBS = ch == '\\'; + lastBS = !lastBS && ch == '\\'; } else // type == wxCMD_LINE_SPLIT_UNIX { diff --git a/tests/cmdline/cmdlinetest.cpp b/tests/cmdline/cmdlinetest.cpp index e27bcccbba..04e5c2ac83 100644 --- a/tests/cmdline/cmdlinetest.cpp +++ b/tests/cmdline/cmdlinetest.cpp @@ -96,6 +96,7 @@ void CmdLineTestCase::ConvertStringTestCase() WX_ASSERT_ARGS_EQUAL( "1|2 3|4", "1 \"2 3\" 4" ); // check for (broken) Windows semantics: backslash doesn't escape spaces + WX_ASSERT_DOS_ARGS_EQUAL( "\\\\foo\\\\|/bar", "\"\\\\foo\\\\\" /bar" ); WX_ASSERT_DOS_ARGS_EQUAL( "foo|bar\\|baz", "foo bar\\ baz" ); WX_ASSERT_DOS_ARGS_EQUAL( "foo|bar\\\"baz", "foo \"bar\\\"baz\"" ); -- 2.47.2