Message-Id: To: Eli Zaretskii cc: djgpp AT delorie DOT com Subject: Re: DJGPP w/long file name support References: In-reply-to: Your message of "Wed, 15 Jan 1997 13:40:00 +0200." Reply-to: scott AT statsci DOT com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 15 Jan 1997 09:56:37 -0800 From: Scott Blachowicz Eli Zaretskii wrote: > > I wrote a quicky > > little program to use the DOS _findfirst() function and IT returns the > > LFNs for me on both Win95 and NT 4.0. > > Did you compile it with DJGPP? If so, please post the code here. Nope - it was MSVC compiled. > `dpmi_int' just issues a real-mode Int 21h, so it's really a DOS call in > disguise. OK. > If NT 4.0 supports Int 21h function 71A0h (Get Volume Info), then programs > compiled with DJGPP v2.01 will support LFN there automagically. In my case, I'm just taking the v2.01 binaries and trying to run them on NT4.0. What I've been doing is connecting to a share exported from a samba-running Unix box and using the DJGPP 'find' command to list the files there to see if I'm getting LFNs or not. Under NT4 I get the 8.3 mangled names that samba produces for me. Under Win95, I get the actual LFNs as I see them from Unix land. > If not, somebody should find out how can a DOS program access LFN on NT > (e.g., how does NT Command.com does it when you type DIR?) and add that > support to low-level libc functions in DJGPP, or at least post the > information so others could add it. Yes! Hmmm..maybe 'dir' is a builtin for the NT cmd.exe and cmd.exe uses the underlying _findfirst() function? At any rate, another [possibly equivalent] question is "how does _findfirst/_findnext do its trick?" I don't suppose there's any way one could somehow detect that the program is being run in an NT environment, then somehow access the system supplied DLLs for getting this info? I don't really know what the pieces/players are here and how they relate to each other (so I'm probably not the right person to be finding/implementing this :-)). I've considered switching to the Cygnus gnu-win32 stuff, but from what I remember, they require POSIX style directory paths (using forward slashes, etc) and I need to use some DOS tools (e.g. MS C, et al) that probably wouldn't care much for filenames like //c/directory/file.c. Hmmm...have the GNU make sources made it to a point where they just build (and work) using native MS tools? Thanx, -- Scott Blachowicz Ph: 206/283-8802x240 Mathsoft (Data Analysis Products Div) 1700 Westlake Ave N #500 scott AT statsci DOT com Seattle, WA USA 98109 Scott DOT Blachowicz AT seaslug DOT org