mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
[svn-r9542] Purpose:
Bug fix (#264) Description: h5dump did not print attribute data in ASCII format when -r is used. Solution: Added the ability to print in ASCII for Attributes Data also. Added a test for printing Attributes with -r option. Platforms tested: H5committested. Also in heping. Misc. update: Update MANIFEST.
This commit is contained in:
parent
49db749a01
commit
e52f682ced
@ -1846,6 +1846,8 @@ dump_subsetting_header(struct subset_t *sset, int dims)
|
||||
* Programmer: Ruey-Hsia Li
|
||||
*
|
||||
* Modifications: pvn, print the matrix indices
|
||||
* Albert Cheng, 2004/11/18
|
||||
* Add --string printing for attributes too.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -1941,6 +1943,9 @@ dump_data(hid_t obj_id, int obj_data, struct subset_t *sset, int pindex)
|
||||
if(space_type == H5S_NULL || space_type == H5S_NO_CLASS || space_type == H5S_COMPLEX) {
|
||||
status = SUCCEED;
|
||||
} else {
|
||||
char string_prefix[64];
|
||||
h5dump_t string_dataformat;
|
||||
|
||||
type = H5Aget_type(obj_id);
|
||||
p_type = h5tools_get_native_type(type);
|
||||
|
||||
@ -1956,6 +1961,33 @@ dump_data(hid_t obj_id, int obj_data, struct subset_t *sset, int pindex)
|
||||
assert(buf);
|
||||
|
||||
if (H5Aread(obj_id, p_type, buf) >= 0)
|
||||
if (display_char && H5Tget_size(type) == 1 && H5Tget_class(type) == H5T_INTEGER) {
|
||||
/*
|
||||
* Print 1-byte integer data as an ASCII character string
|
||||
* instead of integers if the `-r' or `--string' command-line
|
||||
* option was given.
|
||||
*
|
||||
* We don't want to modify the global dataformat, so make a
|
||||
* copy of it instead.
|
||||
*/
|
||||
string_dataformat = *outputformat;
|
||||
string_dataformat.idx_fmt = " ";
|
||||
string_dataformat.line_multi_new = 1;
|
||||
string_dataformat.line_1st = " %s\"";
|
||||
string_dataformat.line_pre = " %s";
|
||||
string_dataformat.line_cont = " %s";
|
||||
string_dataformat.str_repeat = 8;
|
||||
string_dataformat.ascii = TRUE;
|
||||
string_dataformat.elmt_suf1 = "";
|
||||
string_dataformat.elmt_suf2 = "";
|
||||
string_dataformat.line_indent = "";
|
||||
strcpy(string_prefix, string_dataformat.line_pre);
|
||||
strcat(string_prefix, "\"");
|
||||
string_dataformat.line_pre = string_prefix;
|
||||
string_dataformat.line_suf = "\"";
|
||||
outputformat = &string_dataformat;
|
||||
}
|
||||
|
||||
status = h5tools_dump_mem(stdout, outputformat, obj_id, p_type,
|
||||
space, buf, depth);
|
||||
|
||||
|
@ -198,6 +198,9 @@ TOOLTEST tlarge_objname.ddl -w157 tlarge_objname.h5
|
||||
# test '-A' to suppress data but print attr's
|
||||
TOOLTEST tall-2A.ddl -A tall.h5
|
||||
|
||||
# test '-r' to print attributes in ASCII instead of decimal
|
||||
TOOLTEST tall-2B.ddl -A -r tall.h5
|
||||
|
||||
# test Subsetting
|
||||
TOOLTEST tall-4s.ddl --dataset=/g1/g1.1/dset1.1.1 --start=1,1 --stride=2,3 --count=3,2 --block=1,1 tall.h5
|
||||
TOOLTEST tall-5s.ddl -d "/g1/g1.1/dset1.1.2[0;2;10;]" tall.h5
|
||||
|
Loading…
Reference in New Issue
Block a user