Subject: Win'95 attributes support
To: None <netbsd-announce@NetBSD.ORG>
From: Wolfgang Solfrank <>
List: netbsd-announce
Date: 11/29/1995 16:13:27
NetBSD-current now has support for Win'95 long filenames and Win'95 
separate creation/modification/access timestamps. If used, the behaviour 
is similar to the way Win'95 handles them. I.e., the names are written
with mixed case, but case is ignored on lookup. Timestamps are written
into previously reserved areas.

There are three possible ways now to mount your DOS filesystem:

1. "mount -t msdos -o -l /dev/xxx /dir" will force support of Win'95 long
filenames. I.e., files on the filesystem with long names will be displayed
with this long name, and new files will be written with long names (as
if created under Win'95).

2. "mount -t msdos -o -s /dev/xxx /dir" will not display any long filenames
on files from the filesystem, and will not generate entries having long
names. Note, that contrary to the old behaviour, this includes a translation
from/to DOS-850 code page to/from ISO-8859-1.

3. "mount -t msdos -o -9 /dev/xxx /dir" works similar to the second version.
In addition, it will ignore any Win'95 long filenames even when deleting
or renaming files and also will not write separate timestamps.

On filesystems having long filenames, this latter option will result in
dangling long filename entries. There is a procedure in place (using a one
byte checksum) to detect matching long/shortname entries (the same as is used
in Win'95), but as one might guess from the size of the checksum, this is
far from perfect. 

The Win'95 scandisk routine can repair the damage, if the checksum doesn't
match. Otherwise, the long name will be attached to the new entry that happens
to be placed into the directory slot of the deleted file.

To bring this into perspective relative to different DOS/Windows versions,
1. is equivalent to running ordinary Win'95, 2. is equivalent to run
the DOS mode of Win'95 (DOS Version 7.0, not in a DOS window), and
3. is equivalent to running any older version of DOS/Windows.

If you mount a msdos filesystem without specifying -l, -s or -9, msdosfs
will try to figure out whether there are any long filename entries in the
root directory. If one is found, it will use -l, otherwise -s. This procedure
obviously results in empty directories being populated with short names only.
To force long filenames, you have to use the -l option.