diff options
author | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2006-09-26 15:47:36 (GMT) |
---|---|---|
committer | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2006-09-26 15:47:36 (GMT) |
commit | e9188e385af4ac913ee28e26717e9c8fb4336d2f (patch) | |
tree | 40ea75ee2506293321c648413e45ae235850a8ce /tools/h5dump/h5dump.c | |
parent | 53a2d21415105951dd5d81969ee6f21d9e7216f8 (diff) | |
download | hdf5-e9188e385af4ac913ee28e26717e9c8fb4336d2f.zip hdf5-e9188e385af4ac913ee28e26717e9c8fb4336d2f.tar.gz hdf5-e9188e385af4ac913ee28e26717e9c8fb4336d2f.tar.bz2 |
[svn-r12683]
revised binary flags, added a new file to the test generator program to
be used in the binary tests
usage is now
-o F, --output=F Output raw data into file F
-b F, --binary=F Binary output, of form F (into file -o F).
Recommended usage is with --dataset=P
Form F of binary output is: MEMORY for memory type,
FILE for the disk file type, LE or BE for pre-existing
little or big endian types
example
./h5dump -d integer -b MEMORY -o out.bin tbinary.h5
Diffstat (limited to 'tools/h5dump/h5dump.c')
-rw-r--r-- | tools/h5dump/h5dump.c | 84 |
1 files changed, 49 insertions, 35 deletions
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index 494317e..ba18c37 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -611,10 +611,10 @@ usage(const char *prog) fprintf(stdout, " -g P, --group=P Print the specified group and all members\n"); fprintf(stdout, " -l P, --soft-link=P Print the value(s) of the specified soft link\n"); fprintf(stdout, " -o F, --output=F Output raw data into file F\n"); - fprintf(stdout, " -b F, --binary=F Output raw data into file F in binary form \n"); - fprintf(stdout, " (recommended usage is with --dataset=P)\n"); - fprintf(stdout, " -F T, --form=T Form of binary output. T is: NA for native type,\n"); - fprintf(stdout, " DI for the disk file type, LE or BE for pre-existing\n"); + fprintf(stdout, " -b F, --binary=F Binary output, of form F (into file -o F).\n"); + fprintf(stdout, " Recommended usage is with --dataset=P\n"); + fprintf(stdout, " Form F of binary output is: MEMORY for memory type,\n"); + fprintf(stdout, " FILE for the disk file type, LE or BE for pre-existing\n"); fprintf(stdout, " little or big endian types\n"); fprintf(stdout, " -t P, --datatype=P Print the specified named data type\n"); fprintf(stdout, " -w N, --width=N Set the number of columns of output\n"); @@ -2870,16 +2870,15 @@ set_binary_form(const char *form) { int bform=-1; - if (strcmp(form,"NA")==0) /* native form */ + if (strcmp(form,"MEMORY")==0) /* native form */ bform = 0; - else if (strcmp(form,"DI")==0) /* file type form */ + else if (strcmp(form,"FILE")==0) /* file type form */ bform = 1; else if (strcmp(form,"LE")==0) /* convert to little endian */ bform = 2; else if (strcmp(form,"BE")==0) /* convert to big endian */ bform = 3; - return bform; } @@ -3365,6 +3364,10 @@ parse_command_line(int argc, const char *argv[]) struct handler_t *hand, *last_dset = NULL; int i, opt, last_was_dset = FALSE; + /* some logic to handle both -o and -b order */ + const char *outfname=NULL; + bin_form = -1; + /* this will be plenty big enough to hold the info */ hand = calloc((size_t)argc, sizeof(struct handler_t)); @@ -3479,37 +3482,48 @@ parse_start: last_was_dset = FALSE; break; - case 'o': - if (set_output_file(opt_arg, 0) < 0){ - /* failed to set output file */ - usage(progname); - leave(EXIT_FAILURE); - } - usingdasho = TRUE; - last_was_dset = FALSE; - break; + case 'o': + + if (bin_form > 0 ) + { + if (set_output_file(opt_arg, 1) < 0){ + usage(progname); + leave(EXIT_FAILURE); + } + } + else + { + if (set_output_file(opt_arg, 0) < 0){ + usage(progname); + leave(EXIT_FAILURE); + } + } + + usingdasho = TRUE; + last_was_dset = FALSE; + outfname = opt_arg; + break; case 'b': - if (set_output_file(opt_arg, 1) < 0){ - /* failed to set output file */ - usage(progname); - leave(EXIT_FAILURE); - } - - bin_output = TRUE; - last_was_dset = FALSE; - break; - - case 'F': - if ( ( bin_form = set_binary_form(opt_arg)) < 0){ - /* failed to set binary form */ - usage(progname); - leave(EXIT_FAILURE); - } - - last_was_dset = FALSE; - break; + + if ( ( bin_form = set_binary_form(opt_arg)) < 0){ + /* failed to set binary form */ + usage(progname); + leave(EXIT_FAILURE); + } + if (outfname!=NULL) { + if (set_output_file(outfname, 1) < 0){ + /* failed to set output file */ + usage(progname); + leave(EXIT_FAILURE); + } + + bin_output = TRUE; + last_was_dset = FALSE; + } + + break; /** begin XML parameters **/ case 'x': |