@@ -172,6 +172,39 @@ TEST_F(TApp, OneStringEqualVersionSingleStringQuotedMultiple) {
172172 EXPECT_EQ (str3, " \" quoted string\" " );
173173}
174174
175+ TEST_F (TApp, OneStringEqualVersionSingleStringEmbeddedEqual) {
176+ std::string str, str2, str3;
177+ app.add_option (" -s,--string" , str);
178+ app.add_option (" -t,--tstr" , str2);
179+ app.add_option (" -m,--mstr" , str3);
180+ app.parse (" --string=\" app=\\\" test1 b\\\" test2=\\\" frogs\\\"\" -t 'qstring 2' -m=`\" quoted string\" `" );
181+ EXPECT_EQ (str, " app=\" test1 b\" test2=\" frogs\" " );
182+ EXPECT_EQ (str2, " qstring 2" );
183+ EXPECT_EQ (str3, " \" quoted string\" " );
184+
185+ app.parse (" --string=\" app='test1 b' test2='frogs'\" -t 'qstring 2' -m=`\" quoted string\" `" );
186+ EXPECT_EQ (str, " app='test1 b' test2='frogs'" );
187+ EXPECT_EQ (str2, " qstring 2" );
188+ EXPECT_EQ (str3, " \" quoted string\" " );
189+ }
190+
191+ TEST_F (TApp, OneStringEqualVersionSingleStringEmbeddedEqualWindowsStyle) {
192+ std::string str, str2, str3;
193+ app.add_option (" -s,--string" , str);
194+ app.add_option (" -t,--tstr" , str2);
195+ app.add_option (" --mstr" , str3);
196+ app.allow_windows_style_options ();
197+ app.parse (" /string:\" app:\\\" test1 b\\\" test2:\\\" frogs\\\"\" /t 'qstring 2' /mstr:`\" quoted string\" `" );
198+ EXPECT_EQ (str, " app:\" test1 b\" test2:\" frogs\" " );
199+ EXPECT_EQ (str2, " qstring 2" );
200+ EXPECT_EQ (str3, " \" quoted string\" " );
201+
202+ app.parse (" /string:\" app:'test1 b' test2:'frogs'\" /t 'qstring 2' /mstr:`\" quoted string\" `" );
203+ EXPECT_EQ (str, " app:'test1 b' test2:'frogs'" );
204+ EXPECT_EQ (str2, " qstring 2" );
205+ EXPECT_EQ (str3, " \" quoted string\" " );
206+ }
207+
175208TEST_F (TApp, OneStringEqualVersionSingleStringQuotedMultipleMixedStyle) {
176209 std::string str, str2, str3;
177210 app.add_option (" -s,--string" , str);
0 commit comments