Mail Archives: djgpp-workers/2001/08/06/08:42:35
> On Sun, 5 Aug 2001, Charles Sandmann wrote:
>
> > OK. More info here, and you are not going to like it :-P
>
> You are right: I don't like it ;-)
Add me to the list.
>
> > I added a call to _get_dev_info for NUL - and it returns 0, it's not
> > a character device ...
>
> Does "ls -l NUL" say that it's a character device?
DJGPP_204 D:\dj204\contrib\touch>set LFN=y
DJGPP_204 D:\dj204\contrib\touch>ls -l nul
-rw-r--r-- 1 AC root 0 Jan 1 1980 nul
DJGPP_204 D:\dj204\contrib\touch>ls -l NUL
-rw-r--r-- 1 AC root 0 Jan 1 1980 NUL
DJGPP_204 D:\dj204\contrib\touch>set LFN=n
DJGPP_204 D:\dj204\contrib\touch>ls -l NUL
crw-r--r-- 1 AC root 0, 0 Aug 6 21:30 NUL>
I can't rememebr my Ui*x days to decode the 'c' in the permissions feilds.
Some interesting diffreences:
1) check out the times as the last one was when I ran the ls command.
2) The ls with LFN=n has an extra 0, in the line
> > Now, thinking about the other problems we had noticed, I then did a
> > set lfn=n ...
> >
> > Now, the write of zero bytes to NUL works fine. And _get_dev_info
> > returns lots of bits (but I don't need them now...)
> >
> > Touch a.a works with lfn=n but fails with lfn not set.
> >
> > Conclusion - LFN support in W2K is breaking things (like truncate,
> > utime, get_dev_info). Handles opened with the LFN calls are not being
> > treated the same as those opened with the old DOS APIs.
>
> This might mean we need an exhaustive sweep of all the handle-related
> DOS calls, to see whether more of them are broken on W2K. In
> particular, those Int 21h file-related functions used by the library
> should be all checked.
>
> (The bugs are probably due to the fact that LFN was added to W2K as a
> hindsight, unlike Windows 9X where it is simply a real-mode entry into
> Windows's own file-handling routines implemented around PM Int 21h.)
>
What's next?
Andrew
- Raw text -