Date: Fri, 12 Oct 2001 00:50:23 +0200 From: "Eli Zaretskii" Sender: halo1 AT zahav DOT net DOT il To: "Tim Van Holder" Message-Id: <7263-Fri12Oct2001005023+0200-eliz@is.elta.co.il> X-Mailer: Emacs 20.6 (via feedmail 8.3.emacs20_6 I) and Blat ver 1.8.9 CC: acottrel AT ihug DOT com DOT au, djgpp-workers AT delorie DOT com In-reply-to: <000901c15292$e83254c0$6ff8e0d5@pandora.be> (tim DOT van DOT holder AT pandora DOT be) Subject: Re: New perl package References: <000901c15292$e83254c0$6ff8e0d5 AT pandora DOT be> Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > From: "Tim Van Holder" > Date: Thu, 11 Oct 2001 22:25:34 +0200 > > Oh, and I did notice that perl's configure got the names of > ALL extensions right by itself. Normally it finds the B, > I18N and IO packages as b, i18n and io (which is why Laszlo > added a config.over to set those right again). So it seems > that under XP, FNCASE=y is always in effect (or something > like that anyway). For that to happen, XP has somehow to mess with a particular LFN function of Int 21h (assuming you didn't somehow set FNCASE=y and forgot about it ;-). Here are the details. The library functions which need to decide whether to downcase a file name they've got from the OS all run code similar to this: if (!strcmp(_lfn_gen_short_fname(long_name, short_name), long_name)) /* downcase the file name */ The function _lfn_gen_short_fname puts into its second argument the short variant of the file name in its first argument. The short variant is the 8+3 alias, but without the numeric tail, i.e. as if NameNumericTail was set to zero. If these two strings are identical (including the case!), then we decide that this is a DOS file name, and downcase it. (If FNCASE is set to y, this code is bypassed, and all file names are returned exactly as they are recorded in the directory.) _lfn_gen_short_fname calls function 71A8h of Int 21h. So either XP botches that function, or it returns some unexpected result that confuses the logic inside _lfn_gen_short_fname. Please step with a debugger into that function and see what's going on there.