mbenson     2005/03/07 09:13:06

  Modified:    src/main/org/apache/tools/ant DirectoryScanner.java
  Log:
  Reuse boolean[] instances for case-sensitivity iterations when scanning;
  reverse logic for better clarity of intent with these arrays.
  
  Revision  Changes    Path
  1.95      +10 -6     ant/src/main/org/apache/tools/ant/DirectoryScanner.java
  
  Index: DirectoryScanner.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/DirectoryScanner.java,v
  retrieving revision 1.94
  retrieving revision 1.95
  diff -u -r1.94 -r1.95
  --- DirectoryScanner.java     7 Mar 2005 17:02:46 -0000       1.94
  +++ DirectoryScanner.java     7 Mar 2005 17:13:05 -0000       1.95
  @@ -168,6 +168,12 @@
       /** Helper. */
       private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();
   
  +    /** iterations for case-sensitive scanning. */
  +    private static final boolean[] csScanOnly = new boolean[] {true};
  +
  +    /** iterations for non-case-sensitive scanning. */
  +    private static final boolean[] csThenNonCs = new boolean[] {true, false};
  +
       /**
        * Patterns which should be excluded by default.
        *
  @@ -1522,13 +1528,11 @@
           }
           String current = (String) pathElements.remove(0);
   
  -        //always scan first NOT ignoring case; if cs, do a 2nd scan ignoring 
case:
  -        boolean[] ignoreCase = cs ? new boolean[] {false}
  -                                  : new boolean[] {false, true};
  -        for (int i = 0; i < ignoreCase.length; i++) {
  +        boolean[] matchCase = cs ? csScanOnly : csThenNonCs;
  +        for (int i = 0; i < matchCase.length; i++) {
               for (int j = 0; j < files.length; j++) {
  -                if (ignoreCase[i] ? files[j].equalsIgnoreCase(current)
  -                                  : files[j].equals(current)) {
  +                if (matchCase[i] ? files[j].equals(current)
  +                                 : files[j].equalsIgnoreCase(current)) {
                       return findFile(new File(base, files[j]), pathElements, 
cs);
                   }
               }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to