From 2c3a0ba8808769e5138e57195b42191b91bafbe2 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 8 Jan 2002 11:12:03 -0500 Subject: [svn-r4797] Purpose: Bug fix Description: The 'ssize_t' is not defined in Windows. Solution: Bring over chunk of code from development branch to define it, if it's not defined by the system. Platforms tested: FreeBSD 4.5 (sleipnir) --- src/H5public.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/H5public.h b/src/H5public.h index d85df43..18527e1 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -100,6 +100,27 @@ typedef int herr_t; typedef unsigned int hbool_t; typedef int htri_t; +/* Define the ssize_t type if it not is defined */ +#if H5_SIZEOF_SSIZE_T==0 +/* Undefine this size, we will re-define it in one of the sections below */ +#undef H5_SIZEOF_SSIZE_T +#if H5_SIZEOF_SIZE_T==H5_SIZEOF_INT +typedef int ssize_t; +# define H5_SIZEOF_SSIZE_T H5_SIZEOF_INT +#elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG +typedef long ssize_t; +# define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG +#elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG_LONG +typedef long long ssize_t; +# define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG_LONG +#elif H5_SIZEOF_SIZE_T==H5_SIZEOF___INT64 +typedef __int64 ssize_t; +# define H5_SIZEOF_SSIZE_T H5_SIZEOF___INT64 +#else /* Can't find matching type for ssize_t */ +# error "nothing appropriate for ssize_t" +#endif +#endif + /* * The sizes of file objects have their own types defined here. If large * sizes are enabled then use a 64-bit data type, otherwise use the size of -- cgit v0.12