summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-11-06 18:00:22 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-11-06 18:00:22 (GMT)
commitccf09fae583d23c4bf92d5e2d459ed643e174821 (patch)
treeee0af0c4673404fe859df036b0e08e81a6a18ede /src
parent46f683cf14957d39550e826e374e1f3f5a64958c (diff)
downloadhdf5-ccf09fae583d23c4bf92d5e2d459ed643e174821.zip
hdf5-ccf09fae583d23c4bf92d5e2d459ed643e174821.tar.gz
hdf5-ccf09fae583d23c4bf92d5e2d459ed643e174821.tar.bz2
[svn-r879] Changes since 19981105
---------------------- ./configure.in ./acconfig.h ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added checks for functions, structs, constants, and header files used in h5ls.c to determine the output width with various Windows compilers and Unix variants. Added check for <sys/stat.h> and defined HAVE_SYS_STAT_H. Included <sys/stat.h> in H5private.h outside the Posix.1 #include's section. ./src/H5RA.c Less aggressive about failing -- rather returns false, which allows type detection to continue. ./src/h5ls.c Data types are displayed for datasets and named data types when `-v' or `--verbose' is specified on the command-line. The algorithm is a little different than the dumper because we're trying to be human-friendly, not necessarily machine-friendly. * Any data type which matches a native C type gets printed something like `native double'. * A floating point type that matches one of the IEEE standard types but not one of the native types gets printed like `IEEE 64-bit big-endian float'. * Other floating point values have information about sign bit location; exponent size, location, and bias; and significand size, location, and normalization. * Padding and offsets are displayed for types that have padding (precision != size), including internal padding for some floating point data types. * Non-native integer types are displayed like `32-bit little-endian unsigned integer'. * Compound data types have each member displayed including the member name, byte offset within the struct, dimensions, index permutation, and data type. * String types are displayed like `256-byte null-terminated ASCII string'. * References are displayed like `8-byte unknown reference' until the reference interface stabilizes a little. * All other types including types not yet defined will be printed like `4-byte class-9 unknown'. The dimensionality of scalar datasets is printed like `{SCALAR}' instead of just `{}'. If external raw files are used to store a dataset then the offsets, sizes, and file names of each are printed if `-v' or `--verbose' was given on the command-line. If an object is found and h5ls can't determine the object type then it still tries to print the number of hard links, the OID, and any comment that might be present if `-v' or `--verbose' was specified. If the `-d' or `--dump' switch is turned on then ragged arrays will report that the data can only be dumped by dumping the component datasets explicitly. I'm not planning to implement this since we're going to eventually change the whole way ragged arrays are stored. Compound data values do not have the component names displayed by default when `-v' or `--verbose' is turned on. Instead, the names can be displayed with `-l' or `--label'. The output width is determined by the first rule that applies: * If the `-wN', `-w N' or `--width=N' switch appeared on the command line then use N for the output width. * Query the OS for the tty width in a highly unportable way borrowed from GNU `less' depending on what functions and data structures were found during configuration (if any): _getvideoconfig(), gettextinfo(), _srcsize(), ioctl(), GetConsoleScreenBufferInfo(), struct videoconfig, struct text_info, the TIOCGWINSZ ioctl, the TIOCGETD ioctl. * If the `COLUMNS' environment variable is set then use its value. * Use the value 80. Just for kicks, run Mark and Jim's test_vbt and then say `h5ls -dlsv test.vbt'. You can also try it on the various *.h5 files in the test/example directories. ./config/linux Removed turning on parallel by default on Robb's macine.
Diffstat (limited to 'src')
-rw-r--r--src/H5RA.c4
-rw-r--r--src/H5config.h.in33
-rw-r--r--src/H5private.h18
3 files changed, 52 insertions, 3 deletions
diff --git a/src/H5RA.c b/src/H5RA.c
index 11d02e9..1f05424 100644
--- a/src/H5RA.c
+++ b/src/H5RA.c
@@ -431,8 +431,8 @@ H5RA_isa(H5G_entry_t *ent)
}
/* Is `raw' a dataset? */
- if (H5G_find(ent, "raw", NULL, &d_ent)<0 ||
- (exists=H5D_isa(&d_ent))<0) {
+ if (H5G_find(ent, "raw", NULL, &d_ent)<0) HRETURN(FALSE);
+ if ((exists=H5D_isa(&d_ent))<0) {
HRETURN_ERROR(H5E_DATASET, H5E_NOTFOUND, FAIL, "not found");
} else if (!exists) {
HRETURN(FALSE);
diff --git a/src/H5config.h.in b/src/H5config.h.in
index a08c7e2..88b268d 100644
--- a/src/H5config.h.in
+++ b/src/H5config.h.in
@@ -59,6 +59,18 @@
/* Define if `struct stat' has the `st_blocks' field */
#undef HAVE_STAT_ST_BLOCKS
+/* Define if `struct text_info' is defined */
+#undef HAVE_STRUCT_TEXT_INFO
+
+/* Define if `struct videoconfig' is defined */
+#undef HAVE_STRUCT_VIDEOCONFIG
+
+/* Define if the ioctl TIOCGETD is defined */
+#undef HAVE_TIOCGETD
+
+/* Define if the ioctl TIOCGWINSZ is defined */
+#undef HAVE_TIOCGWINSZ
+
/* The number of bytes in a __int64. */
#undef SIZEOF___INT64
@@ -92,6 +104,15 @@
/* Define if you have the BSDgettimeofday function. */
#undef HAVE_BSDGETTIMEOFDAY
+/* Define if you have the GetConsoleScreenBufferInfo function. */
+#undef HAVE_GETCONSOLESCREENBUFFERINFO
+
+/* Define if you have the _getvideoconfig function. */
+#undef HAVE__GETVIDEOCONFIG
+
+/* Define if you have the _scrsize function. */
+#undef HAVE__SCRSIZE
+
/* Define if you have the difftime function. */
#undef HAVE_DIFFTIME
@@ -110,9 +131,15 @@
/* Define if you have the getrusage function. */
#undef HAVE_GETRUSAGE
+/* Define if you have the gettextinfo function. */
+#undef HAVE_GETTEXTINFO
+
/* Define if you have the gettimeofday function. */
#undef HAVE_GETTIMEOFDAY
+/* Define if you have the ioctl function. */
+#undef HAVE_IOCTL
+
/* Define if you have the lseek64 function. */
#undef HAVE_LSEEK64
@@ -128,9 +155,15 @@
/* Define if you have the <io.h> header file. */
#undef HAVE_IO_H
+/* Define if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
/* Define if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H
+/* Define if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
diff --git a/src/H5private.h b/src/H5private.h
index 2769269..3ef8c1d 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -39,12 +39,20 @@
# include <unistd.h>
#endif
#ifdef _POSIX_VERSION
-# include <sys/stat.h>
# include <sys/wait.h>
# include <pwd.h>
#endif
/*
+ * The `struct stat' data type for stat() and fstat(). This is a Posix file
+ * but often apears on non-Posix systems also. The `struct stat' is required
+ * for hdf5 to compile, although only a few fields are actually used.
+ */
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+/*
* If a program may include both `time.h' and `sys/time.h' then
* TIME_WITH_SYS_TIME is defined (see AC_HEADER_TIME in configure.in).
* On some older systems, `sys/time.h' includes `time.h' but `time.h' is not
@@ -72,6 +80,14 @@
#endif
/*
+ * Unix ioctls. These are used by h5ls (and perhaps others) to determine a
+ * resonable output width.
+ */
+#ifdef HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#endif
+
+/*
* Win32 is severely broken when it comes to ANSI-C and Posix.1 compliance.
*/
#ifdef HAVE_IO_H