In Pine.LNX.4.21.0201142000500.4461-100000@mizar.ping.uio.no, on 01/14/02 at 08:28 PM, Ove Kaaven ovehk@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@crayne.org -----------------------------------------------------------