Mail Archives: djgpp/2001/03/22/14:16:46
Martin Stromberg <eplmst AT lu DOT erisoft DOT se> wrote:
: Eli Zaretskii (eliz AT is DOT elta DOT co DOT il) wrote:
: : On Wed, 21 Mar 2001, Martin Str|mberg wrote:
: : > : In other words, Emacs is simply a program that checks whether LFN is
: : > : supported in many places in its application code, while other programs
: : > : you tested do not do that.
: : >
: : > Ok. But it still seems wasteful. Can't the msdos-long-file-names function
: : > be done like this C:
: : >
: : > Bool msdos-long-file-names(void)
: : > {
: : > static int lfn = -1;
: : >
: : > if( lfn < 0)
: : > {
: : > lfn = result_from_nice_call_to_DOZE();
: : > }
: : >
: : > return( lfn );
: : > }
: : This is already done by the library. Except that, in FreeDOS's case,
: : I understand that 71A0h doesn't return ENOSYS, so the library thinks
: : something else went wrong, and doesn't cache the return value. See
: : the source of _use_lfn; I think we discussed this a while ago, and you
: : said the problem is going to be solved in the next release of FreeDOS.
: Now I'm really confused. Unsupported INT 0x21 calls should set AL to
: zero according to you and other persons. How is FreeDOS going to be
: able to set AX to an error value in that case?
: Hmm... (Digging in the use_lfn() source...) Ok. You mean
: _get_volume_info() instead 71A0h above returning ENOSYS. I think with
: the FreeDOS kernel I tried _get_volume_info() really returns ENOSYS
: (or at least should), but I have to check it.
Ok, now I've checked and my FreeDOS kernel do make _get_volume_info()
set errno to ENOSYS and return 0.
So if I understood you correctly there ought to be bug somewhere (in
DJGGP or emacs) because there should only one calls to it in that case
but I see several.
Right,
MartinS
- Raw text -