From 50d71c681b52a7992d58e2d2b7f80c1641bb412a Mon Sep 17 00:00:00 2001
From: John Casey <casey.john.d@gmail.com>
Date: Wed, 19 Aug 2009 13:59:37 -0400
Subject: [PATCH] [MSHARED-121] Don't require a drive letter to escape a windows path. Also unit tests for three use cases in escaping windows paths.

---
 .../maven/shared/filtering/FilteringUtils.java     |    2 +-
 .../maven/shared/filtering/FilteringUtilsTest.java |   24 ++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletions(-)
 create mode 100644 maven-filtering/src/test/java/org/apache/maven/shared/filtering/FilteringUtilsTest.java

diff --git a/maven-filtering/src/main/java/org/apache/maven/shared/filtering/FilteringUtils.java b/maven-filtering/src/main/java/org/apache/maven/shared/filtering/FilteringUtils.java
index 9ff9ba0..6b9ba48 100644
--- src/main/java/org/apache/maven/shared/filtering/FilteringUtils.java
+++ src/main/java/org/apache/maven/shared/filtering/FilteringUtils.java
@@ -38,7 +38,7 @@ public class FilteringUtils
     
     public static final String escapeWindowsPath( String val )
     {
-        if ( !StringUtils.isEmpty( val ) && val.indexOf( ":\\" ) == 1 )
+        if ( !StringUtils.isEmpty( val ) )
         {
             val = StringUtils.replace( val, "\\", "\\\\" );
             //val = StringUtils.replace( val, ":", "\\:" );
diff --git a/maven-filtering/src/test/java/org/apache/maven/shared/filtering/FilteringUtilsTest.java b/maven-filtering/src/test/java/org/apache/maven/shared/filtering/FilteringUtilsTest.java
new file mode 100644
index 0000000..ac7d08f
--- /dev/null
+++ src/test/java/org/apache/maven/shared/filtering/FilteringUtilsTest.java
@@ -0,0 +1,24 @@
+package org.apache.maven.shared.filtering;
+
+import junit.framework.TestCase;
+
+public class FilteringUtilsTest
+    extends TestCase
+{
+    
+    public void testEscapeWindowsPathStartingWithDrive()
+    {
+        assertEquals( "C:\\\\Users\\\\Administrator", FilteringUtils.escapeWindowsPath( "C:\\Users\\Administrator" ) );
+    }
+    
+    public void testEscapeWindowsPathStartingWithDrivelessAbsolutePath()
+    {
+        assertEquals( "\\\\Users\\\\Administrator", FilteringUtils.escapeWindowsPath( "\\Users\\Administrator" ) );
+    }
+    
+    public void testEscapeWindowsPathStartingWithExpression()
+    {
+        assertEquals( "${pathExpr}\\\\Documents", FilteringUtils.escapeWindowsPath( "${pathExpr}\\Documents" ) );
+    }
+
+}
-- 
1.6.3.3


