On Tue, 30 Jul 2002, Rafael Kitover wrote:
Sorry, due to brain-deadness on my part the previous version of this patch didn't build properly. This version is much cleaner and builds properly on linux.
+#ifndef HAVE__FSTAT int _fstat(int fd, struct _stat* buf) +#else +int MSVCRT(_fstat)(int fd, struct _stat* buf) +#endif /* HAVE__FSTAT */
...
+#ifndef HAVE__STAT int _stat(const char* path, struct _stat * buf) +#else +int MSVCRT(_stat)(const char* path, struct _stat * buf) +#endif /* HAVE__STAT */
You should systematically use MSVCRT(_fstat) and MSVCRT(_stat). Your previous patch was better :-)
Basically, we use MSVCRT(xxx) for all symbols for which we may get a conflict with the native C library headers. On Unix systyems, the _xxx functions are never defined (though there may be a couple of exceptions) so we don't use MSVCRT() for readability's sake. But if you find a system where there is a conflict, then it's best to just systematically use MSVCRT() than to use ifdefs that make it even harder to read.
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ Any sufficiently advanced Operating System is indistinguishable from Linux