Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Tue, 27 May 2003 11:25:42 -0400 From: Peter Davis To: cygwin AT cygwin DOT com Subject: Re: Behavior of stat() changed from NT to Win2000/XP Message-ID: <20030527152542.GB19036@bitstream.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.4i On Tue, May 27, 2003 at 11:19:30AM -0400, Igor Pechtchanski wrote: > On Tue, 27 May 2003, Peter Davis wrote: > > > Corinna Vinschen wrote in news:20030526141311 DOT GK875 AT cygbert DOT vinschen DOT de: > > > > > On Mon, May 26, 2003 at 09:58:11AM -0400, Peter Davis wrote: > > >> On Windows NT, the Cygwin stat function returns a non-zero value in > > >> the st_size field when called on a directory. However, in Windows > > >> 2000 and Windows XP, this same function returns 0 for st_size for a > > >> directory. This change in behavior has broken some features of mutt, > > >> and possible other programs as well. > > >> [...] > > >> Is there some Cygwin setting or configuration option that controls > > >> this? > > > > > > That's Windows, actually. This value is returned for directories > > > by the FindFile routines. Nothing we can do about it. However, if > > > mutt depends on the st_size of a directory, that's a problem in mutt. > > > > So this is a case where Cygwin fails to emulate *nix behavior. I assume > > it works correctly on various *nix implementations. You may consider > > that a Windows issue, but if the purpose of Cygwin is to provide a > > porting environment, then that's a shortcoming of Cygwin. > > > > The mutt developers aren't particularly concerned with Cygwin or > > Windows, so they don't regard this as an issue. I don't see why this is > > a mutt problem. They assume that stat() works correctly. I'm not sure > > who's responsible for the Cygwin build of mutt, or for including it in > > Cygwin at all, but that's something to be considered in the future. > > > > I'm guessing there's no problem with mbox mail folders, since they're > > just ordinary files. The problem comes in because maildir and MH > > formats us directories as mail folders. > > > > BTW, if anyone knows how to build mutt under Cygwin, I'm *dying* to find > > out. I can work around the stat() problem, but I have not succeeded in > > building a mutt for Cygwin that doesn't crash on opening certain > > messages. > > > > Thanks, > > -pd > > The Single Unix Specification has this to say about the st_size field of > the stat structure: > > off_t st_size file size in bytes (if file is a regular file) > ^^^^^^^^^^^^^^^^^^^^^^^^^ > This means, IMO, that the value for directories is unspecified, and a > portable application cannot rely on it at all. Ok, I stand corrected. Thanks, Igor. In fact, the mutt code seems to do most of the size checking in code which can be conditionally compiled or not. For some reason, this particular test was not conditionalized. Thanks, -pd -- -------- Peter Davis Funny stuff at http://www.pfdstudio.com The artwork formerly shown as prints List of resources for children's writers and illustrators at: http://www.pfdstudio.com/cwrl.html -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/