On 6/2/10 4:27 PM, Alessio Stalla wrote:
Index: src/org/armedbear/lisp/Pathname.java =================================================================== --- src/org/armedbear/lisp/Pathname.java (revisione 12737) +++ src/org/armedbear/lisp/Pathname.java (copia locale) @@ -232,6 +232,7 @@ if (s == null) { return; } + namestring = s; if (s.equals(".") || s.equals("./") || (Utilities.isPlatformWindows && s.equals(".\"))) { directory = new Cons(Keyword.RELATIVE); @@ -429,7 +430,6 @@ s = System.getProperty("user.home").concat(s.substring(1)); } } - namestring = s; if (Utilities.isPlatformWindows) { if (s.length() >= 2 && s.charAt(1) == ':') { device = new SimpleString(s.charAt(0));
I think the second part of the patch is good, as Pathname.init() shouldn't be setting the namestring at all. The getNamestring() accessor should construct the value on its first invocation.
So I would be led to think that the first part of the patch is wrong. At best, it has no effect on the action on the algorithim.
It might be better to transform all '' to '/' after the check for UNC paths (lines 244-267). Not sure how Windows drive letters as devices are being handled here.