This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Behavior of stat() changed from NT to Win2000/XP


On Tue, 27 May 2003, Peter Davis wrote:

> Corinna Vinschen <corinna-cygwin@cygwin.com> wrote in 20030526141311.GK875@cygbert.vinschen.de:">news:20030526141311.GK875@cygbert.vinschen.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.
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster."  -- Patrick Naughton


--
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]