Date: Wed, 21 Mar 2001 21:42:22 +0200 From: "Eli Zaretskii" Sender: halo1 AT zahav DOT net DOT il To: Martin Str|mberg Message-Id: <1438-Wed21Mar2001214222+0200-eliz@is.elta.co.il> X-Mailer: Emacs 20.6 (via feedmail 8.3.emacs20_6 I) and Blat ver 1.8.6 CC: djgpp AT delorie DOT com In-reply-to: <99asp4$9a2$1@news.luth.se> (message from Martin Str|mberg on Wed, 21 Mar 2001 18:43:48 +0000 (UTC)) Subject: Re: Freedos, INT 0x21, AX=0x71a0 and emacs References: <99asp4$9a2$1 AT news DOT luth DOT se> Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > From: Martin Str|mberg > 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.