|
|
@ -213,7 +213,7 @@ static int atodims_bracketed(const char *p, int *data, int *p_n_dim) |
|
|
|
|
|
|
|
|
int rc = get_bracketed_dim(p, data + n_dim); |
|
|
int rc = get_bracketed_dim(p, data + n_dim); |
|
|
if (rc <= 0) { /* error or normal exit */ |
|
|
if (rc <= 0) { /* error or normal exit */ |
|
|
*p_n_dim = n_dim; |
|
|
|
|
|
|
|
|
*p_n_dim = (int) n_dim; |
|
|
return !!rc; |
|
|
return !!rc; |
|
|
} |
|
|
} |
|
|
p += rc; /* step after the dimension that was processed */ |
|
|
p += rc; /* step after the dimension that was processed */ |
|
|
@ -283,10 +283,10 @@ static int atodims_csv(const char *p, int *data, int *p_n_dim) |
|
|
++p; |
|
|
++p; |
|
|
break; |
|
|
break; |
|
|
case ']': /* ] ended scan */ |
|
|
case ']': /* ] ended scan */ |
|
|
*p_n_dim = n_dim; |
|
|
|
|
|
|
|
|
*p_n_dim = (int) n_dim; |
|
|
return (int) (p - p0) + 1; |
|
|
return (int) (p - p0) + 1; |
|
|
case '\0': /* end of string ended scan */ |
|
|
case '\0': /* end of string ended scan */ |
|
|
*p_n_dim = n_dim; |
|
|
|
|
|
|
|
|
*p_n_dim = (int) n_dim; |
|
|
return 0; |
|
|
return 0; |
|
|
default: /* invalid char */ |
|
|
default: /* invalid char */ |
|
|
return -1; |
|
|
return -1; |
|
|
@ -347,7 +347,7 @@ static int get_dim(const char *p, int *p_val) |
|
|
const char *p0 = p; |
|
|
const char *p0 = p; |
|
|
for ( ; ; ++p) { |
|
|
for ( ; ; ++p) { |
|
|
const char c_cur = *p; |
|
|
const char c_cur = *p; |
|
|
unsigned int digit_cur = c_cur - '0'; |
|
|
|
|
|
|
|
|
unsigned int digit_cur = (unsigned int) (c_cur - '0'); |
|
|
unsigned int val_new; |
|
|
unsigned int val_new; |
|
|
if (digit_cur > 9) { /* not a digit */ |
|
|
if (digit_cur > 9) { /* not a digit */ |
|
|
if ((*p_val = (int) val) < 0) { /* overflow */ |
|
|
if ((*p_val = (int) val) < 0) { /* overflow */ |
|
|
|