This allows to use hexadecimal numbers which are automatically
detected by strtol() when the base is 0.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Brian Paul <brianp@vmware.com>
const char *str;
str = os_get_option(name);
- if (!str)
+ if (!str) {
result = dfault;
- else {
- long sign;
- char c;
- c = *str++;
- if (c == '-') {
- sign = -1;
- c = *str++;
- }
- else {
- sign = 1;
- }
- result = 0;
- while ('0' <= c && c <= '9') {
- result = result*10 + (c - '0');
- c = *str++;
+ } else {
+ char *endptr;
+
+ result = strtol(str, &endptr, 0);
+ if (str == endptr) {
+ /* Restore the default value when no digits were found. */
+ result = dfault;
}
- result *= sign;
}
if (debug_get_option_should_print())