diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2012-02-24 21:14:47 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2012-02-24 21:14:47 (GMT) |
commit | 202c36682b47239079f547f274fe5d4e9f78f27b (patch) | |
tree | b8b5ea94e4017b9588795a93a6de23a3ca33ab1c /tools/lib/h5tools.c | |
parent | 2dffa66ef78426ea1eef3aaa2d5abcb11d0c26f8 (diff) | |
download | hdf5-202c36682b47239079f547f274fe5d4e9f78f27b.zip hdf5-202c36682b47239079f547f274fe5d4e9f78f27b.tar.gz hdf5-202c36682b47239079f547f274fe5d4e9f78f27b.tar.bz2 |
[svn-r21985] Tools must call h5tools_init before command_line parsing or using tools_mesg functions.
Tools library uses alais variables for stdout, stderr and tools library uses HDfprintf() functions.
Tested: local linux
Diffstat (limited to 'tools/lib/h5tools.c')
-rw-r--r-- | tools/lib/h5tools.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index ef32cde..30b8f33 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -40,6 +40,8 @@ hid_t H5E_tools_g = -1; hid_t H5E_tools_min_id_g = -1; int compound_data; FILE *rawdatastream; /* should initialize to stdout but gcc moans about it */ +FILE *rawoutstream; /* should initialize to stdout but gcc moans about it */ +FILE *rawerrorstream; /* should initialize to stderr but gcc moans about it */ int bin_output; /* binary output */ int bin_form; /* binary form */ int region_output; /* region output */ @@ -117,6 +119,10 @@ h5tools_init(void) if (!rawdatastream) rawdatastream = stdout; + if (!rawoutstream) + rawoutstream = stdout; + if (!rawerrorstream) + rawerrorstream = stderr; h5tools_dump_init(); @@ -150,6 +156,18 @@ h5tools_close(void) else rawdatastream = NULL; } + if (rawoutstream && rawoutstream != stdout) { + if (fclose(rawoutstream)) + perror("closing rawoutstream"); + else + rawoutstream = NULL; + } + if (rawerrorstream && rawerrorstream != stderr) { + if (fclose(rawerrorstream)) + perror("closing rawerrorstream"); + else + rawerrorstream = NULL; + } /* Clean up the reference path table, if it's been used */ term_ref_path_table(); @@ -1047,7 +1065,7 @@ init_acc_pos(h5tools_context_t *ctx, hsize_t *dims) *------------------------------------------------------------------------- */ int -do_bin_output(FILE *stream, hid_t container, hsize_t nelmts, hid_t tid, void *_mem) +do_bin_output(FILE *stream, FILE *err_stream, hid_t container, hsize_t nelmts, hid_t tid, void *_mem) { HERR_INIT(int, SUCCEED) unsigned char *mem = (unsigned char*)_mem; @@ -1059,7 +1077,7 @@ do_bin_output(FILE *stream, hid_t container, hsize_t nelmts, hid_t tid, void *_m for (i = 0; i < nelmts; i++) { if (render_bin_output(stream, container, tid, mem + i * size) < 0) { - printf("\nError in writing binary stream\n"); + HDfprintf(err_stream,"\nError in writing binary stream\n"); return FAIL; } } |