delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-workers-bounces using -f |
From: | Martin Str|mberg <ams AT ludd DOT luth DOT se> |
Message-Id: | <200201100509.GAA25876@father.ludd.luth.se> |
Subject: | Re: LFN32 optimizations [was: Re: Proposed lstat.c patch for Win2000/XP device bit fix |
In-Reply-To: | <10201100202.AA16147@clio.rice.edu> from Charles Sandmann at "Jan 9, 2002 08:02:37 pm" |
To: | djgpp-workers AT delorie DOT com |
Date: | Thu, 10 Jan 2002 06:09:54 +0100 (MET) |
X-Mailer: | ELM [version 2.4ME+ PL54 (25)] |
MIME-Version: | 1.0 |
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 |
According to Charles Sandmann: > Seemingly working example. I would suggest moving _is_ff_LFN() macro to > dir.h and using it in access.c also. > > *** lstat.c_ Tue Dec 11 21:28:06 2001 > --- lstat2.c Wed Jan 9 19:59:22 2002 > *************** int __findfirst(const char *, struct ffb > *** 128,133 **** > --- 128,135 ---- > int __findnext(struct ffblk *); > > #define ALL_FILES (FA_RDONLY|FA_HIDDEN|FA_SYSTEM|FA_DIREC|FA_ARCH) > + #define _is_ff_LFN(ff_blk) ( *(long *)(&(ff_blk.lfn_magic[0])) == \ > + 'L'+('F'<<8)+('N'<<16)+('3'<<24) && *(short *)(&(ff_blk.lfn_magic[4])) == '2' ) I see now. I swapped the bytes in the short. May I suugest two things: Make the last part "*(short *)(&(ff_blk.lfn_magic[4])) == '2'+(0<<8)" so we check the nul explicitly for the expressiveness. Perhaps this macro should be called "_is_ff_LFN32", in case we would need a _is_ff_LFN macro sometime. Then I wonder why you're looking for LFN32 and not LFN? Is it only on FAT32 this bug exists? Right, MartinS
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |