From 173260ac41a9e674a09d7db039ae16f67ba5ae97 Mon Sep 17 00:00:00 2001 From: Patrick Lu Date: Wed, 19 Apr 2000 13:08:11 -0500 Subject: [svn-r2155] fixed the error in the h5ls output. it is now printing like it did before the tools lib merge. prints the index numbers. moved the lines that were doing indenting into the conditionals. --- tools/h5dump.c | 9 ++++----- tools/h5tools.c | 25 ++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/tools/h5dump.c b/tools/h5dump.c index 33829b9..37b23e7 100644 --- a/tools/h5dump.c +++ b/tools/h5dump.c @@ -70,9 +70,9 @@ static h5dump_t dataformat = { 80, /*line_ncols*//*standard default columns*/ 0, /*line_per_line*/ - " ",/*line_pre*/ - " %s ",/*line_1st*/ - " %s",/*line_cont*/ + "",/*line_pre*/ + "%s",/*line_1st*/ + "%s",/*line_cont*/ "",/*line_suf*/ "",/*line_sep*/ 1,/*line_multi_new*/ @@ -1231,8 +1231,7 @@ dump_data (hid_t obj_id, int obj_data) { use indent but with the merging of the tools lib we have to do something different for the lib funtions... the normal indentation is 6 so when we dont need any extra indentation, depth will be 0.*/ - depth = indent/stdindent - 2; - +depth = indent/stdindent+1; indentation (indent); /* printf("%s %s\n", dump_header_format->databegin, BEGIN);*/ begin_obj(dump_header_format->databegin, NULL, dump_header_format->datablockbegin); diff --git a/tools/h5tools.c b/tools/h5tools.c index 9e5efe8..97a06fa 100644 --- a/tools/h5tools.c +++ b/tools/h5tools.c @@ -99,6 +99,7 @@ typedef struct h5dump_context_t { *row */ int indent_level; /*the number of times we need some extra indentation */ + int default_indent_level; /*this is used when the indent level gets changed*/ } h5dump_context_t; typedef herr_t (*H5G_operator_t)(hid_t, const char*, void*); @@ -1118,19 +1119,36 @@ h5dump_simple_prefix(FILE *stream, const h5dump_t *info, } templength = h5dump_str_len(&prefix); indentlevel = ctx->indent_level; + for (i = 0; i < indentlevel; i++){ + fputs(h5dump_str_fmt(&prefix, 0, info->line_indent), stream); + templength += h5dump_str_len(&prefix); + } } else { /* this is because sometimes we dont print out all the header * info for the data(like the tattr-2.ddl example. if that happens * the ctx->indent_level a negative so we need to skip the above * and just print out 2 indent levels. maybe the 2 should be a value * of the ctx struct?? */ - indentlevel = 2; + if (0==elmtno && 0==secnum && info->line_1st) { + fputs(h5dump_str_fmt(&prefix, 0, info->line_1st), stream); + } else if (secnum && info->line_cont) { + fputs(h5dump_str_fmt(&prefix, 0, info->line_cont), + stream); + } else { + fputs(h5dump_str_fmt(&prefix, 0, info->line_pre), stream); + } + templength = h5dump_str_len(&prefix); + indentlevel = ctx->default_indent_level; + for (i = 0; i < indentlevel; i++){ + fputs(h5dump_str_fmt(&prefix, 0, info->line_indent), stream); + templength += h5dump_str_len(&prefix); + } } - for (i = 0; i < indentlevel; i++){ + /* for (i = 0; i < indentlevel; i++){ fputs(h5dump_str_fmt(&prefix, 0, info->line_indent), stream); templength += h5dump_str_len(&prefix); } - +*/ ctx->cur_column = ctx->prev_prefix_len = templength; ctx->cur_elmt = 0; @@ -1371,6 +1389,7 @@ h5dump_simple_dset(FILE *stream, const h5dump_t *info, hid_t dset, */ memset(&ctx, 0, sizeof ctx); ctx.indent_level = indentlevel; + ctx.indent_level = indentlevel; ctx.need_prefix = 1; f_space = H5Dget_space(dset); ctx.ndims = H5Sget_simple_extent_ndims(f_space); -- cgit v0.12