From: Jan P. <jp...@us...> - 2006-09-20 19:14:11
|
Update of /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv31094/src/org/epic/debug Modified Files: CGITarget.java Log Message: Merged from 'stable'. Index: CGITarget.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug/CGITarget.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- CGITarget.java 21 Aug 2006 22:45:13 -0000 1.19 +++ CGITarget.java 20 Sep 2006 19:14:07 -0000 1.20 @@ -230,7 +230,8 @@ assert "file".equalsIgnoreCase(brazilUrl.getProtocol()) : "brazil_mini.jar must reside in the file system"; - cp.add(new File(new URI(brazilUrl.toExternalForm()))); + + cp.add(urlToFile(brazilUrl)); Bundle bundle = PerlDebugPlugin.getDefault().getBundle(); URL binUrl = bundle.getEntry("/bin"); @@ -243,7 +244,7 @@ // 'bin' folder exists = we're running inside of // a hosted workbench - cp.add(new File(new URI(binUrl.toExternalForm()))); + cp.add(urlToFile(binUrl)); } else { @@ -258,8 +259,8 @@ assert path.startsWith("file:"); assert path.endsWith(".jar!/"); - cp.add(new File(new URI( - path.substring(0, path.length()-2)))); + URL jarUrl = new URL(path.substring(0, path.length()-2)); + cp.add(urlToFile(jarUrl)); } else { @@ -268,7 +269,7 @@ // org.epic.debug was deployed as a directory: // add this directory to the classpath - cp.add(new File(new URI(dirUrl.toExternalForm()))); + cp.add(urlToFile(dirUrl)); } } return cp; @@ -428,6 +429,23 @@ return true; } + private File urlToFile(URL url) + { + String urlString = url.toExternalForm(); + + if (urlString.matches("^file:/[A-Za-z]:/.*$")) + { + // Windows URL with volume letter: file:/C:/foo/bar/blah.txt + return new File(urlString.substring(6)); + } + else + { + // Unix URLs look like this: file:/foo/bar/blah.txt + assert urlString.matches("^file:/[^/].*$"); + return new File(urlString.substring(5)); + } + } + private static class BrazilProps { private StringBuffer props; |