From 3a3401dfe7a7fedd5f133dd5a7b416e869f6be89 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 12 May 2021 16:40:05 +0200 Subject: Fix convert_int and add convert_float convert_int was using strtod. Whoops! --- libcrystfel/src/utils.c | 17 ++++++++++++++++- libcrystfel/src/utils.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libcrystfel/src/utils.c b/libcrystfel/src/utils.c index 945fee15..864b1a30 100644 --- a/libcrystfel/src/utils.c +++ b/libcrystfel/src/utils.c @@ -307,7 +307,22 @@ void ERROR(const char *format, ...) int convert_int(const char *str, int *pval) { - int val; + long int val; + char *rval; + + val = strtol(str, &rval, 10); + if ( *rval != '\0' ) { + return 1; + } else { + *pval = val; + return 0; + } +} + + +int convert_float(const char *str, double *pval) +{ + double val; char *rval; val = strtod(str, &rval); diff --git a/libcrystfel/src/utils.h b/libcrystfel/src/utils.h index 7f50ddc3..458307e8 100644 --- a/libcrystfel/src/utils.h +++ b/libcrystfel/src/utils.h @@ -79,6 +79,7 @@ extern gsl_vector *solve_svd(gsl_vector *v, gsl_matrix *M, int *n_filt, extern size_t notrail(char *s); extern int convert_int(const char *str, int *pval); +extern int convert_float(const char *str, double *pval); extern void chomp(char *s); #define CLEAR_BIT(val, bit) (((val) | (bit)) ^ (bit)) -- cgit v1.2.3