From: Gabor M. <me...@ho...> - 2004-08-26 16:02:27
|
On Monday 16 August 2004 15:58, Peter Graves wrote: > The patch looks reasonable, but I haven't tested or applied it since it > seems like you need a few more pieces before you have a complete puzzle. Well, it allowed me to deploy abcl in a location independent manner with the lisp sources and their compiled counterparts going into a directory in the classpath and the normal class files into the jar. So I'm not completing this puzzle at the moment. However, deploying the patched abcl on windoze led me to discover a bug: *load-truename* for system files is garbage because url.getPath() returns something like /c:/abcl/lisp/org/armedbear/lisp/load-1.abcl. The first slash is the problem. (10 minutes later) Oh, and there is an unused getPath() in the same file that does just what's needed: Index: src/org/armedbear/lisp/Load.java =================================================================== RCS file: /cvsroot/armedbear-j/j/j/src/org/armedbear/lisp/Load.java,v retrieving revision 1.67 diff -u -r1.67 Load.java --- src/org/armedbear/lisp/Load.java 18 Aug 2004 18:57:35 -0000 1.67 +++ src/org/armedbear/lisp/Load.java 26 Aug 2004 15:52:54 -0000 @@ -177,7 +178,7 @@ if (url != null) { try { in = url.openStream(); - truename = url.getPath(); + truename = getPath(url); } catch (IOException e) { in = null; @@ -379,9 +379,9 @@ if (url != null) { String path = url.getPath(); if (path != null) { - if (System.getProperty("os.name").startsWith("Windows")) { - if (path.length() > 0 && path.charAt(0) == '/') - path = path.substring(1); + if (Utilities.isPlatformWindows() && path.length() > 0 && + path.charAt(0) == '/') { + path = path.substring(1); } return path; } |