aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcrystfel/src/utils.c17
-rw-r--r--libcrystfel/src/utils.h1
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))