james anderson <[EMAIL PROTECTED]> writes:

> is there some logic behind this.? does proper practice require that 
> that all arguments are upcased before attempting logical pathname 
> operations? (note above that an attempt to provide both upper- and 
> lowercase patterns was canonicalized away.)

According to ANSI, lowercase characters in a logical pathname
namestring are translated to uppercase.  See CLHS 19.3.1.1.7

I'd always believed there's a corresponding restriction on the
contents of LPN components such that a LPN with lowercase in any of
its components has undefined behaviour, but I can't find the reference
for that one today, nor any reference to whether MAKE-PATHNAME 
should do case folding or not.  Although you could read 19.3.1.1.8
that way, I suppose.

Pathnames are, in my experience, one of the least well-defined parts
of the standard, and LPNs vie with COMPILE-FILE-PATHNAME for the
darkest corner of this grey area.

As a user, I (a) try to avoid LPNs anyway, (b) when I must use them,
use uppercase exclusively.  As an implementor, my vote is for having
MAKE-PATHNAME fold case.

In SBCL -
* (logical-pathname "CL-LIBRARY:CODE;BASE;PARAMETERS.bin")
#.(CL:LOGICAL-PATHNAME "CL-LIBRARY:CODE;BASE;PARAMETERS.BIN")
* (make-pathname :host "CL-LIBRARY" :name "foo" :type "bar")
#.(CL:LOGICAL-PATHNAME "CL-LIBRARY:FOO.BAR")


-dan

-- 

   http://www.cliki.net/ - Link farm for free CL-on-Unix resources 

Reply via email to