On 9/7/06, Emelyanov Alexey <[EMAIL PROTECTED]> wrote:
>  > 2006-09-06  Andrew W. Nosenko  <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>
>  > [...]
>  > Some words about removed '#define stat _stat':
>  > 1. this define is just wrong because replaces declarations like
>  >     struct stat stat_buff;
>  > by
>  >     struct _stat stat_buff;
>  > and we have either compilation error (if no 'struct _stat' exists) or
>  > unpredictable behavior because of no guarantee that these two
>  > structures are compatible.
>  >
> As a matter of fact, complete replacement of 'stat' on '_stat' was
> proposed, both for function and for structure.
> I assumed, that 'struct _stat' is always used as argument
> for _stat().

You are wrong in 2 things:

1. You assume that if _stat() exists, then 'struct _stat' exists also.
 It's obviously not true on the my system (FreeBSD-5.4).  And
compilation break as consequence.

2. For some, unknown for me reason, you prefer non-standard and
undocumented _stat(?) over standard and well documented stat(2).
Sorry, may be under Windows such behavior have good reason, but why
you do it on the non-windows systems also?????

Why do you thing that '_stat' have the same amount of parameters, the
same or compatible behavior on the _my_ system?  Why do you think that
this symbol points to the function at all and not, for example, some
global variable or mutex? :-)

Yes, in this concrete case I think that this is just an alternative
entry point to the same syscall, but in general case?

> At least, in tested libraries it just so.

You tested on the Windows.  But, windows is not an only one system on
the plannet ;-)

> Can you tell, where were problems with compilation?

Every usage of the 'struct stat' in the xmlIO.c.  Please, read above:
there no 'struct _stat' at all.

> The replacement was convenient, because there is no
> variant of _wstat(), using 'struct stat' as argument.
>
> Without macro 'stat' it should to add more #ifdef / #else.

Sorry, I prefer more ifdefs on the windows-related part, than
compilation error or unpredictable behavior on the Unix.

>
>  > 2. existence of the non-standard function _stat() is not a reason for
>  > replacing by it the standard function stat() that exists also
>  > (please, pay attention that this is '#else' part of the
>  >  '#ifndef HAVE_STAT' condition).
>  >
> If they are equivalent, why not?

Who say to you that they are equivalent?  Please, point me to the any
standard, which have matter on Unix and say that _stat() and stat()
should be equivalent.  OK.  I remove "have matter on Unix"
restriction.  Just point my to the _any_ standard, that [...]

-- 
Andrew W. Nosenko <[EMAIL PROTECTED]>
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to