You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2013/04/08 01:10:06 UTC

svn commit: r1465505 - in /commons/proper/io/trunk/src: changes/changes.xml main/java/org/apache/commons/io/FilenameUtils.java test/java/org/apache/commons/io/FilenameUtilsWildcardTestCase.java

Author: sebb
Date: Sun Apr  7 23:10:05 2013
New Revision: 1465505

URL: http://svn.apache.org/r1465505
Log:
IO-375 FilenameUtils.splitOnTokens(String text) check for '**' could be simplified 

Modified:
    commons/proper/io/trunk/src/changes/changes.xml
    commons/proper/io/trunk/src/main/java/org/apache/commons/io/FilenameUtils.java
    commons/proper/io/trunk/src/test/java/org/apache/commons/io/FilenameUtilsWildcardTestCase.java

Modified: commons/proper/io/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/changes/changes.xml?rev=1465505&r1=1465504&r2=1465505&view=diff
==============================================================================
--- commons/proper/io/trunk/src/changes/changes.xml (original)
+++ commons/proper/io/trunk/src/changes/changes.xml Sun Apr  7 23:10:05 2013
@@ -47,7 +47,10 @@ The <action> type attribute can be add,u
   <body>
     <!-- The release date is the date RC is cut -->
     <release version="2.5" date="2013-??-??" description="New features and bug fixes.">    
-      <action issue="IO-374" dev="sebb" type="fix">
+      <action issue="IO-375" dev="sebb" type="update">
+        FilenameUtils.splitOnTokens(String text) check for '**' could be simplified 
+      </action>            
+      <action issue="IO-374" dev="sebb" type="update">
         WildcardFileFilter ctors should not use null to mean IOCase.SENSITIVE when delegating to other ctors
       </action>            
       <action issue="IO-362" dev="ggregory" type="fix" due-to="mmadson, ggregory">

Modified: commons/proper/io/trunk/src/main/java/org/apache/commons/io/FilenameUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/FilenameUtils.java?rev=1465505&r1=1465504&r2=1465505&view=diff
==============================================================================
--- commons/proper/io/trunk/src/main/java/org/apache/commons/io/FilenameUtils.java (original)
+++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/FilenameUtils.java Sun Apr  7 23:10:05 2013
@@ -1375,6 +1375,7 @@ public class FilenameUtils {
         final char[] array = text.toCharArray();
         final ArrayList<String> list = new ArrayList<String>();
         final StringBuilder buffer = new StringBuilder();
+        char prevChar = 0;
         for (int i = 0; i < array.length; i++) {
             final char ch = array[i];
             if (ch == '?' || ch == '*') {
@@ -1384,13 +1385,13 @@ public class FilenameUtils {
                 }
                 if (ch == '?') {
                     list.add("?");
-                } else if (list.isEmpty() || // ch == '*' here; check if previous char was '*'
-                        i > 0 && list.get(list.size() - 1).equals("*") == false) {
+                } else if (prevChar != '*' ) {// ch == '*' here; check if previous char was '*'
                     list.add("*");
                 }
             } else {
                 buffer.append(ch);
             }
+            prevChar = ch;
         }
         if (buffer.length() != 0) {
             list.add(buffer.toString());

Modified: commons/proper/io/trunk/src/test/java/org/apache/commons/io/FilenameUtilsWildcardTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/FilenameUtilsWildcardTestCase.java?rev=1465505&r1=1465504&r2=1465505&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/java/org/apache/commons/io/FilenameUtilsWildcardTestCase.java (original)
+++ commons/proper/io/trunk/src/test/java/org/apache/commons/io/FilenameUtilsWildcardTestCase.java Sun Apr  7 23:10:05 2013
@@ -123,6 +123,7 @@ public class FilenameUtilsWildcardTestCa
         assertArrayEquals( new String[] { "*" }, FilenameUtils.splitOnTokens("****") );
         assertArrayEquals( new String[] { "*", "?", "?", "*" }, FilenameUtils.splitOnTokens("*??*") );
         assertArrayEquals( new String[] { "*", "?", "*", "?", "*" }, FilenameUtils.splitOnTokens("*?**?*") );
+        assertArrayEquals( new String[] { "*", "?", "*", "?", "*" }, FilenameUtils.splitOnTokens("*?***?*") );
         assertArrayEquals( new String[] { "h", "?", "?", "*" }, FilenameUtils.splitOnTokens("h??*") );
         assertArrayEquals( new String[] { "" }, FilenameUtils.splitOnTokens("") );
     }