diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-11-06 18:00:22 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-11-06 18:00:22 (GMT) |
commit | ccf09fae583d23c4bf92d5e2d459ed643e174821 (patch) | |
tree | ee0af0c4673404fe859df036b0e08e81a6a18ede /src/H5private.h | |
parent | 46f683cf14957d39550e826e374e1f3f5a64958c (diff) | |
download | hdf5-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/H5private.h')
-rw-r--r-- | src/H5private.h | 18 |
1 files changed, 17 insertions, 1 deletions
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 |