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


        Posted-Date: Fri, 20 Jan 89 19:43:16 -0500
        Date: Fri, 20 Jan 89 19:43:16 -0500
        From: andrew@linc.cis.upenn.edu

        We have had some problems with file-name translations and have
        had to make some changes in the way logical and physical
        pathnames are parsed.  Specifically, we've had to change
        logical names so that all case information is retained (instead
        of upcasing by default).  Also, the flavor LOWER-CASE-PREFERRED-MIXIN
        which is mixed into unix pathnames is broken.
        (try (send #p"<unix-host>:/foo/foo.lisp" :new-name "bar")
     	(send #p"<unix-host>:/foo/foo.lisp" :new-name "BAR")
        (notice the case inversion)

        We've fixed this to work properly along with allowing things
        like README to be accessed (names with all caps).

     This case-inversion behavior is fully documented, not a bug.  It is
     described in the "Streams, Files, and I/O" manual; look for
     "interchange case".  The purpose is to make things like

     	(copy-file "<VMS-host>:[DIR]FOO.LISP" "<unix-host>:/dir/")

     work as expected (i.e., the result file should be named "foo.lisp",
     not "FOO.LISP").  The :NEW-RAW-NAME message is intended for your

I don't think that you caught the whole point.  The flavor in which
the above inversion occurs in called LOWERCASE-PREFERRED-MIXIN,
implying that things in uppercase will translate to lower. The
bug is that when this flavor is handed things in lowercase,
they are translated to upper.  This behavior is not at all desirable,
and is something which I call a bug.