/* Last edited on 2009-10-31 17:34:53 by stolfi */ double parse_double ( int *argn, int argc, char **argv, double lo, double hi ) { char *rest; double x; if (*argn >= argc) { arg_error("argument value is missing", (*argn)-1, argv[(*argn)-1]); } x = strtod(argv[*argn], &rest); if (*rest != '\0') { arg_error("invalid number", *argn, argv[*argn]); } if ((x < lo) || (x > hi)) { arg_error("out of range", *argn, argv[*argn]); } ++(*argn); return x; }