>>>>> "Pascal" == Pascal Bourguignon <[EMAIL PROTECTED]> writes:

    Pascal> The translation for PACKAGES maps an absolute logical pathname:

    Pascal>    (#P"PACKAGES:COM;INFORMATIMAGO;**;*.*.*" 

    Pascal> to a relative physical pathname:

    Pascal>                                              #P"**/*.*.~*~")

    Pascal> Unfortunately, when I translate a pathname:
 
    Pascal>    (translate-logical-pathname
    Pascal>           "PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.LISP")

    Pascal> I get an absolute pathname: 

    Pascal>    #P"/common-lisp/utility.lisp"

    Pascal> I wanted:

    Pascal>    #P"common-lisp/utility.lisp"

Ah, I see.  Hmm.  I guess the question is what is

(translate-pathname 
   "PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.LISP"
   #P"PACKAGES:COM;INFORMATIMAGO;**;*.*.*"
   #P"**/*.*.~*~")

supposed to return.  I'll have to read up on that.  The comments in
the code say that :relative or :absolute is taken from the source
directory.  Don't know if that's right or not.

    Pascal> (I would have been happy too if the relative physical pathname 
generated by:

    Pascal>        (make-pathname
    Pascal>           :directory (append 
    Pascal>                       (let ((d (pathname-directory 
*DEFAULT-PATHNAME-DEFAULTS*)))
    Pascal>                         (or d '(:relative)))
    Pascal>                       '(:wild-inferiors))
    Pascal>           :name :wild :type :wild :version :wild))))

*default-pathname-defaults* is #p"", which is slightly different from
#p"./".  #p"" has a directory slot of nil, but #p"./" has a directory
slot of '(:relative).

    Pascal>  would have been #P"./**/*.*.~*~"  to more clearly mark the 
_relative_ property

But #P"./**/*.*" is the same object as #p"**/*.*", so it might be
possible to cause the object to be printed as #p"./**/*.*".

Ray


Reply via email to