diff options
author | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2004-03-25 20:27:47 (GMT) |
---|---|---|
committer | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2004-03-25 20:27:47 (GMT) |
commit | 1b008c03aaa5f04ec440675bfdac437eda42d446 (patch) | |
tree | b4c1fe06204ad99f1e42457e198149b06dd588fb /tools/h5diff | |
parent | 9c79ce84eec25571e012d03ba8e731afa1dcabe3 (diff) | |
download | hdf5-1b008c03aaa5f04ec440675bfdac437eda42d446.zip hdf5-1b008c03aaa5f04ec440675bfdac437eda42d446.tar.gz hdf5-1b008c03aaa5f04ec440675bfdac437eda42d446.tar.bz2 |
[svn-r8282] Purpose:
bug fix
Description:
the -p option was not parsing correctly if the input was in the exponential format
Solution:
add a new parse test for floating point numbers
Platforms tested:
linux
Misc. update:
Diffstat (limited to 'tools/h5diff')
-rw-r--r-- | tools/h5diff/h5diff_main.c | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/tools/h5diff/h5diff_main.c b/tools/h5diff/h5diff_main.c index cbc0248..17c9d22 100644 --- a/tools/h5diff/h5diff_main.c +++ b/tools/h5diff/h5diff_main.c @@ -29,7 +29,7 @@ static int check_f_input( const char* ); /*------------------------------------------------------------------------- * Function: main * - * Purpose: H5diff main program + * Purpose: h5diff main program * * Return: An exit status of 0 means no differences were found, 1 means some * differences were found. @@ -73,14 +73,11 @@ int main(int argc, const char *argv[]) * file names are first *------------------------------------------------------------------------- */ - if ( argc>=3 ) { fname1 = argv[1]; fname2 = argv[2]; } - - /*------------------------------------------------------------------------- * parse command line options *------------------------------------------------------------------------- @@ -121,7 +118,7 @@ int main(int argc, const char *argv[]) } else { - printf("<-d %s> is not a valid option\n", argv[i+1] ); + printf("Not a valid -d option\n"); usage(); } break; @@ -137,6 +134,11 @@ int main(int argc, const char *argv[]) options.percent = atof(argv[i+1]); i++; /* go to next */ } + else + { + printf("Not a valid -p option\n"); + usage(); + } break; case 'n': if ( i<argc-1 && '-' !=argv[i+1][0] ) @@ -150,6 +152,11 @@ int main(int argc, const char *argv[]) options.count = atoi(argv[i+1]); i++; /* go to next */ } + else + { + printf("Not a valid -n option\n"); + usage(); + } break; } /*switch*/ } /*for*/ @@ -182,7 +189,6 @@ int main(int argc, const char *argv[]) }/*for*/ - /*------------------------------------------------------------------------- * print the command line options *------------------------------------------------------------------------- @@ -198,8 +204,6 @@ int main(int argc, const char *argv[]) printf("\n"); } - - nfound = h5diff(fname1,fname2,objname1,objname2,&options); if (options.verbose) printf("\n"); ret= (nfound==0 ? 0 : 1 ); @@ -207,7 +211,6 @@ int main(int argc, const char *argv[]) } - /*------------------------------------------------------------------------- * Function: check_n_input * @@ -266,26 +269,15 @@ int check_n_input( const char *str ) static int check_f_input( const char *str ) { - unsigned i; - char c; - - /* '0' values not allowed */ - if ( strlen(str)==1 && str[0]=='0' ) + double x; + + x=atof(str); + if (x==0) return -1; - for ( i = 0; i < strlen(str); i++) - { - c = str[i]; - if ( c < 48 || c > 57 ) /* ascii values between 0 and 9 */ - if ( c!= 46) /* . */ - return -1; - } return 1; } - - - /*------------------------------------------------------------------------- * Function: usage * |