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
