delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-workers-bounces using -f |
From: | sandmann AT clio DOT rice DOT edu (Charles Sandmann) |
Message-Id: | <10201090451.AA14916@clio.rice.edu> |
Subject: | Re: Proposed lstat.c patch for Win2000/XP device bit fix |
To: | djgpp-workers AT delorie DOT com |
Date: | Tue, 8 Jan 2002 22:51:19 -0600 (CST) |
Cc: | eliz AT is DOT elta DOT co DOT il (Eli Zaretskii), |
tim DOT van DOT holder AT pandora DOT be (Tim Van Holder) | |
In-Reply-To: | <10201090418.AA14643@clio.rice.edu> from "Charles Sandmann" at Jan 08, 2002 10:18:46 PM |
X-Mailer: | ELM [version 2.5 PL2] |
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 |
Of course, I should add the check for _os_trueversion == 0x532 also. Sigh. > Seems to work in quick testing: > > *** lstat.c_ Tue Dec 11 21:28:06 2001 > --- lstat.c Tue Jan 8 22:09:36 2002 > *************** stat_assist(const char *path, struct sta > *** 600,605 **** > --- 600,614 ---- > if ( !(ff_blk.ff_attrib & 0x07) ) /* no R, H or S bits set */ > statbuf->st_mode |= WRITE_ACCESS; > > + /* Windows 2000 and XP - devices don't set attributes correctly */ > + if( (_djstat_fail_bits & _STFAIL_TRUENAME) && !ff_blk.ff_fsize && > + !ff_blk.ff_ftime && (ff_blk.ff_fdate == 33) && > + !ff_blk.lfn_ctime && (ff_blk.lfn_cdate == 33) && > + !ff_blk.lfn_atime && (ff_blk.lfn_adate == 33) && > + !strcmp(ff_blk.lfn_magic,"LFN32") && > + /* strlen(ff_blk.ff_name) == 3 && */ ff_blk.ff_attrib == 0x20) > + ff_blk.ff_attrib = 0x40; > + > /* Sometimes `_truename' doesn't return X:/FOO for character > devices. However, FindFirst returns attribute 40h for them. */ > if (ff_blk.ff_attrib == 0x40)
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |