diff -up azureus-5.3.0.0/org/gudy/azureus2/ui/common/util/FileFinder.java.noPF azureus-5.3.0.0/org/gudy/azureus2/ui/common/util/FileFinder.java
--- azureus-5.3.0.0/org/gudy/azureus2/ui/common/util/FileFinder.java.noPF 2014-05-28 21:26:39.000000000 +0200
+++ azureus-5.3.0.0/org/gudy/azureus2/ui/common/util/FileFinder.java 2014-06-07 15:10:21.898380971 +0200
@@ -0,0 +1,80 @@
+package org.gudy.azureus2.ui.common.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.nio.file.Files;
+import java.nio.file.FileSystems;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Path;
+import java.nio.file.PathMatcher;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.util.Collections;
+import java.util.Vector;
+
+import org.gudy.azureus2.core3.logging.LogEvent;
+import org.gudy.azureus2.core3.logging.Logger;
+import org.gudy.azureus2.core3.logging.LogIDs;
+
+/** Replaces http://www.programmers-friend.org/apidoc/index.html */
+public class FileFinder{
+
+ private static class MatchingFileVisitor extends SimpleFileVisitor<Path>{
+
+ private PathMatcher matcher;
+ private Vector<Path> v;
+
+
+ MatchingFileVisitor(PathMatcher matcher) {
+ v = new Vector<Path>();
+ this.matcher = matcher;
+ }
+
+ @Override
+ public FileVisitResult visitFile (Path file, BasicFileAttributes attrs) {
+ if (matcher.matches(file.getFileName())) {
+ v.add(file);
+ }
+ return FileVisitResult.CONTINUE;
+ }
+
+ File[] getMatches() {
+ File[] files=new File[v.size()];
+
+ for (int i=0;i<v.size();i++)
+ files[i]=v.get(i).toFile();
+
+ return files;
+ }
+ }
+
+ public static File[]
+ findFiles(String dir, String pattern, boolean recursive) throws IllegalArgumentException{
+
+ if (dir == null || pattern == null)
+ throw new IllegalArgumentException("dir or pattern null");
+
+ Path rootDir = Paths.get(dir);
+ PathMatcher matcher =
+ FileSystems.getDefault().getPathMatcher("glob:"+pattern);
+
+ MatchingFileVisitor myFileVisitor = new MatchingFileVisitor(matcher);
+
+
+ try{
+ Files.walkFileTree(rootDir,Collections.EMPTY_SET,recursive?Integer.MAX_VALUE : 1, myFileVisitor);
+ }
+ catch (IOException e) {
+ Logger.log(new LogEvent(LogIDs.DISK, "IOError" ,e));
+ }
+
+ return myFileVisitor.getMatches();
+ }
+
+ public static void main(String [] argv) {
+ File[] files = findFiles(".", "*.java", true);
+ for (int i = 0; i<files.length;i++)
+ System.out.println(files[i]);
+ }
+}
diff -up azureus-5.3.0.0/org/gudy/azureus2/ui/common/util/StringPattern.java.noPF azureus-5.3.0.0/org/gudy/azureus2/ui/common/util/StringPattern.java
--- azureus-5.3.0.0/org/gudy/azureus2/ui/common/util/StringPattern.java.noPF 2014-04-11 19:50:21.000000000 +0200
+++ azureus-5.3.0.0/org/gudy/azureus2/ui/common/util/StringPattern.java 2014-06-12 18:28:59.684173761 +0200
@@ -0,0 +1,47 @@
+package org.gudy.azureus2.ui.common.util;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/* Class to replace http://www.programmers-friend.org/apidoc/org/pf/text/StringPattern.html
+ org.pf.text.StringPattern makes * match anything wich is not really standard regexp
+ syntax */
+
+public class StringPattern {
+
+ private Pattern p;
+ private boolean hasWildcard;
+
+ public StringPattern(String sp) {
+
+ hasWildcard = (sp.contains("*") ||
+ sp.contains("?"));
+
+ //fix up pattern to standard regexp syntax, i.e
+ // * -> .*
+ // ? -> ?
+ sp=sp.replaceAll("\\?","\\.");
+ sp=sp.replaceAll("\\*","\\.\\*");
+ p = Pattern.compile(sp);
+ }
+
+ public boolean hasWildcard() {
+ return hasWildcard;
+ }
+
+ public void setIgnoreCase(boolean ignoreCase) {
+ p=Pattern.compile(p.pattern(),ignoreCase?Pattern.CASE_INSENSITIVE:0);
+ }
+
+ public boolean matches(String probe) {
+ return p.matcher(probe).matches();
+ }
+
+ /* test */
+ public static void main(String[] argv) {
+ StringPattern sp = new StringPattern(argv[0]);
+ System.out.println("hasWildcard: "+ sp.hasWildcard());
+ sp.setIgnoreCase(true);
+ System.out.println("matches:"+sp.matches(argv[1]));
+ }
+}
diff -up azureus-5.3.0.0/org/gudy/azureus2/ui/console/commands/AddFind.java.noPF azureus-5.3.0.0/org/gudy/azureus2/ui/console/commands/AddFind.java
--- azureus-5.3.0.0/org/gudy/azureus2/ui/console/commands/AddFind.java.noPF 2012-07-12 22:36:50.000000000 +0200
+++ azureus-5.3.0.0/org/gudy/azureus2/ui/console/commands/AddFind.java 2014-06-20 11:22:07.575584080 +0200
@@ -18,8 +18,8 @@ import java.net.URL;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.OptionBuilder;
import org.gudy.azureus2.ui.console.ConsoleInput;
-import org.pf.file.FileFinder;
-import org.pf.text.StringUtil;
+
+import org.gudy.azureus2.ui.common.util.FileFinder;
import com.aelitis.azureus.core.AzureusCoreException;
@@ -189,7 +189,7 @@ public class AddFind extends OptionsCons
protected String transformLocalArgument(String arg) {
if( arg.startsWith("~/") || arg.equals("~") )
{
- arg = StringUtil.current().replaceAll(arg, "~", System.getProperty("user.home"));
+ arg = arg.replace("~", System.getProperty("user.home"));
}
return arg;
}
diff -up azureus-5.3.0.0/org/gudy/azureus2/ui/console/commands/Set.java.noPF azureus-5.3.0.0/org/gudy/azureus2/ui/console/commands/Set.java
--- azureus-5.3.0.0/org/gudy/azureus2/ui/console/commands/Set.java.noPF 2013-02-15 22:10:14.000000000 +0100
+++ azureus-5.3.0.0/org/gudy/azureus2/ui/console/commands/Set.java 2014-06-20 11:22:32.690520944 +0200
@@ -20,8 +20,9 @@ import java.util.TreeSet;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.util.SHA1Hasher;
import org.gudy.azureus2.ui.common.ExternalUIConst;
+import org.gudy.azureus2.ui.common.util.StringPattern;
import org.gudy.azureus2.ui.console.ConsoleInput;
-import org.pf.text.StringPattern;
+
/**
* command that allows manipulation of Azureus' runtime properties.