Date: Thu, 22 Mar 2001 09:47:57 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: Martin Str|mberg cc: djgpp AT delorie DOT com Subject: Re: Freedos, INT 0x21, AX=0x71a0 and emacs In-Reply-To: <99b7h7$eg9$1@news.luth.se> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 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.