+ Gareth McCaughan <[EMAIL PROTECTED]>:

| I'm feeling very dim; MERGE-PATHNAMES isn't behaving
| at all as I'd naively expect it to.

I'm no expert either, but in this case, I think I may possess a clue.

| A more self-contained illustration of what confuses me:
| 
|     * (merge-pathnames #p"foo.lisp" #p"cl-library:zog;")
|     
|     #p"/zog/foo.lisp"
| 
| Is this the Right Thing?

I think so, because:

CL-USER> (describe #p"foo.lisp")
#p"foo.lisp" is a structure of type pathname.
HOST: #<lisp::unix-host>.
DEVICE: nil.
DIRECTORY: nil.
NAME: "foo".
TYPE: "lisp".
VERSION: nil.

So the HOST part from #p"foo.lisp" will overrule the HOST part of
#p"cl-library:zog;", and voila, you get no logical pathname
translation.  I think you need to be more verbose:

(merge-pathnames (make-pathname :name "foo" :type "lisp") #p"cl-library:zog;")

- Harald


Reply via email to