[ 
https://issues.apache.org/jira/browse/CLI-185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12719559#action_12719559
 ] 

Andrew Shirley commented on CLI-185:
------------------------------------

fwiw, I have done a bit of experimenting and it seems I don't understand 
windows as well as I thought (which wasn't much to start with!).

It seems double quote is not passed through by cmd.exe (although single quotes 
are passed through and cmd.exe doesn't require double quotes to be matched). If 
someone types:

java tmp 'foo'

on windows, I think it is safe to assume they know they are on windows at that 
they intend the single quote to be part of the argument (as if they had typed 
the following on bash et al)

java tmp '\foo\'


In conclusion, quotes (single or double) shouldn't be stripped at all and 
people should be careful when using single quotes in a platform ignorant way.

> Commons CLI incorrectly stripping leading and trailing quotes
> -------------------------------------------------------------
>
>                 Key: CLI-185
>                 URL: https://issues.apache.org/jira/browse/CLI-185
>             Project: Commons CLI
>          Issue Type: Bug
>          Components: Parser
>    Affects Versions: 1.1, 1.2
>         Environment: Darwin dator 9.7.0 Darwin Kernel Version 9.7.0: Tue Mar 
> 31 22:52:17 PDT 2009; root:xnu-1228.12.14~1/RELEASE_I386 i386
> GNU bash, version 3.2.17(1)-release (i386-apple-darwin9.0)
> and
> Linux build-einarmr 2.6.9-023stab048.4-smp #1 SMP Fri Jul 11 18:50:44 MSD 
> 2008 x86_64 x86_64 x86_64 GNU/Linux
> GNU bash, version 3.00.15(1)-release (x86_64-redhat-linux-gnu)
>            Reporter: Einar M R Rosenvinge
>             Fix For: 1.3
>
>
> org.apache.commons.cli.Parser.processArgs() calls 
> Util.stripLeadingAndTrailingQuotes() for all argument values. IMHO this is 
> incorrect and totally broken.
> It is trivial to create a simple test for this. Output:
>     $ java -cp target/clitest.jar Clitest --balloo "this is a \"test\""
>     Value of argument balloo is 'this is a "test'.
> The argument 'balloo' should indeed keep its trailing double quote. It is 
> what the shell gives it, so don't try to do something clever to it.
> The offending code was committed here:
>     http://svn.apache.org/viewvc?view=rev&revision=129874
> and has been there for more than 6 years (!). Why was this committed in the 
> first place?
> The fix is trivial, just get rid of Util.stripLeadingAndTrailingQuotes(), and 
> consequently avoid calling it from Parser.processArgs().

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to