summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2009-05-20 22:21:41 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2009-05-20 22:21:41 (GMT)
commit6f0b39de55a71e042a3a50b6d169804021174ebf (patch)
treed277d7bf133a0e6fe0fb6d0afea912c7bb4fa217
parent704f202348eac60d7bc653684babb2316652fdae (diff)
downloadhdf5-6f0b39de55a71e042a3a50b6d169804021174ebf.zip
hdf5-6f0b39de55a71e042a3a50b6d169804021174ebf.tar.gz
hdf5-6f0b39de55a71e042a3a50b6d169804021174ebf.tar.bz2
[svn-r16968] Added missing byte case packed bits operations.
Tested local linux
-rw-r--r--tools/lib/h5tools_str.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c
index 43e2f4e..8d9932e 100644
--- a/tools/lib/h5tools_str.c
+++ b/tools/lib/h5tools_str.c
@@ -850,10 +850,18 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
h5tools_str_append(str, OPT(info->fmt_uint, "%u"), tempuint);
}
else if (H5Tequal(type, H5T_NATIVE_SCHAR)) {
- h5tools_str_append(str, OPT(info->fmt_schar, "%d"), *cp_vp);
+ char tempchar;
+ HDmemcpy(&tempchar, cp_vp, sizeof(char));
+ if(packed_output)
+ tempchar = (tempchar & packed_counter)>>packed_normalize;
+ h5tools_str_append(str, OPT(info->fmt_schar, "%d"), tempchar);
}
else if (H5Tequal(type, H5T_NATIVE_UCHAR)) {
- h5tools_str_append(str, OPT(info->fmt_uchar, "%u"), *ucp_vp);
+ unsigned char tempuchar;
+ HDmemcpy(&tempuchar, ucp_vp, sizeof(unsigned char));
+ if(packed_output)
+ tempuchar = (tempuchar & packed_counter)>>packed_normalize;
+ h5tools_str_append(str, OPT(info->fmt_uchar, "%u"), tempuchar);
}
else if (H5Tequal(type, H5T_NATIVE_SHORT)) {
short tempshort;