Details
-
Bug
-
Resolution: Done
-
P0: Blocker
-
5.2.0 RC1
-
None
-
Windows 8.1
-
7cfe7c198224babeb06eac583e419bbd82c7217e (release branch , 6.12.2013)
Description
Using the attached example, pass a network share path as arguments:
d:\dev\projects\cmdargs_5>release\cmdargs.exe \\server\path 5.2.1 0 release\cmdargs.exe 1 \\server\path ("release\cmdargs.exe", "\server\path")
whereas in Qt 4:
d:\dev\projects\cmdargs_4>release\cmdargs.exe \\server\path 4.8.6 0 release\cmdargs.exe 1 \\server\path ("release\cmdargs.exe", "\\server\path")
"
" is changed to "\" in the debug output of QCoreApplication::arguments(). It seems to perform some backslash-escaping which it clearly shouldn't. Quoting in double-quotes does not help (note it is possible for example to start
explorer \\server\path
, so, the Windows shell clearly does not do backslash-escaping). This is pretty serious as you cannot pass cmd line arguments of that type to any application.
Attachments
Issue Links
- is required for
-
QTBUG-35145 Issues to be fixed before Qt5.2 final release
- Closed
- relates to
-
QTBUG-23687 Invalid command line parsing at QCoreApplication::arguments on MS Windows family
- Closed
- resulted from
-
QTBUG-30628 Application arguments with single quotes are parsed wrong
- Closed