if (!str_to_double(s, &atom->real)) {
return xasprintf("\"%s\" is not a valid real number", s);
}
+ /* Our JSON input routines map negative zero to zero, so do that here
+ * too for consistency. */
+ if (atom->real == 0.0) {
+ atom->real = 0.0;
+ }
break;
case OVSDB_TYPE_BOOLEAN:
static const char *
skip_spaces(const char *p)
{
- return p + strspn(p, " ");
+ while (isspace((unsigned char) *p)) {
+ p++;
+ }
+ return p;
}
static char *
error = parse_atom_token(s, type->key_type, key);
if (!error && type->value_type != OVSDB_TYPE_VOID) {
+ *s = skip_spaces(*s);
if (**s == '=') {
(*s)++;
+ *s = skip_spaces(*s);
error = parse_atom_token(s, type->value_type, value);
} else {
error = xasprintf("%s: syntax error at \"%c\" expecting \"=\"",