diff options
author | Patrick Lu <ptlu@hawkwind.ncsa.uiuc.edu> | 1999-12-03 19:26:25 (GMT) |
---|---|---|
committer | Patrick Lu <ptlu@hawkwind.ncsa.uiuc.edu> | 1999-12-03 19:26:25 (GMT) |
commit | 78cd5541bf5fbc420e2d2ed09b98e3b976493e7a (patch) | |
tree | 536710db1f9ad0cda97e21195447f7dd4b94be37 /tools | |
parent | 9b2b532898bdd17a52192f1a5e2e659ed8601fac (diff) | |
download | hdf5-78cd5541bf5fbc420e2d2ed09b98e3b976493e7a.zip hdf5-78cd5541bf5fbc420e2d2ed09b98e3b976493e7a.tar.gz hdf5-78cd5541bf5fbc420e2d2ed09b98e3b976493e7a.tar.bz2 |
[svn-r1851] updated the output for the dumper so that it prints out compound types
with out the square braces. also the formatting for the compound types
in the dataset part section has been corrected.
still need to update the expected outputs so there will be some errors until
I get that all checked in...
Diffstat (limited to 'tools')
-rw-r--r-- | tools/h5dump.c | 18 | ||||
-rw-r--r-- | tools/h5tools.c | 156 |
2 files changed, 99 insertions, 75 deletions
diff --git a/tools/h5dump.c b/tools/h5dump.c index 7248b3e..c1cf511 100644 --- a/tools/h5dump.c +++ b/tools/h5dump.c @@ -285,18 +285,24 @@ H5G_stat_t statbuf; nmembers = H5Tget_nmembers(type); for (i = 0; i < nmembers; i++) { - fname = H5Tget_member_name(type, i); mtype = H5Tget_member_type(type, i); ndims = H5Tget_member_dims(type, i, dims, perm); - if (H5Tget_class(mtype) != H5T_STRING) + if (H5Tget_class(mtype) != H5T_STRING)/* && (H5Tget_class(mtype) != H5T_COMPOUND))*/ indentation (indent+COL); - + if (H5Tget_class(mtype) == H5T_COMPOUND) { + indent += COL; + printf("{\n"); + } print_datatype(mtype); - + if (H5Tget_class(mtype) == H5T_COMPOUND) { + indent -= COL; + indentation (indent+COL); + printf("}"); + } printf (" \"%s\"", fname); if (ndims != 1 || dims[0] != 1) { @@ -316,14 +322,14 @@ H5G_stat_t statbuf; break; case H5T_ENUM: printf("H5T_ENUM\n"); - indentation(indent + 3); + indentation(indent + COL); printf("{ "); super = H5Tget_super(type); print_datatype(super); printf(";"); print_enum(type); printf("\n"); - indentation (indent + 3); + indentation (indent + COL); printf("}\n"); break; default: diff --git a/tools/h5tools.c b/tools/h5tools.c index 4c0cd20..f857970 100644 --- a/tools/h5tools.c +++ b/tools/h5tools.c @@ -2166,85 +2166,103 @@ static void display_string * *------------------------------------------------------------------------- */ -static void display_compound_data -(hsize_t hs_nelmts, hid_t p_type, unsigned char *sm_buf, size_t p_type_nbytes, - hsize_t p_nelmts, hsize_t elmtno) { -size_t offset, size, dims[4]; -hsize_t nelmts, dim_n_size=0; -hid_t memb; -int nmembs, i, j, k, ndims, perm[4]; - - if ((indent+COL) > nCols) indent = 0; - - for (i=0; i<(int)hs_nelmts && (elmtno+i) < p_nelmts; i++) { - - nmembs = H5Tget_nmembers(p_type); - - indentation(indent+COL); - printf("{\n"); - - indent+= COL; - for (j=0; j<nmembs; j++) { - - offset = H5Tget_member_offset(p_type, j); - memb = H5Tget_member_type(p_type, j); - size = H5Tget_size(memb); - ndims = H5Tget_member_dims(p_type, j, dims, perm); - if (ndims > 0) dim_n_size = dims[ndims-1]; - else dim_n_size = 1; - for (k=0, nelmts=1; k<ndims; k++) nelmts *= dims[k]; - - indentation(indent+COL); - printf("[ "); - - indent+=2; - switch (H5Tget_class(memb)) { - case H5T_INTEGER: + static void display_compound_data + (hsize_t hs_nelmts, hid_t p_type, unsigned char *sm_buf, size_t p_type_nbytes, + hsize_t p_nelmts, hsize_t elmtno) { + + + size_t offset, size, dims[4]; + hsize_t nelmts, dim_n_size=0; + hid_t memb; + int nmembs, i, j, k, ndims, perm[4]; + + if ((indent+COL) > nCols) indent = 0; + + for (i=0; i<(int)hs_nelmts && (elmtno+i) < p_nelmts; i++) { + + nmembs = H5Tget_nmembers(p_type); + + indentation(indent+COL); + printf("{\n"); + + indent+= COL; + for (j=0; j<nmembs; j++) { + + offset = H5Tget_member_offset(p_type, j); + memb = H5Tget_member_type(p_type, j); + size = H5Tget_size(memb); + ndims = H5Tget_member_dims(p_type, j, dims, perm); + if (ndims > 0) dim_n_size = dims[ndims-1]; + else dim_n_size = 1; + for (k=0, nelmts=1; k<ndims; k++) nelmts *= dims[k]; + + + + + switch (H5Tget_class(memb)) { + case H5T_INTEGER: + indentation(indent+COL); + if (nelmts > 1) { + printf("[ "); + } display_numeric_data - (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0, -1) ; + (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0, -1) ; + if (nelmts > 1) { + printf(" ]"); + } break; - - case H5T_FLOAT: - display_numeric_data - (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0, -1) ; + + case H5T_FLOAT: + indentation(indent+COL); + if (nelmts > 1) { + printf("[ "); + } + display_numeric_data + (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0, -1) ; + if (nelmts > 1) { + printf(" ]"); + } break; + + case H5T_TIME: - case H5T_TIME: break; - - case H5T_STRING: + + case H5T_STRING: + indentation(indent+COL); display_string - (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0 ) ; - break; - - case H5T_BITFIELD: + (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, dim_n_size, 0 ) ; + break; + + case H5T_BITFIELD: - case H5T_OPAQUE: break; - case H5T_COMPOUND: - printf("\n"); - display_compound_data (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, 0); - indentation(indent); - break; - default: break; - - } - indent-=2; - - if ( j == nmembs-1) printf(" ]\n"); - else printf(" ],\n"); - - H5Tclose(memb); - } - indent-= COL; - - indentation(indent+COL); - if ((elmtno+i+1) == p_nelmts) printf("}\n"); - else printf("},\n"); - } + + case H5T_OPAQUE: + + break; + case H5T_COMPOUND: + display_compound_data (nelmts, memb, sm_buf+offset+i*p_type_nbytes, size, nelmts, 0); + indentation(indent); + break; + default: break; + + } -} + if ( j == nmembs-1) printf(" \n"); + else printf(" ,\n"); + + H5Tclose(memb); + } + indent-= COL; + + indentation(indent+COL); + if ((elmtno+i+1) == p_nelmts) printf("}\n"); + else printf("},\n"); + } + + } /*------------------------------------------------------------------------- * Function: print_data * |