delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/01/15/13:15:13

Message-Id: <m0vkZZl-0003wJC@main.statsci.com>
To: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
cc: djgpp AT delorie DOT com
Subject: Re: DJGPP w/long file name support
References: <Pine DOT SUN DOT 3 DOT 91 DOT 970115132849 DOT 15171D-100000 AT is>
In-reply-to: Your message of "Wed, 15 Jan 1997 13:40:00 +0200."
<Pine DOT SUN DOT 3 DOT 91 DOT 970115132849 DOT 15171D-100000 AT is>
Reply-to: scott AT statsci DOT com
Mime-Version: 1.0
Date: Wed, 15 Jan 1997 09:56:37 -0800
From: Scott Blachowicz <scott AT statsci DOT com>

Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> 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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019