diff options
author | Thomas White <taw@physics.org> | 2021-05-12 16:40:05 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2021-05-12 16:40:39 +0200 |
commit | 3a3401dfe7a7fedd5f133dd5a7b416e869f6be89 (patch) | |
tree | 6bc59b7313f6edadd54a16d1d304c2cf207a44ba /libcrystfel | |
parent | 21d7b4754ea785de5cf805b8c72d6aabd8a0a372 (diff) |
Fix convert_int and add convert_float
convert_int was using strtod. Whoops!
Diffstat (limited to 'libcrystfel')
-rw-r--r-- | libcrystfel/src/utils.c | 17 | ||||
-rw-r--r-- | libcrystfel/src/utils.h | 1 |
2 files changed, 17 insertions, 1 deletions
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)) |