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

Re: Issue: PATHNAME-COMPONENT-CASE (version 4)

> Date: Thu, 25 May 89 14:54 EDT
> From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
>     I don't understand the motivation for this.  There is no way to
>     specify a pathname component that is literally all uppercase or all
>     lowercase.
> That is correct, in the :COMMON representation there is no way to say
> those things.  That's because those are not portable concepts.  You use
> the :LOCAL representation to do things like that.

Have I misunderstood the proposal?  I thought that the :LOCAL option
was supposed to indicate that the implementations should do whatever
case conversion that's appropriate for the local file system
regardless of the original case.  If it's not supposed to do any
translation at all, perhaps it ought to be renamed to :NONE or
something more obvious. 

> :CASE :COMMON is for portable programs that want to conform to the local 
> conventions of the local file system rather than imposing their own 
> conventions.

To me, it still seems like the decision is whether to canonicalize the
case or not, and that having the decision also depend on the case of
characters within the string is only needless complexity.  I
understand your argument about the monocase pathnames, but I don't
think there's anything wrong with case canonicalization making some
filenames inaccessible.  You simply specify that you don't want to
canonicalize the filename in such a situation.

> This could be a useful feature in its own right, but note that it is
> no help at all for retrieving pathname components in a form that is
> independent of the local file system, which is what the :CASE argument
> to the PATHNAME-xxx accessors proposed here is for.

I guess I'm confused about what problem this proposal is really trying
to address.  Originally I thought that this proposal was just trying
to specify a mechanism for controlling whether the case of pathnames
are canonicalized, but now it looks like what you really want is some
way for pathnames to "remember" their original case even after they've
been canonicalized, so that when you extract the components and plug
them into some other pathname, you can get the original case back if
you ask for it.  I just don't see how this is going to make it possible
to use MAKE-PATHNAME in a portable way.