return qobject_from_jsonv(string, NULL);
}
+/*
+ * IMPORTANT: This function aborts on error, thus it must not
+ * be used with untrusted arguments.
+ */
QObject *qobject_from_jsonf(const char *string, ...)
{
QObject *obj;
obj = qobject_from_jsonv(string, &ap);
va_end(ap);
+ assert(obj != NULL);
return obj;
}
qstring_append(str, "\\t");
break;
default: {
- char buf[2] = { ptr[0], 0 };
- qstring_append(str, buf);
+ if (ptr[0] <= 0x1F) {
+ char escape[7];
+ snprintf(escape, sizeof(escape), "\\u%04X", ptr[0]);
+ qstring_append(str, escape);
+ } else {
+ char buf[2] = { ptr[0], 0 };
+ qstring_append(str, buf);
+ }
break;
}
}
}
break;
}
+ case QTYPE_QERROR:
+ /* XXX: should QError be emitted? */
case QTYPE_NONE:
break;
}