Use 'f' for real and 'F' for number (real or integer) in unpack

This commit is contained in:
Petri Lehtinen 2011-01-25 20:42:41 +02:00
parent ac96ac13d4
commit a1c185a376

View File

@ -380,11 +380,23 @@ static int unpack(scanner_t *s, json_t *root, va_list *ap)
return 0;
case 'f':
if(!json_is_number(root)) {
if(!json_is_real(root)) {
set_error(s, "Expected real, got %s", type_name(root));
return -1;
}
if(!(s->flags & JSON_VALIDATE_ONLY))
*va_arg(*ap, double*) = json_real_value(root);
return 0;
case 'F':
if(!json_is_number(root)) {
set_error(s, "Expected real or integer, got %s",
type_name(root));
return -1;
}
if(!(s->flags & JSON_VALIDATE_ONLY))
*va_arg(*ap, double*) = json_number_value(root);