I have different behaviour between LispWorks and CMUCL on logical
pathnames and I wonder what is the "correct" thing.
Assume the following pathname declaration:
(setf (logical-pathname-translations "tmp")
'(("**;*.*" "/tmp/**/*.*")))
Lispworks and CMUCL do not disagree with this:
(translate-logical-pathname "tmp:t1")
#P"/tmp/t1"
but CMUCL breaks on
(translate-logical-pathname "tmp:.t1")
Parse error in namestring: Expecting a file name, got #\..
tmp:.t1
^
[Condition of type COMMON-LISP::NAMESTRING-PARSE-ERROR]
Restarts:
0: [ABORT] Return to Slime toplevel.
1: [ABORT] Return to Top-Level.
LispWorks feels fine about it:
CL-USER 9 > (translate-logical-pathname "tmp:.t1")
#P"/tmp/.t1"
SBCL feels fine with both versions.
Is it a bug in CMUCL?
Regards
Friedrich
>
>but CMUCL breaks on
>(translate-logical-pathname "tmp:.t1")
>
>
>Is it a bug in CMUCL?
>
I'd say yes.
I can't find anything in the Hyperspec to indicate
that a name component of a logical pathname namestring must be
present in this (or any) circumstance.