[comp.sys.apple] P8, lowercase & Sys Disk 5.0

nicholaA@moravian.EDU (05/12/89)

What follows is Matt Deatherage's message to me about ProDOS 8's handling
of lower-case text as of p8 1.8 and System Disk 5.0.

------- Forwarded Message

Date: Wed, 10 May 89 21:16:44 PDT
From: Matt Deatherage <mattd@apple.com>
To: mattd@apple.com, nicholaA%moravian.edu@RELAY.CS.NET
Subject: Re: AppleFest

The two bytes VERSION and MINVERSION in each directory entry have never been
used by ProDOS 8; these are now used to flag lower-case letters in a similar
method to the way AppleWorks uses the auxtype to keep lower-case in document
names.

The only time ProDOS 8 used those fields was in opening subdirectories; P8
v1.8 (on 5.0) no longer does this.  So anyone using lower-case letters in
subdirectory names will require the use of ProDOS 8 1.8 in the 8-bit world
to read them.

--Matt

------- End of Forwarded Message

Ok, this brings me to my next question: What does the 5.0 ProDOS FST do when
you request to create any file with the name "Help" as opposed to "HELP", which
might already exist in that directory?  Does the FST disallow that file
creation, reporting ProDOS/GSOS err $47 -- Duplicate Pathname?

Or, does the FST allow you to create "Help" even though "HELP" exists?  Assuming that the VERSION and MINVERSION fields use 1's to flag lowercase, the
actual directory entry would contain "HELP" and v/MINv of %0111000000000000
(lo/hi) -- so, if this second file is created, what's to tell ProDOS/8 that the
files are different if it doesn't read the v/MINv fields to check for
lowercase? Or does it? (from replies by Dave Lyons, it sounds like the former
rather than the latter).

andy

shrinkit@moravian.edu

dlyons@Apple.COM (David Lyons) (05/16/89)

In article <8905121007.AA05776@batman.moravian.edu> nicholaA@moravian.EDU writes:
>Ok, this brings me to my next question: What does the 5.0 ProDOS FST do when
>you request to create any file with the name "Help" as opposed to "HELP", which
>might already exist in that directory? [...]
>
>andy
>shrinkit@moravian.edu

Experiment in progress....

It seems that you just get a file-already-exists error, and the old
capitalization is retained.  Not sure if this is the most reasonable behavior
or not, but I'll bring it up with the appropriate people.


 --Dave Lyons, Apple Computer, Inc.          |   DAL Systems
   AppleLink--Apple Edition: DAVE.LYONS      |   P.O. Box 875
   AppleLink--Personal Edition: Dave Lyons   |   Cupertino, CA 95015-0875
   GEnie: D.LYONS2 or DAVE.LYONS         CompuServe: 72177,3233
   Internet/BITNET:  dlyons@apple.com    UUCP:  ...!ames!apple!dlyons

   My opinions are my own, not Apple's.

mdavis@pro-sol.cts.com (Morgan Davis) (05/19/89)

Network Comment: to #7251 by pnet01!crash!apple.com!dlyons

> you just get a file-already-exists error, and the old capitalization
> is retained.  Not sure if this is the most reasonable behavious or
> not...

Mac HFS won't allow two files to share the same name (regardless of upper or
lower case).  If you have a file called "OOGA" and try to create a new file
called "Ooga", the Mac will complain.  I guess the GS/OS designers are just
following what the Mac does.

dlyons@Apple.COM (David Lyons) (05/19/89)

In article <8905182336.AA05791@crash.cts.com> pnet01!pro-sol!mdavis@nosc.mil writes:
>Network Comment: to #7251 by pnet01!crash!apple.com!dlyons
>
>> you just get a file-already-exists error, and the old capitalization
>> is retained.  Not sure if this is the most reasonable behavious or
>> not...
>
>Mac HFS won't allow two files to share the same name (regardless of upper or
>lower case).  If you have a file called "OOGA" and try to create a new file
>called "Ooga", the Mac will complain.  I guess the GS/OS designers are just
>following what the Mac does.

The ProDOS FST won't let you have two filenames that are identical except for
case either.  The thing I was trying to get at is this:  If a file called 
SNORKLE already exists and I try to Save As "Snorkle" from my favorite word
processor, one of two things will happen.

(1) The word processor will DESTROY the old file Snorkle, which will destroy
SNORKLE.  Then it will CREATE the new file Snorkle, OPEN it, WRITE to it, and
CLOSE it.  Fine.  We now have a file called Snorkle.

(2) The word processor will try to CREATE the file Snorkle, but it will get
the error "duplicate filename" from GS/OS, since the file SNORKLE already
exists (with a different capitalization).  It will OPEN the file, WRITE to it,
SET_EOF on it (to truncate in case the old file was longer), and finally CLOSE
it.  Fine.  We now have a file called SNORKLE.

Weird, eh?

I don't know what to do about it, other than recommend that applications
DESTROY and reCREATE files if they want to allow the user to change the
capitalization by saving over it.

 --Dave Lyons, Apple Computer, Inc.          |   DAL Systems
   AppleLink--Apple Edition: DAVE.LYONS      |   P.O. Box 875
   AppleLink--Personal Edition: Dave Lyons   |   Cupertino, CA 95015-0875
   GEnie: D.LYONS2 or DAVE.LYONS         CompuServe: 72177,3233
   Internet/BITNET:  dlyons@apple.com    UUCP:  ...!ames!apple!dlyons

   My opinions are my own, not Apple's.

mattd@Apple.COM (Matt Deatherage) (05/22/89)

In article <8905182336.AA05791> pnet01!pro-sol!mdavis@nosc.mil writes:
>Network Comment: to #7251 by pnet01!crash!apple.com!dlyons
>
>> you just get a file-already-exists error, and the old capitalization
>> is retained.  Not sure if this is the most reasonable behavious or
>> not...
>
>Mac HFS won't allow two files to share the same name (regardless of upper or
>lower case).  If you have a file called "OOGA" and try to create a new file
>called "Ooga", the Mac will complain.  I guess the GS/OS designers are just
>following what the Mac does.

Cheap shot, Morgan.  The ProDOS FST will not allow files with the same names
but different capitalization because ProDOS 8 does not know about lower-case
file names.  The file names in the directory are all upper-case, like they
always have been, and the "version/minversion" bytes have been redefined to
be case bits.  

If the FST allowed the same file name, P8 would find two files in the directory
with the same name, as far as it's concerned.  It would then either return
"duplicate file name" errors where inappropriate, or would never find the
second one in the directory entry.  Not to mention that since there is no
P8 "GetDirEntry" call, anyone who accepts file name input in upper and lower
case has to translate it to upper case before searching the directories (under
ProDOS 8), so storing the names in lower case in the directory entry would 
similarly cause them to be mostly inaccessible.

The case bits/no duplicates is a close-to-happy compromise which allows ProDOS
8 to use the files while allowing the ProDOS FST to keep the names in upper
and lower case (which is an FST-specific option that can be turned off, if
your program wants to do so).  Expanding the file system in this way isn'
always possible (see the discussion on forked files).


-----------------------------------------------------------------------------
Matt Deatherage, Apple Computer, Inc. | "The opinions expressed in this tome
Send PERSONAL mail ONLY (please) to:  | should not be construed to imply that
AppleLink PE: Matt DTS  GEnie: AIIDTS | Apple Computer, Inc., or any of its
CompuServe: 76703,3030                | subsidiaries, in whole or in part,
Usenet:  mattd@apple.com              | have any opinion on any subject."
UUCP:  (other stuff)!ames!apple!mattd | "So there."
-----------------------------------------------------------------------------

mdavis@pro-sol.cts.com (Morgan Davis) (05/23/89)

Network Comment: to #7413 by pnet01!crash!apple.com!dlyons

> I don't know what to do about it, other than recommend that applications
> DESTROY and reCREATE files if they want to allow the user to change
> the capitalization by saving over it.

Perhaps the GS/OS GET_INFO/SET_INFO calls should be expanded to include the
capitalization bits field.  Either that, or applications should do this:

        o  Open/Write
        o  Set EOF
        o  Close
        o  Rename

This should cut back on the amount of disk access that a DESTROY/CREATE
procedure would incur.

This assumes, of course, that using CHANGE_PATH will allow you to change
capitalization bits.  As we know, using:

        RENAME SAMPLE,Sample

will currently give you a "FILE EXISTS" error.  But hopefully GS/OS will allow
this case so that you can change the upper/lower case settings.

--Morgan

UUCP: crash!pnet01!pro-sol!mdavis		ProLine:  mdavis@pro-sol
ARPA: crash!pnet01!pro-sol!mdavis@nosc.mil	MCI Mail: 137-6036
INET: mdavis@pro-sol.cts.com			APE, BIX: mdavis

dlyons@Apple.COM (David Lyons) (05/24/89)

In article <8905231516.AA13625@crash.cts.com> pnet01!pro-sol!mdavis@nosc.mil writes:
[...]
>This assumes, of course, that using CHANGE_PATH will allow you to change
>capitalization bits.  As we know, using:
>
>        RENAME SAMPLE,Sample
>
>will currently give you a "FILE EXISTS" error.  But hopefully GS/OS will allow
>this case so that you can change the upper/lower case settings.

Yes, I believe this works fine under the ProDOS FST on 5.0.

 --Dave Lyons, Apple Computer, Inc.          |   DAL Systems
   AppleLink--Apple Edition: DAVE.LYONS      |   P.O. Box 875
   AppleLink--Personal Edition: Dave Lyons   |   Cupertino, CA 95015-0875
   GEnie: D.LYONS2 or DAVE.LYONS         CompuServe: 72177,3233
   Internet/BITNET:  dlyons@apple.com    UUCP:  ...!ames!apple!dlyons

   My opinions are my own, not Apple's.