You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2018/04/02 20:30:17 UTC

[maven-scm] 02/02: Remove duplicate code

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch SCM-763
in repository https://gitbox.apache.org/repos/asf/maven-scm.git

commit 1afc64df9dd7f5794e3851e26d63a20f3f9a69c2
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Mon Apr 2 22:30:09 2018 +0200

    Remove duplicate code
---
 .../svn/svnexe/command/SvnCommandLineUtils.java    | 35 ++++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/SvnCommandLineUtils.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/SvnCommandLineUtils.java
index eea17e4..6e1e7d7 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/SvnCommandLineUtils.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/SvnCommandLineUtils.java
@@ -223,6 +223,8 @@ public final class SvnCommandLineUtils
         String clString = cl.toString();
 
         final String passwordArg = "--password ";
+        String quoteChar;
+        String escapedQuoteChar;
         String cryptedPassword;
 
         int pos = clString.indexOf( passwordArg );
@@ -231,9 +233,38 @@ public final class SvnCommandLineUtils
         {
             String beforePassword = clString.substring( 0, pos + passwordArg.length() );
             String afterPassword = clString.substring( pos + passwordArg.length() );
+
             if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
             {
-                cryptedPassword = "*****";
+                 quoteChar = "\"";
+                 escapedQuoteChar = "\"\"";
+                 cryptedPassword = "*****";
+            }
+            else
+            {
+                quoteChar = "'";
+                escapedQuoteChar = "'\\''";
+                cryptedPassword = "'*****'";
+            }
+
+            if ( afterPassword.startsWith( quoteChar ) )
+            {
+                pos = 1;
+                while ( afterPassword.indexOf( escapedQuoteChar, pos ) != -1 )
+                {
+                    pos = afterPassword.indexOf( escapedQuoteChar, pos ) + escapedQuoteChar.length();
+                }
+                afterPassword = afterPassword.substring ( afterPassword.indexOf( quoteChar, pos )
+                                                          + quoteChar.length() );
+            }
+            else
+            {
+                afterPassword = afterPassword.substring( afterPassword.indexOf( ' ' ) );
+            }
+
+            /*if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
+            {
+
                 // FIXME Plexus Utils does not escape double qoutes in password
                 if ( afterPassword.startsWith( "\"" ) )
                 {
@@ -261,7 +292,7 @@ public final class SvnCommandLineUtils
                 {
                     afterPassword = afterPassword.substring( afterPassword.indexOf( ' ' ) );
                 }
-            }
+            }*/
 
             clString = beforePassword + cryptedPassword + afterPassword;
 

-- 
To stop receiving notification emails like this one, please contact
michaelo@apache.org.