o Fixed argument quoting to recognize more special characters
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@931543 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/it/util/cli/Commandline.java b/src/main/java/org/apache/maven/it/util/cli/Commandline.java
index c6b8b55..f045ad0 100644
--- a/src/main/java/org/apache/maven/it/util/cli/Commandline.java
+++ b/src/main/java/org/apache/maven/it/util/cli/Commandline.java
@@ -512,9 +512,9 @@
public static String quoteArgument( String argument )
throws CommandLineException
{
- if ( argument.indexOf( "\"" ) > -1 )
+ if ( argument.indexOf( '\"' ) > -1 )
{
- if ( argument.indexOf( "\'" ) > -1 )
+ if ( argument.indexOf( '\'' ) > -1 )
{
throw new CommandLineException( "Can't handle single and double quotes in same argument" );
}
@@ -523,7 +523,7 @@
return '\'' + argument + '\'';
}
}
- else if ( argument.indexOf( "\'" ) > -1 || argument.indexOf( " " ) > -1 )
+ else if ( containsAny( argument, "'<>&|*? " ) )
{
return '\"' + argument + '\"';
}
@@ -533,6 +533,18 @@
}
}
+ private static boolean containsAny( String argument, String chars )
+ {
+ for ( int i = chars.length() - 1; i >= 0; i-- )
+ {
+ if ( argument.indexOf( chars.charAt( i ) ) >= 0 )
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
public static String toString( String[] line )
{
// empty path return empty string