diff options
author | Robb Matzke <matzke@llnl.gov> | 1999-03-30 11:38:34 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1999-03-30 11:38:34 (GMT) |
commit | f003dead4d1701aedd7833354ede73c6eb93a971 (patch) | |
tree | e64999eb9d666aedd808f1c91f4a2be8676d6881 /tools/h5ls.c | |
parent | 804fae33ced79c63a2c7fa2adc8537c80597fb33 (diff) | |
download | hdf5-f003dead4d1701aedd7833354ede73c6eb93a971.zip hdf5-f003dead4d1701aedd7833354ede73c6eb93a971.tar.gz hdf5-f003dead4d1701aedd7833354ede73c6eb93a971.tar.bz2 |
[svn-r1169] ./configure.in
./configure [REGENERATED]
./src/H5D.c
./src/H5O.c
Removed H5AC, H5B, and H5T from the default list of packages
to debug (because they're pretty expensive debugging), and
added H5O. Also fixed a bug for undefined variable in H5D when
H5S debugging is turned on but H5T debugging is turned off.
./config/conclude.in
Fixed installation of header files for building in a directory
other than the source directory. This fixes a bug where
H5config.h wasn't being installed.
./src/H5.c
./src/H5A.c
./src/H5D.c
./src/H5F.c
./src/H5G.c
./src/H5I.c
./src/H5Iprivate.h
./src/H5P.c
./src/H5R.c
./src/H5RA.c
./src/H5S.c
./src/H5T.c
./src/H5TB.c
./src/H5Tprivate.h
./src/H5Z.c
./src/H5detect.c
./src/H5private.h
Changed the way the library shuts down again. Now it handles
cycles between packages and isn't so sensitive to dependencies
between packages. A package might shut down only to be
restarted to process a request from some other package being
shut down. Loops are detected after 100 iteractions and the
shutdown is aborted with a message on standard error. This
also makes it a lot easier to debug.
./src/H5A.c
Fixed H5A_write() and H5A_read() so they pass a non-null
background buffer to the conversion functions. This is
necessary when an attribute has a compound data type.
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
Reindented new Win32 stuff.
./src/H5Odtype.c
Fixed a bug when enumeration types are used in a compound data
type. The byte pointer wasn't incremented after the type
information was written.
./tools/h5ls.c
Compound data types display their total size because it's not
always obvious from looking at the members.
Scalar attributes show their space as `scalar' instead of
`{}'.
The index value is not printed for attributes that have only a
few values. Instead the word `Data:' is printed on the first
line of attribute data.
Named types display their data type only if verbose output was
requested.
Diffstat (limited to 'tools/h5ls.c')
-rw-r--r-- | tools/h5ls.c | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/tools/h5ls.c b/tools/h5ls.c index d1c3552..45e0deb 100644 --- a/tools/h5ls.c +++ b/tools/h5ls.c @@ -641,6 +641,7 @@ display_cmpd_type(hid_t type, int indent) char *name=NULL; /*member name */ int ndims; /*dimensionality */ size_t dims[8]; /*dimensions */ + size_t size; /*total size of type in bytes */ int perm[8]; /*index permutation */ hid_t subtype; /*member data type */ int i, j, n; /*miscellaneous counters */ @@ -684,7 +685,9 @@ display_cmpd_type(hid_t type, int indent) display_type(subtype, indent+4); H5Tclose(subtype); } - printf("\n%*s}", indent, ""); + size = H5Tget_size(type); + printf("\n%*s} %lu byte%s", + indent, "", (unsigned long)size, 1==size?"":"s"); return TRUE; } @@ -1036,28 +1039,36 @@ list_attr (hid_t obj, const char *attr_name, void __unused__ *op_data) printf(" Attribute: "); n = display_string(stdout, attr_name, TRUE); - printf("%*s", MAX(0, 10-n), ""); + printf("%*s", MAX(0, 9-n), ""); if ((attr = H5Aopen_name(obj, attr_name))) { space = H5Aget_space(attr); type = H5Aget_type(attr); /* Data space */ ndims = H5Sget_simple_extent_dims(space, size, NULL); - printf(" {"); - for (i=0; i<ndims; i++) { - HDfprintf(stdout, "%s%Hu", i?", ":"", size[i]); - nelmts *= size[i]; + if (0==ndims) { + puts(" scalar"); + } else { + printf(" {"); + for (i=0; i<ndims; i++) { + HDfprintf(stdout, "%s%Hu", i?", ":"", size[i]); + nelmts *= size[i]; + } + puts("}"); } - puts("}"); /* Data type */ - printf(" Type: "); + printf(" Type: "); display_type(type, 15); putchar('\n'); /* Data */ memset(&info, 0, sizeof info); - info.idx_fmt = " (%s) "; + if (nelmts<5) { + info.idx_fmt = " Data: "; + } else { + info.idx_fmt = " (%s) "; + } info.line_ncols = width_g; if (label_g) info.cmpd_name = "%s="; if (string_g && 1==H5Tget_size(type) && @@ -1322,9 +1333,11 @@ group_list2(hid_t grp, const char *name) static herr_t datatype_list2(hid_t type, const char __unused__ *name) { - printf(" %-10s ", "Type:"); - display_type(type, 15); - printf("\n"); + if (verbose_g>0) { + printf(" %-10s ", "Type:"); + display_type(type, 15); + printf("\n"); + } return 0; } |