Hi Thomas,
Just a minute ago, I committed a fix by replacing the current algorithm with a new one along the lines I described to you before. Your example works, hopefully any other uses too.
Bye,
Erik.
On Mon, Nov 16, 2009 at 9:14 PM, Thomas Russ tar@isi.edu wrote:
There seems to be a bug in TRANSLATE-LOGICAL-PATHNAME when the logical pathname source includes constant elements in addition to wildcards.
Here is an example that demonstrates the problem:
CL-USER(1): (setf (logical-pathname-translations "L") '(("L:NATIVE;**;*.*" "/usr/lisp/abcl/native/**/*.*")))
((#P"L:NATIVE;**;*.*" #P"/usr/lisp/abcl/native/**/*.*"))
CL-USER(2): (translate-logical-pathname "L:NATIVE;TEST;FOO.FASL")
#P"/usr/lisp/abcl/native/native/test/foo.fasl"
;; ERROR. Should be #P"/usr/lisp/abcl/native/test/foo.fasl" ;; ;; With :wild-inferiors, the full directory path is copied instead of ;; just the part after the matching constant part. That results in ;; the "native" element appearing twice. ;;