diff options
Diffstat (limited to 'tools/h5repack/h5repack_filters.c')
-rw-r--r-- | tools/h5repack/h5repack_filters.c | 73 |
1 files changed, 38 insertions, 35 deletions
diff --git a/tools/h5repack/h5repack_filters.c b/tools/h5repack/h5repack_filters.c index 0e7a557..c1c001c 100644 --- a/tools/h5repack/h5repack_filters.c +++ b/tools/h5repack/h5repack_filters.c @@ -122,7 +122,7 @@ int aux_assign_obj(const char* name, /* object name from traverse lis { /* assign the global filter */ tmp.nfilters=1; - tmp.filter[0]=options->filter_g; + tmp.filter[0]=options->filter_g[0]; } /* if all */ else { @@ -144,9 +144,12 @@ int aux_assign_obj(const char* name, /* object name from traverse lis if (options->all_filter) { - /* assign the global filter */ - tmp.nfilters=1; - tmp.filter[0]=options->filter_g; + int k; + + /* assign the global filters */ + tmp.nfilters=options->n_filter_g; + for ( k = 0; k < options->n_filter_g; k++) + tmp.filter[k]=options->filter_g[k]; } if (options->all_layout) { @@ -424,36 +427,36 @@ int apply_filters(const char* name, /* object name from traverse list */ int print_filters(hid_t dcpl_id) { - int nfilters; /* number of filters */ - unsigned filt_flags; /* filter flags */ - H5Z_filter_t filtn; /* filter identification number */ - unsigned cd_values[20]; /* filter client data values */ - size_t cd_nelmts; /* filter client number of values */ - size_t cd_num; /* filter client data counter */ - char f_name[256]; /* filter name */ - char s[64]; /* temporary string buffer */ - int i; - - /* get information about filters */ - if((nfilters = H5Pget_nfilters(dcpl_id)) < 0) - return -1; - - for(i = 0; i < nfilters; i++) { - cd_nelmts = NELMTS(cd_values); - filtn = H5Pget_filter2(dcpl_id, (unsigned)i, &filt_flags, &cd_nelmts, - cd_values, sizeof(f_name), f_name, NULL); - - f_name[sizeof(f_name)-1] = '\0'; - sprintf(s, "Filter-%d:", i); - printf(" %-10s %s-%u %s {", s, - f_name[0] ? f_name : "method", - (unsigned)filtn, - 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"); - } - - return 0; + int nfilters; /* number of filters */ + unsigned filt_flags; /* filter flags */ + H5Z_filter_t filtn; /* filter identification number */ + unsigned cd_values[20]; /* filter client data values */ + size_t cd_nelmts; /* filter client number of values */ + size_t cd_num; /* filter client data counter */ + char f_name[256]; /* filter name */ + char s[64]; /* temporary string buffer */ + int i; + + /* get information about filters */ + if((nfilters = H5Pget_nfilters(dcpl_id)) < 0) + return -1; + + for(i = 0; i < nfilters; i++) { + cd_nelmts = NELMTS(cd_values); + filtn = H5Pget_filter2(dcpl_id, (unsigned)i, &filt_flags, &cd_nelmts, + cd_values, sizeof(f_name), f_name, NULL); + + f_name[sizeof(f_name)-1] = '\0'; + sprintf(s, "Filter-%d:", i); + printf(" %-10s %s-%u %s {", s, + f_name[0] ? f_name : "method", + (unsigned)filtn, + 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"); + } + + return 0; } |