Used the new capabilities of ft_numparse() to allow the creation of variables and list items of type CP_NUM
This commit is contained in:
parent
ad970ae4e7
commit
92725594f3
|
|
@ -485,10 +485,14 @@ struct variable *cp_setparse(wordlist *wl)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
double dbl_val;
|
double dbl_val;
|
||||||
if (ft_numparse(&ss, FALSE, &dbl_val) >= 0) {
|
switch (ft_numparse(&ss, FALSE, &dbl_val)) {
|
||||||
|
case 0: /* CP_REAL */
|
||||||
vv = var_alloc_real(NULL, dbl_val, NULL);
|
vv = var_alloc_real(NULL, dbl_val, NULL);
|
||||||
}
|
break;
|
||||||
else {
|
case +1: /* CP_NUM */
|
||||||
|
vv = var_alloc_num(NULL, (int) dbl_val, NULL);
|
||||||
|
break;
|
||||||
|
default: /* CP_STRING */
|
||||||
vv = var_alloc_string(NULL, copy(ss), NULL);
|
vv = var_alloc_string(NULL, copy(ss), NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -523,13 +527,18 @@ struct variable *cp_setparse(wordlist *wl)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
double dbl_val;
|
double dbl_val;
|
||||||
if (ft_numparse(&ss, FALSE, &dbl_val) >= 0) {
|
switch (ft_numparse(&ss, FALSE, &dbl_val)) {
|
||||||
/*** We should try to get CP_NUM's... */
|
case 0: /* CP_REAL */
|
||||||
vars = var_alloc_real(name, dbl_val, vars);
|
vars = var_alloc_real(name, dbl_val, vars);
|
||||||
}
|
break;
|
||||||
else {
|
case +1: /* CP_NUM */
|
||||||
|
vars = var_alloc_num(name, (int) dbl_val, vars);
|
||||||
|
break;
|
||||||
|
default: /* CP_STRING */
|
||||||
vars = var_alloc_string(name, copy(val), vars);
|
vars = var_alloc_string(name, copy(val), vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
name = (char *) NULL; /* name given to variable via var_alloc_* */
|
name = (char *) NULL; /* name given to variable via var_alloc_* */
|
||||||
tfree(copyval); /*DG: must free ss any way to avoid cp_unquote memory leak */
|
tfree(copyval); /*DG: must free ss any way to avoid cp_unquote memory leak */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue