summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/h5ls.c28
-rw-r--r--tools/h5tools.c8
2 files changed, 31 insertions, 5 deletions
diff --git a/tools/h5ls.c b/tools/h5ls.c
index c79c8d1..52ac9cb 100644
--- a/tools/h5ls.c
+++ b/tools/h5ls.c
@@ -175,7 +175,7 @@ list (hid_t group, const char *name, void __unused__ *op_data)
hid_t obj;
hid_t (*func)(void*);
void *edata;
- int i;
+ int i, nf;
char buf[512], comment[50];
H5G_stat_t statbuf;
struct tm *tm;
@@ -204,6 +204,30 @@ list (hid_t group, const char *name, void __unused__ *op_data)
printf ("}\n");
H5Dclose (space);
H5Aiterate (obj, NULL, list_attr, NULL);
+
+ /* Print additional information about datasets */
+ if (verbose_g>0) {
+ hid_t dcpl = H5Dget_create_plist(obj);
+ if ((nf = H5Pget_nfilters(dcpl))>0) {
+ for (i=0; i<nf; i++) {
+ unsigned filt_flags;
+ H5Z_filter_t filt_id;
+ unsigned cd_values[20];
+ size_t cd_nelmts = NELMTS(cd_values);
+ size_t cd_num;
+ filt_id = H5Pget_filter(dcpl, i, &filt_flags, &cd_nelmts,
+ cd_values);
+ sprintf(comment, "Filter-%d:", i);
+ printf(" %-10s %u %s {", comment, (unsigned)filt_id,
+ filt_flags & H5Z_FLAG_OPTIONAL?"OPT":"");
+ for (cd_num=0; cd_num<cd_nelmts; cd_num++) {
+ printf("%s%u", cd_num?", ":"", cd_values[cd_num]);
+ }
+ printf("}\n");
+ }
+ }
+ H5Pclose(dcpl);
+ }
H5Dclose (obj);
} else if ((obj=H5Gopen (group, name))>=0) {
printf ("Group\n");
@@ -240,7 +264,7 @@ list (hid_t group, const char *name, void __unused__ *op_data)
if (comment[0]) printf(" %-10s %s\n", "Comment:", comment);
}
- if (dump_g && (obj=H5Dopen(group, name))) {
+ if (dump_g && (obj=H5Dopen(group, name))>=0) {
/* Turn on error reporting before dumping the data */
H5Eset_auto(func, edata);
dump_dataset_values(obj);
diff --git a/tools/h5tools.c b/tools/h5tools.c
index fae2251..0472074 100644
--- a/tools/h5tools.c
+++ b/tools/h5tools.c
@@ -293,8 +293,10 @@ h5dump_simple(FILE *stream, const h5dump_t *info, hid_t dset, hid_t p_type)
hs_size, NULL);
H5Sselect_hyperslab(sm_space, H5S_SELECT_SET, zero, NULL,
&hs_nelmts, NULL);
- H5Dread(dset, p_type, sm_space, f_space, H5P_DEFAULT, sm_buf);
-
+ if (H5Dread(dset, p_type, sm_space, f_space, H5P_DEFAULT, sm_buf)<0) {
+ return -1;
+ }
+
/* Print the data */
for (i=0; i<hs_nelmts; i++) {
/* Render the element */
@@ -375,7 +377,7 @@ h5dump_fixtype(hid_t f_type)
hid_t m_type=-1, f_memb;
hid_t *memb=NULL;
char **name=NULL;
- int nmembs, i, j, *ndims=NULL;
+ int nmembs=0, i, j, *ndims=NULL;
size_t size, offset, *dims=NULL, nelmts;
size = H5Tget_size(f_type);