On Wed, 13 Aug 2003, Ryan Underwood wrote:

> On Tue, Aug 12, 2003 at 08:43:34PM -0300, Alejandro N�stor Vargas wrote:
> > I've just installed dosemu-1.1.5.6, it's workign right but in some cases
> > the files created by the dos are created as uppercase in the linux
> > filesystem. In particular, I can create directories with md and they are
> > created as lowercase, but if I uses mkdir form a Turbo Pascal program, it
> > is created as uppercase. The same occurs from inside the ide of Turbo
> > Pascal: the files (source codes) are created as uppercase. I searched for a
> > configuration for this but I coudn't find any reference of this.
>
> If you are using a lredir drive, the relevant code is in dosext/mfs/mfs.c,
> in dos_fs_redirect().  It looks like the file is created verbatim to the DOS
> create command; if the DOS programmer happened to use all uppercase or
> some mixed case in his program, the file is actually created with that
> case on the unix side, even though on the dos side it is all treated as
> universal case.

The DOS (non-LFN) create command always passes pure upper case to DOSEMU
(via int2f/ax=11xx). This used to be lowercased by some function in mfs.c
so that a lower case file was created. However by introducing LFN support
some MFS functions had to be changed to preserve case and hence some
"strlowerDOS" calls were removed. Now the strlowerDOS happens at a later
time but I think I forgot it for some cases.

> I agree that having mixed case filenames under unix tends to be an
> annoyance.  Perhaps this should be made into a configurable option.

It isn't mixed case that is a problem. LFNs preserve case by design, that
shouldn't be configurable.

The thing that is arbitrary is whether DOS SFNs are pure uppercase or pure
lowercase in the Linux filesystem. To be consistent with the view the
"msdos" and "vfat" filesystems give us they were always created lowercase
in DOSEMU.

Samba has these options (as a comparison):

a)   "mangle case = yes/no" controls if names that have characters that
   aren't of the "default" case are mangled. For example, if this is yes
   then a name like "Mail" would be mangled. Default no.

b)   "case sensitive = yes/no" controls whether filenames are case
   sensitive. If they aren't then Samba must do a filename search and
   match on passed names. Default no.

c)   "default case = upper/lower" controls what the default case is for new
   filenames. Default lower.

d)   "preserve case = yes/no" controls if new files are created with the
   case that the client passes, or if they are forced to be the "default"
   case. Default Yes.

e)   "short preserve case = yes/no" controls if new files which conform to
   8.3 syntax, that is all in upper case and of suitable length, are
   created upper case, or if they are forced to be the "default" case.
   This option can be use with "preserve case = yes" to permit long
   filenames to retain their case, while short names are lowered. Default
   Yes.

DOSEMU now uses a) no b) no c) lower d) yes e) no (but broken)
I'm not sure which of these options make sense for DOSEMU -- DOS apps
really expect case insensitivity so perhaps b)=yes is useless.

Bart

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to