Mail Archives: djgpp/2001/03/21/17:02:01
Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> wrote:
:> From: Martin Str|mberg <ams AT father DOT ludd DOT luth DOT se>
:> Newsgroups: comp.os.msdos.djgpp
:> Date: Wed, 21 Mar 2001 18:43:48 +0000 (UTC)
:>
:> FreeDOS does not support LFN so I find that every program generates
:> one INT 0x21, AX=0x71a0 at start-up. This is expected.
:>
:> However when I start emacs there are many (more than 25) calls to this
:> function. That seems like a waste. Is emacs designed to behave like
:> this or is there a bug lurking somewhere?
: It's not a bug. The library startup code issues one call to 71A0h, to
: find out whether LFN is supported, and then caches the result to be
: used by all library functions.
: But Emacs also needs this information in its application code, to know
: whether a certain feature which requires long file names can or cannot
: be used. There's a special function, msdos-long-file-names, which
: returns nil or t depending on whether LFN is or isn't supported. What
: you see is the 71A0h calls that function emits.
: 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 );
}
Right,
MartinS
- Raw text -