#1402 Windows-Only: File exclusions are not case insensitive
This commit is contained in:
@ -21,6 +21,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import net.sourceforge.pmd.AbstractConfiguration;
|
import net.sourceforge.pmd.AbstractConfiguration;
|
||||||
import net.sourceforge.pmd.util.FileFinder;
|
import net.sourceforge.pmd.util.FileFinder;
|
||||||
|
import net.sourceforge.pmd.util.FileUtil;
|
||||||
|
|
||||||
import com.beust.jcommander.IStringConverter;
|
import com.beust.jcommander.IStringConverter;
|
||||||
import com.beust.jcommander.Parameter;
|
import com.beust.jcommander.Parameter;
|
||||||
@ -285,10 +286,10 @@ public class CPDConfiguration extends AbstractConfiguration {
|
|||||||
if (excludedFile.isDirectory()) {
|
if (excludedFile.isDirectory()) {
|
||||||
List<File> files = finder.findFilesFrom(excludedFile, languageFilter, true);
|
List<File> files = finder.findFilesFrom(excludedFile, languageFilter, true);
|
||||||
for (File f : files) {
|
for (File f : files) {
|
||||||
exclusions.add(f.getAbsolutePath());
|
exclusions.add(FileUtil.normalizeFilename(f.getAbsolutePath()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
exclusions.add(excludedFile.getAbsolutePath());
|
exclusions.add(FileUtil.normalizeFilename(excludedFile.getAbsolutePath()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -296,7 +297,7 @@ public class CPDConfiguration extends AbstractConfiguration {
|
|||||||
FilenameFilter filter = new FilenameFilter() {
|
FilenameFilter filter = new FilenameFilter() {
|
||||||
public boolean accept(File dir, String name) {
|
public boolean accept(File dir, String name) {
|
||||||
File f = new File(dir, name);
|
File f = new File(dir, name);
|
||||||
if (exclusions.contains(f.getAbsolutePath())) {
|
if (exclusions.contains(FileUtil.normalizeFilename(f.getAbsolutePath()))) {
|
||||||
System.err.println("Excluding " + f.getAbsolutePath());
|
System.err.println("Excluding " + f.getAbsolutePath());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
@ -46,6 +47,20 @@ public final class FileUtil {
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normalizes the filename by taking the casing into account, e.g. on Windows,
|
||||||
|
* the filename is changed to lowercase only.
|
||||||
|
* @param fileName the file name
|
||||||
|
* @return the normalized file name
|
||||||
|
*/
|
||||||
|
public static String normalizeFilename(String fileName) {
|
||||||
|
if (fileName != null && File.separatorChar == '\\') {
|
||||||
|
// windows
|
||||||
|
return fileName.toLowerCase(Locale.ROOT);
|
||||||
|
}
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Collects a list of DataSources using a comma separated list of input file
|
* Collects a list of DataSources using a comma separated list of input file
|
||||||
* locations to process. If a file location is a directory, the directory
|
* locations to process. If a file location is a directory, the directory
|
||||||
|
@ -14,5 +14,6 @@
|
|||||||
|
|
||||||
* [#1370](https://sourceforge.net/p/pmd/bugs/1370/): ConsecutiveAppendsShouldReuse not detected properly on StringBuffer
|
* [#1370](https://sourceforge.net/p/pmd/bugs/1370/): ConsecutiveAppendsShouldReuse not detected properly on StringBuffer
|
||||||
* [#1384](https://sourceforge.net/p/pmd/bugs/1384/): NullPointerException in ConsecutiveLiteralAppendsRule
|
* [#1384](https://sourceforge.net/p/pmd/bugs/1384/): NullPointerException in ConsecutiveLiteralAppendsRule
|
||||||
|
* [#1402](https://sourceforge.net/p/pmd/bugs/1402/): Windows-Only: File exclusions are not case insensitive
|
||||||
|
|
||||||
**API Changes:**
|
**API Changes:**
|
||||||
|
Reference in New Issue
Block a user