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
