summaryrefslogtreecommitdiffstats
path: root/tools/h5diff/h5diff_main.c
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2004-03-25 20:27:47 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2004-03-25 20:27:47 (GMT)
commit1b008c03aaa5f04ec440675bfdac437eda42d446 (patch)
treeb4c1fe06204ad99f1e42457e198149b06dd588fb /tools/h5diff/h5diff_main.c
parent9c79ce84eec25571e012d03ba8e731afa1dcabe3 (diff)
downloadhdf5-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/h5diff_main.c')
-rw-r--r--tools/h5diff/h5diff_main.c40
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
*