DOSFS_ToFCBFormat Bug Fix

ccrayne at crayne.org ccrayne at crayne.org
Mon Jan 14 20:32:59 CST 2002


In <Pine.LNX.4.21.0201142000500.4461-100000 at mizar.ping.uio.no>, on
01/14/02 
   at 08:28 PM, Ove Kaaven <ovehk at ping.uio.no> said:

:Then again, perhaps DOS 7+ really do parse FCBs differently than e.g. DOS
:3.x did.

As it turns out, DOS 7 does parse FCBs the same way as DOS always has, and
wine's implementation is indeed broken, but not in the way which I
previously thought. However, before I get into that, thank you Ove, for
forcing me into digging deeper into this issue.

What actually happens is that most calls to "parse filename" are made with
the parse options (al) set to 1, which means to scan off any leading
separators, but otherwise to parse the file name as wine currently does.

However, the DIR function of command.com wants "*" to be parsed as "*.*",
so it formats the FCB name field to all question marks, and calls "parse
filename" with the parse options set to 0eh, which means that the parse
routine must not fill in defaults for the drive ID, the filename, or the
filename extension.

Unfortunately, DOSFS_ToDosFCBFormat is not even aware that the parse flags
are part of the calling convention. Therefore, the correct fix is to
modify DOSFS_ToDosFCBFormat to honor the flags.  I am already aware that
DOSFS_ToDosFCBFormat is also called by DOSFS_ReadDir, DOSFS_FindUnixName,
and INT21_FindFirst, but I would like your thoughts on what other issues I
need to consider.

-- Chuck Crayne
-----------------------------------------------------------
ccrayne at crayne.org
-----------------------------------------------------------





More information about the wine-devel mailing list