Date: Sun, 25 Aug 1996 18:43:07 +0200 (MET DST) From: Mark Habersack Reply-To: grendel AT ananke DOT amu DOT edu DOT pl To: Eli Zaretskii cc: djgpp AT delorie DOT com Subject: Re: Next DJGPP release (was: Emacs for DOS) In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Sun, 25 Aug 1996, Eli Zaretskii wrote: > >On Sun, 25 Aug 1996, Mark Habersack wrote: > >> On Sun, 25 Aug 1996, Eli Zaretskii wrote: >> >> >Sh-utils, Emacs, maybe also Make) will be added. The long filenames >> >support should be fixed. Again, ask DJ for more complete info, I'm not >> ^^^^What exactly? I am writing a library to allow access to LFNs even under >> DOS 3.3. It will allow any application to read & create LFNs (although > >> creation feature is a bit problemmatic. It requires messing up with DOS >> internals and also makes all the disk maintanance tools for DOS <7 unusable.). >> Anyway, I think such a support (even read-only) would be make some things >> easier. Opinions? Maybe this should make it into DJGPP libc? > >I'm not sure this is worth the hassle. Messing with DOS internals will >typically bloat libc quite a lot (see `stat' and `fstat' that do some of >such magic). Also, without universal support for this feature in other >(non-DJGPP) programs you are likely to run into filename conflicts. >Anyway, just my $0.02. Well the problem with filenames is just that Win95 LFN use separate directory entries to store "chunks" of the entire file name. These parts have the attribute byte set to 0x0F, which is invalid in pre 7.0 DOS. This is the cause of all the problems. My library generates both 8.3 and LFN entries. 8.3 names are created using algorithm of DOS 7, not Win95 (i.e. they do not contain the ~X tail, unless it is required). So, having that, the programmer may be sure that filenames created with the library will be visible by both LFN-aware and other programs. As to non-DJGPP programs, I was thinking about writing a TSR to provide the "missing" interface. Most DOS programs that know about LFNs detect LFN support by invoking one of the LFN functions of DOS 7. Some programs just look for DOS 7 but not calling the Get Dos Version function, but by invoking int 2F with DOS 7 ID (see Ralf Brown's Interrupt list). So, it is possible to provide plain DOS support for LFNs. From what I've seen in many postings, there are many people who would benefit from having such a support. It is sure that not all of us use Win95, and many of us won't ever use it. Yet LFNs are blessing for users and programmers. Until Micro$oft won't provide support for LFNs in DOS (will they ever do?) such a library might be needed. Regards, Mark /************************************************************/ /** Maybe it was infatuation or the thrill of a chase? **/ /** Maybe you were always beyond my reach and my heart **/ /** was playing safe? ***********/ /** But was that love in your eyes I saw, **/ /** or the reflection of mine? **/ /** I'll never really know for sure, **/ /** You never really gave me time! **/ /** Won't you give me that time? **/ /** "Cindirella Search" **/ /********************************/ Visit my homepage: http://ananke.amu.edu.pl/~grendel