[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


I don't like this proposal at all and agree with Fahlman that it
should definitely not be the default behavior.  I also believe that
there are also so many other issues unresolved with MAKE-PATHNAME that
make it practically impossible to use portably, that trying to deal with
case is rather pointless.  These other issues include:

    - how long the strings for each of the components can be
    - what characters are valid in each component string
    - whether punctuation (such as the square brackets around the
      directory specifications for VMS, or the dot before the file type)
      must/can be included in the component string
    - whether the implementation/operating system even supports the
      concept for a particular component (e.g., devices on Unix,
      directories on CTSS)

These issues are handled differently even among different Lisps
running under the same operating system.  As a result, I have avoided
using MAKE-PATHNAME like the plague.  Instead, I use MERGE-PATHNAME to
fiddle with pathname objects created by passing namestrings to
PATHNAME.  If I must hard-wire namestrings into my code, it is with
the understanding that they are specific to a particular operating
system.  I assume that PATHNAME does any canonicalization of case
appropriate for that Lisp implementation and operating system.  This
approach has been working quite well for me and I would be content
to leave things as they are, perhaps adding only stronger wording in
the standard about how nonportable MAKE-PATHNAME is.  Or, perhaps
MAKE-PATHNAME should be removed from the language entirely.