Mail Archives: djgpp-workers/2001/08/06/09:47:55
----- Original Message -----
From: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>
To: "Charles Sandmann" <sandmann AT clio DOT rice DOT edu>
Cc: <acottrel AT ihug DOT com DOT au>; <djgpp-workers AT delorie DOT com>
Sent: Monday, August 06, 2001 9:34 PM
Subject: Re: Windows 2000 /dev/null permission query
> > From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
> > Date: Sun, 5 Aug 2001 17:05:22 -0500 (CDT)
> >
> > 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.
>
> Does function 7160/CL=01 (get short 8+3 name for a long file name)
> work reliably on W2K? If so, we could selectively modify functions
> like utime that open files and get trouble on W2K, to convert the long
> name to a short name and then use non-LFN functions to open the file.
> Only on W2K/XP, of course.
Added a highly modified version of _truename in to my touch example and only
called the new function. Under Win2K the call worked on my two examples. The
test and output was:
DJGPP_204 D:\dj204\contrib\touch>dir ac*.txt
06/08/2001 10:31p 22 acnewfilename.txt
06/08/2001 10:39p 8 acnewfilename2.txt
DJGPP_204 D:\dj204\contrib\touch>touch
True name of acnewfilename.txt is D:\dj204\contrib\touch\ACNEWF~1.TXT
True name of acnewfilename2.txt is D:\dj204\contrib\touch\ACNEWF~2.TXT
DJGPP_204 D:\dj204\contrib\touch>dir acnewf~1.txt
06/08/2001 10:31p 22 acnewfilename.txt
DJGPP_204 D:\dj204\contrib\touch>dir acnewf~2.txt
06/08/2001 10:39p 8 acnewfilename2.txt
The function also worked fine on Win98.
> We could also do this universally (on W2K/XP), in all functions that
> open files, but for that we will have first to see if opening a file
> with a legacy DOS function disables some LFN features when we pass a
> handle from a non-LFN open. For example, do functions 5704 and 5705
> work on a handle open by a non-LFN DOS call?
Not tested. Tomorrow
> Another idea might be to use `dup' to duplicate a handle from an LFN
> open call, then see if that handle has the same problems with function
> 5701 as the original handle. (Since `dup' doesn't have an LFN analog,
> maybe the duplicated handle is created as a non-LFN one, who knows?)
Not tested. Tomorrow
- Raw text -