summaryrefslogtreecommitdiffstats
path: root/src/H5detect.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-11-02 17:58:28 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-11-02 17:58:28 (GMT)
commit254ae8d43d796c02aedfb7393726a80be14b95d5 (patch)
treea8be7fe29a273fb0ae4c21e41625755ae6ae88f9 /src/H5detect.c
parenta125ee351ba738a61d35755fbb2880b011ac6649 (diff)
downloadhdf5-254ae8d43d796c02aedfb7393726a80be14b95d5.zip
hdf5-254ae8d43d796c02aedfb7393726a80be14b95d5.tar.gz
hdf5-254ae8d43d796c02aedfb7393726a80be14b95d5.tar.bz2
[svn-r859] Changes since 19981030
---------------------- ./MANIFEST Added new Pablo files HDF5record_RT.h and ProcIDs.h ./acconfig.h ./configure [REGENERATED] ./configure.in ./src/H5.c ./src/H5Vprivate.h ./src/H5config.h.in [REGENERATED] ./src/H5private.h ./src/H5public.h ./test/big.c Added more configuration stuff for the Win32 environment. Removed all the #ifdef WIN32 from the source and replaced them with OS-independent stuff. Specifics follow: Check for non-Posix.1 `st_blocks' field in `struct stat' which is used by the big file test to decide if the file system supports holes. If the st_blocks field isn't present then we just skip the test. Configure checks for <io.h> <sys/resource.h> <sys/time.h> and <winsock.h> and defines HAVE_IO_H, HAVE_SYS_RESOURCE_H, HAVE_SYS_TIME_H and HAVE_WINSOCK_H when they're found. Configure checks whether both <sys/time.h> and <time.h> can be included and defines SYS_TIME_WITH_TIME if so. Otherwise include only <sys/time.h> or <time.h> even if both exist. Configure checks sizeof(__int64) and defines SIZEOF___INT64 to the result or to zero if __int64 isn't defined. The source uses `long long' in preference to `__int64'. Removed null WIN32 definition for `inline' since such a definition already exists in H5config.h Protected gettimeofday() calls in debugging code with HAVE_GETTIMEOFDAY instead of WIN32. ./src/H5F.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fsec2.c ./src/H5Fstdio.h ./src/H5P.c ./src/H5Tconv.c ./src/H5private.h Removed #include of system files from library source files and consolodated them into H5private.h where they're protected by various configuration macros (most of them were duplicated there already anyway). ./test/big.c ./test/chunk.c ./test/cmpd_dset.c ./test/dsets.c ./test/dtypes.c ./test/extend.c ./test/external.c ./test/fillval.c ./test/flush1.c ./test/flush2.c ./test/iopipe.c ./test/links.c ./test/mount.c ./test/mtime.c ./test/overhead.c ./test/ragged.c ./test/shtype.c ./test/unlink.c Protected system #include's with #ifdef's from H5config.h. Undefined NDEBUG since some of the tests rely on assert() to check return values. Removed WIN32 definitions for __unused__ since this can be controlled by the definition of HAVE_ATTRIBUTE in H5config.h ./test/testhdf5.h Removed the CLEAN_CMD definition because we no longer use it. Albert's cleanup() functions replaced it. ./test/fillval.c Initialized auto hid_t variables to fix warnings in error recovery code when data flow analysis is turned on in compilers. ./test/h5tools.c Initialized an auto variable to fix a compiler warning. ./test/chunk.c ./test/ragged.c The WIN32 had some unsigned variables changed to signed because the compiler generates warnings when coercing unsigned to double(?). I changed them back to unsigned because they really are unsigned quantities. If this the change was just to shut up extraneous warnings then perhaps a compiler flag can do the same; otherwise if the compiler generates bad code then we should supply a patch file instead messing up source code with bug work-arounds. ./src/H5detect.c Protected system #include's with #ifdef's from H5config.h thereby removing a WIN32. If getpwuid() doesn't exist (HAVE_GETPWUID) then we assume that `struct passwd' doesn't exist either (we don't really need it in that case). The H5T_NATIVE_LLONG and H5T_NATIVE_ULLONG are defined in terms of `long long' or else `__int64' or else `long' depending on what's available. ./src/H5Flow.c ./src/H5Ofill.c Added __unused__ to some function arguments that aren't used when assertions are turned off. ./src/H5V.c Changed an auto variable name in some hand-inlined code to get rid of a warning about the variable shadowing a previous auto.
Diffstat (limited to 'src/H5detect.c')
-rw-r--r--src/H5detect.c66
1 files changed, 41 insertions, 25 deletions
diff --git a/src/H5detect.c b/src/H5detect.c
index bbd9ba9..9979135 100644
--- a/src/H5detect.c
+++ b/src/H5detect.c
@@ -30,19 +30,33 @@ static const char *FileHeader = "\n\
*-------------------------------------------------------------------------
*/
#undef NDEBUG
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#if !defined(WIN32)
-#include <unistd.h>
-#include <sys/time.h>
-#include <pwd.h>
+#include <H5config.h>
+
+/* See H5private.h for how to include files */
+#ifdef STDC_HEADERS
+# include <assert.h>
+# include <math.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
#endif
-#include <H5config.h>
+#ifdef HAVE_UNISTD_H
+# include <sys/types.h>
+# include <unistd.h>
+#endif
+#ifdef _POSIX_VERSION
+# include <pwd.h>
+#endif
+
+#if defined(TIME_WITH_SYS_TIME)
+# include <sys/time.h>
+# include <time.h>
+#elif defined(HAVE_SYS_TIME_H)
+# include <sys/time.h>
+#else
+# include <time.h>
+#endif
#define MAXDETECT 16
@@ -801,11 +815,15 @@ print_header(void)
time_t now = time(NULL);
struct tm *tm = localtime(&now);
- struct passwd *pwd = NULL;
char real_name[30];
char host_name[256];
int i;
const char *s;
+#ifdef HAVE_GETPWUID
+ struct passwd *pwd = NULL;
+#else
+ int pwd = 1;
+#endif
static const char *month_name[] =
{
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
@@ -895,7 +913,7 @@ bit.\n";
if (pwd || real_name[0] || host_name[0]) {
printf(" *\t\t\t");
if (real_name[0]) printf("%s <", real_name);
-#if !defined(WIN32)
+#ifdef HAVE_GETPWUID
if (pwd) fputs(pwd->pw_name, stdout);
#endif
if (host_name[0]) printf("@%s", host_name);
@@ -953,23 +971,21 @@ main(void)
DETECT_I(long, LONG, d[nd]); nd++;
DETECT_I(unsigned long, ULONG, d[nd]); nd++;
-#if SIZEOF_LONG == SIZEOF_LONG_LONG
+#if SIZEOF_LONG_LONG > SIZEOF_LONG
+ DETECT_I(long long, LLONG, d[nd]); nd++;
+ DETECT_I(unsigned long long, ULLONG, d[nd]); nd++;
+#elif SIZEOF___INT64 > SIZEOF_LONG
+ DETECT_I(__int64, LLONG, d[nd]); nd++;
+ DETECT_I(unsigned __int64, ULLONG, d[nd]); nd++;
+#else
/*
- * If sizeof(long)==sizeof(long long) then assume that `long long' isn't
- * supported and use `long' instead. This suppresses warnings on some
- * systems.
+ * This architecture doesn't support an integer type larger than `long'
+ * so we'll just make H5T_NATIVE_LLONG the same as H5T_NATIVE_LONG.
*/
DETECT_I(long, LLONG, d[nd]); nd++;
DETECT_I(unsigned long, ULLONG, d[nd]); nd++;
-#else
-#if defined(WIN32)
- DETECT_I(__int64, LLONG, d[nd]); nd++;
- DETECT_I(unsigned __int64, ULLONG, d[nd]); nd++;
-#else
- DETECT_I(long long, LLONG, d[nd]); nd++;
- DETECT_I(unsigned long long, ULLONG, d[nd]); nd++;
-#endif
#endif
+
DETECT_F(float, FLOAT, d[nd]); nd++;
DETECT_F(double, DOUBLE, d[nd]); nd++;