return __get_mult_bytes(str, data, percent);
/*
- * Go forward until we hit a non-digit
+ * Go forward until we hit a non-digit, or +/- sign
*/
while ((p - str) <= len) {
- if (!isdigit((int) *p))
+ if (!isdigit((int) *p) && (*p != '+') && (*p != '-'))
break;
p++;
}
case FIO_OPT_STR_STORE: {
fio_opt_str_fn *fn = o->cb;
- if (!posval_sort(o, posval)) {
- if (o->roff1)
- cp = (char **) o->roff1;
- else
- cp = td_var(data, o->off1);
- *cp = strdup(ptr);
-
- if (fn)
- ret = fn(data, ptr);
-
- return ret;
- }
+ if (!posval_sort(o, posval))
+ goto match;
ret = 1;
for (i = 0; i < PARSE_MAX_VP; i++) {
ret = 0;
if (vp->cb)
fn = vp->cb;
+match:
if (o->roff1)
cp = (char **) o->roff1;
else