diff options
-rw-r--r-- | base/commandLine.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp index 543511696f..1cd3643f5a 100644 --- a/base/commandLine.cpp +++ b/base/commandLine.cpp @@ -25,7 +25,7 @@ #define FORBIDDEN_SYMBOL_EXCEPTION_exit -#include <errno.h> +#include <limits.h> #include "engines/metaengine.h" #include "base/commandLine.h" @@ -266,12 +266,12 @@ void registerDefaults() { if (!option) usage("Option '%s' requires an argument", argv[isLongCmd ? i : i-1]); // Use this for options which have a required integer value +// (we don't check ERANGE because WinCE doesn't support errno, so we're stuck just rejecting LONG_MAX/LONG_MIN..) #define DO_OPTION_INT(shortCmd, longCmd) \ DO_OPTION(shortCmd, longCmd) \ char *endptr; \ - errno = 0; \ - strtol(option, &endptr, 0); \ - if (*endptr != '\0' || errno == ERANGE) \ + long int retval = strtol(option, &endptr, 0); \ + if (*endptr != '\0' || retval == LONG_MAX || retval == LONG_MIN) \ usage("--%s: Invalid number '%s'", longCmd, option); // Use this for boolean options; this distinguishes between "-x" and "-X", |