msdos/int21 CREAT special cases

Ferenc Wagner wferi at tba.elte.hu
Wed May 28 05:26:00 CDT 2003


Andreas Mohr <andi at rhlx01.fht-esslingen.de> writes:

> On Mon, May 26, 2003 at 01:04:49PM +0200, Ferenc Wagner wrote:
>
>> Volume label creation should fail, not create a regular file.
>> Similarly for file names ending in a slash.
>
> Hmm, and is there a reason to not do it in _lcreat16() instead?
> Or is _lcreat16() really "clever" enough to handle volume labels
> "properly" if called directly?
> Somehow I doubt it... ;)
> Or in fact you could walk further up the chain and maybe find that even
> _lcreat() should be the function to have that check instead...
> (or, for that matter, even CreateFileA and thus CreateFileW...)

Yes, this would be reasonable.  This was Duane's original
idea, actually (part of the code is from him).  However, the
tests I submitted some days ago into the kernel32 file tests
show that _lcreat() actually behaves the same in Wine and
Windows: masks off the not allowed flag bits and does not
care about trailing slashes.  On NT4 at least.  Since I have
no access to recent conformance testing results on different
versions, I went with what I had.  I did not test CreateFile
or _lcreat16(), though.
                                                Feri.



More information about the wine-devel mailing list