Fix escape handling in qWinCmdArgs
authorDavid Faure <david.faure@kdab.com>
Sat, 7 Sep 2013 22:17:12 +0000 (18:17 -0400)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 10 Sep 2013 17:05:19 +0000 (19:05 +0200)
commit4ff6951550cb6e39c3b31895c3af57037e90c9ac
tree5161e3cd21c69474409575acc2356faf3c59235b
parentad46d5b82b1bc4ce931b62907cd41356de294f5a
Fix escape handling in qWinCmdArgs

-DKEY="VALUE" was correctly turned into -DKEY=VALUE,
but -DKEY=\"VALUE\" was turned into -DKEY=\VALUE"
due to the erroneous check ('quote' is still 0 when
encountering the first '\' character).

This fixes QCoreApplication::arguments() as used by
moc.exe after porting to QCommandLineParser.

Further investigation shows that double-quotes and single-quotes
are handled differently. The tests now ensure that this parser
respects what Windows sends in argv, and in particular that
QTBUG-15379 doesn't regress, as well as fixing QTBUG-30628.

Task-number: QTBUG-15379, QTBUG-30628

Change-Id: I95062c9a6022632b321b2f6fae3089f07be7b5c6
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/corelib/kernel/qcorecmdlineargs_p.h
tests/auto/corelib/tools/qcommandlineparser/testhelper/qcommandlineparser_test_helper.cpp
tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp