[svn-r13916] Purpose: Fix MinGW inconsistency

Description:
Windows does not accept the buffer size parameter of setvbuf to be less than 2.  Previously, we had our fix split between two files, H5private.h and the Windows H5pubconf.h.  This was a problem for MinGW, because it generates its own H5private.h.  This moves the fix out of H5pubconf.h and into H5private.h.

This shouldn't affect other platforms.

Tested:
MinGW on WinXP
This commit is contained in:
Scott Wegner 2007-06-26 11:23:59 -05:00
parent 0490b17800
commit 21134e48e1
2 changed files with 4 additions and 10 deletions

View File

@ -772,8 +772,12 @@ int HDremove_all(const char * fname);
#define HDsetpgid(P,PG) setpgid(P,PG)
#define HDsetsid() setsid()
#define HDsetuid(U) setuid(U)
/* Windows does not permit setting the buffer size to values
less than 2. */
#ifndef _WIN32
#define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,Z)
#else
#define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,(Z>1?Z:2))
#endif
#define HDsigaction(N,A) sigaction(N,A)
#define HDsigaddset(S,N) sigaddset(S,N)

View File

@ -188,16 +188,6 @@ in the file file_io.win32.c and including it on the projects
/* Check exception handling functions during data conversions */
#define H5_WANT_DCONV_EXCEPTION 1
#if _MSC_VER >=1400
/* visual studio 2005 doesn't support size of setvbuf to be less thn 1,This is a hacking, we would like to wait
visual studio 2005 to fix this problem.
*/
#define HDsetvbuf(F,S,M,Z) (((Z)>1)?setvbuf(F,S,M,Z):setvbuf(F,S,M,2))
#else
#define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,Z)
#endif
/* uncomment the following line if we want parallel HDF5 support */