Mail Archives: djgpp/1999/10/17/10:51:39
On Thu, 14 Oct 1999, A. Darrow wrote:
> Forgive me for belaboring what is probably obvious
> to you, but how can a truncated DOS filename be
> found by a program reference to a LFN? (e.g.
> how will DJGPP find a file called streambuf.h,
> the program reference, if it resides in dggpp\
> lang\cxx as streambu.h?) Does Windows/DOS
> automatically truncate the call?
Yes, DOS transparently truncates file name to 8+3 limits. This
truncation happens as part of the file-name canonicalization, whereby
the default drive and directory are prepended to a relative file
name. All DOS file-oriented functions call the canonicalization
function before they do anything.
When you run on plain DOS, or disable LFN support on Windows 9X, the
long names are truncated. When LFN support is enabled, DJGPP programs
issue calls to a special set of LFN-aware DOS functions, which are
supported only by Windows 9X, and which do NOT truncate the names
during canonicalization.
> Additionally, the documentation says the
> recommended setup (use in a DOS box) should
> work and it does not on my machine. I really
> do not need the dual setup and I can only
> be alarmed that LFN=y does not seem to work
> on my system.
You shouldn't need the dual setup, if all you want is to run DJGPP
programs from the Windows DOS box with long file-name support
enabled. Anyone who tells you otherwise is mistaken, or doesn't
understand the real problem in your case.
> As an aside, my registry did not contain the
> "NameNumericTail" binary but it did contain
> the entry "PreserveLongNames" ff ff ff ff.
> If that strikes a chord please let me know.
I don't have such an entry, but I don't think it should matter.
- Raw text -