summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorBill Wendling <wendling@ncsa.uiuc.edu>2002-01-05 16:33:50 (GMT)
committerBill Wendling <wendling@ncsa.uiuc.edu>2002-01-05 16:33:50 (GMT)
commit3c6be60da7927d3f5dd2486dc193cabe98f08276 (patch)
tree9a8850a518e66db6cf6411eba0247bfc51d1247f /tools
parentcb7800feee85ec1dc62ceeb9ed1f8ac59a526c16 (diff)
downloadhdf5-3c6be60da7927d3f5dd2486dc193cabe98f08276.zip
hdf5-3c6be60da7927d3f5dd2486dc193cabe98f08276.tar.gz
hdf5-3c6be60da7927d3f5dd2486dc193cabe98f08276.tar.bz2
[svn-r4782]
Purpose: Feature Add Description: Added support for dumping Group Comments. This involved a modification of the DDL as well. Solution: Steal code from h5ls and put it in the h5dump. The ddl.html file was updated as normal. And a test was created... Platforms tested: Dangermouse, Modi4, Kelgia
Diffstat (limited to 'tools')
-rw-r--r--tools/h5dump/h5dump.c12
-rw-r--r--tools/h5dump/h5dumptst.c60
-rw-r--r--tools/testfiles/tgrp_comments.ddl46
-rw-r--r--tools/testfiles/tgrp_comments.h5bin0 -> 14336 bytes
4 files changed, 116 insertions, 2 deletions
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c
index efb0e42..767a604 100644
--- a/tools/h5dump/h5dump.c
+++ b/tools/h5dump/h5dump.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1998, 1999, 2000, 2001
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002
* National Center for Supercomputing Applications
* All rights reserved.
*
@@ -1541,7 +1541,7 @@ dump_group(hid_t gid, const char *name)
{
H5G_stat_t statbuf;
hid_t dset, type;
- char type_name[1024], *tmp;
+ char type_name[1024], *tmp, comment[50];
int i, xtype = H5G_UNKNOWN; /* dump all */
tmp = malloc(strlen(prefix) + strlen(name) + 2);
@@ -1554,6 +1554,14 @@ dump_group(hid_t gid, const char *name)
if (display_oid)
dump_oid(gid);
+ comment[0] = '\0';
+ H5Gget_comment(gid, ".", sizeof(comment), comment);
+
+ if (comment[0]) {
+ indentation(indent);
+ printf("COMMENT \"%s\"\n", comment);
+ }
+
if (!strcmp(name, "/") && unamedtype)
/* dump unamed type in root group */
for (i = 0; i < type_table->nobjs; i++)
diff --git a/tools/h5dump/h5dumptst.c b/tools/h5dump/h5dumptst.c
index 3654ba0..ac08c2f 100644
--- a/tools/h5dump/h5dumptst.c
+++ b/tools/h5dump/h5dumptst.c
@@ -44,6 +44,7 @@
#define FILE30 "tarray6.h5"
#define FILE31 "tarray7.h5"
#define FILE32 "tempty.h5"
+#define FILE33 "tgrp_comments.h5"
#define LENSTR 50
#define LENSTR2 11
@@ -2614,6 +2615,64 @@ static void test_empty(void)
assert(ret>=0);
}
+static void test_group_comments(void)
+{
+ hid_t fid, group;
+
+ fid = H5Fcreate(FILE33, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /* / */
+ group = H5Gcreate (fid, "/g1", 0);
+ H5Gset_comment(group, "/g1", "Comment for group /g1");
+ H5Gclose(group);
+ group = H5Gcreate (fid, "/g2", 0);
+ H5Gset_comment(group, "/g2", "Comment for group /g2");
+ H5Gclose(group);
+ group = H5Gcreate (fid, "/g3", 0);
+ H5Gset_comment(group, "/g3", "Comment for group /g3");
+ H5Gclose(group);
+
+ /* /g1 */
+ group = H5Gcreate (fid, "/g1/g1.1", 0);
+ H5Gset_comment(group, "/g1/g1.1", "Comment for group /g1/g1.1");
+ H5Gclose(group);
+ group = H5Gcreate (fid, "/g1/g1.2", 0);
+ H5Gset_comment(group, "/g1/g1.2", "Comment for group /g1/g1.2");
+ H5Gclose(group);
+
+ /* /g2 */
+ group = H5Gcreate (fid, "/g2/g2.1", 0);
+ H5Gset_comment(group, "/g2/g2.1", "Comment for group /g2/g2.1");
+ H5Gclose(group);
+
+ /* /g3 */
+ group = H5Gcreate (fid, "/g3/g3.1", 0);
+ H5Gset_comment(group, "/g3/g3.1", "Comment for group /g3/g3.1");
+ H5Gclose(group);
+ group = H5Gcreate (fid, "/g3/g3.2", 0);
+ H5Gset_comment(group, "/g3/g3.2", "Comment for group /g3/g3.2");
+ H5Gclose(group);
+ group = H5Gcreate (fid, "/g3/g3.3", 0);
+ H5Gset_comment(group, "/g3/g3.3", "Comment for group /g3/g3.3");
+ H5Gclose(group);
+ group = H5Gcreate (fid, "/g3/g3.4", 0);
+ H5Gset_comment(group, "/g3/g3.4", "Comment for group /g3/g3.4");
+ H5Gclose(group);
+
+ /* /g2/g2.1 */
+ group = H5Gcreate (fid, "/g2/g2.1/g2.1.1", 0);
+ H5Gset_comment(group, "/g2/g2.1/g2.1.1", "Comment for group /g2/g2.1/g2.1.1");
+ H5Gclose(group);
+ group = H5Gcreate (fid, "/g2/g2.1/g2.1.2", 0);
+ H5Gset_comment(group, "/g2/g2.1/g2.1.2", "Comment for group /g2/g2.1/g2.1.2");
+ H5Gclose(group);
+ group = H5Gcreate (fid, "/g2/g2.1/g2.1.3", 0);
+ H5Gset_comment(group, "/g2/g2.1/g2.1.3", "Comment for group /g2/g2.1/g2.1.3");
+ H5Gclose(group);
+
+ H5Fclose(fid);
+}
+
int main(void)
{
test_group();
@@ -2658,6 +2717,7 @@ int main(void)
test_array7();
test_empty();
+ test_group_comments();
return 0;
}
diff --git a/tools/testfiles/tgrp_comments.ddl b/tools/testfiles/tgrp_comments.ddl
new file mode 100644
index 0000000..aead73d
--- /dev/null
+++ b/tools/testfiles/tgrp_comments.ddl
@@ -0,0 +1,46 @@
+#############################
+Expected output for 'h5dump tgrp_comments.h5'
+#############################
+HDF5 "tgrp_comments.h5" {
+GROUP "/" {
+ GROUP "g1" {
+ COMMENT "Comment for group /g1"
+ GROUP "g1.1" {
+ COMMENT "Comment for group /g1/g1.1"
+ }
+ GROUP "g1.2" {
+ COMMENT "Comment for group /g1/g1.2"
+ }
+ }
+ GROUP "g2" {
+ COMMENT "Comment for group /g2"
+ GROUP "g2.1" {
+ COMMENT "Comment for group /g2/g2.1"
+ GROUP "g2.1.1" {
+ COMMENT "Comment for group /g2/g2.1/g2.1.1"
+ }
+ GROUP "g2.1.2" {
+ COMMENT "Comment for group /g2/g2.1/g2.1.2"
+ }
+ GROUP "g2.1.3" {
+ COMMENT "Comment for group /g2/g2.1/g2.1.3"
+ }
+ }
+ }
+ GROUP "g3" {
+ COMMENT "Comment for group /g3"
+ GROUP "g3.1" {
+ COMMENT "Comment for group /g3/g3.1"
+ }
+ GROUP "g3.2" {
+ COMMENT "Comment for group /g3/g3.2"
+ }
+ GROUP "g3.3" {
+ COMMENT "Comment for group /g3/g3.3"
+ }
+ GROUP "g3.4" {
+ COMMENT "Comment for group /g3/g3.4"
+ }
+ }
+}
+}
diff --git a/tools/testfiles/tgrp_comments.h5 b/tools/testfiles/tgrp_comments.h5
new file mode 100644
index 0000000..b72edcc
--- /dev/null
+++ b/tools/testfiles/tgrp_comments.h5
Binary files differ