goto out;
}
}
- else /* c != '0' */ {
+ else if(isdigit(c)) {
c = lex_get_save(lex, error);
while(isdigit(c))
c = lex_get_save(lex, error);
}
+ else {
+ lex_unget_unsave(lex, c);
+ goto out;
+ }
if(c != '.' && c != 'E' && c != 'e') {
long value;
json_t *result;
FILE *fp;
+ error_init(error);
+
fp = fopen(path, "r");
if(!fp)
{
testlogs
testprogs/test_array
testprogs/test_dump
+testprogs/test_load
testprogs/test_number
testprogs/test_object
testprogs/test_simple
====
1
invalid token near 'troo'
-==== invalid-escap ====
+==== minus-sign-without-number ====
+[-foo]
+====
+1
+invalid token near '-'
+==== invalid-negative-integerr ====
+[-123foo]
+====
+1
+']' expected near 'foo'
+==== invalid-negative-real ====
+[-123.123foo]
+====
+1
+']' expected near 'foo'
+==== invalid-escape ====
["\a <-- invalid escape"]
====
1
====
1
invalid token near 'troo'
-==== invalid-escap ====
+==== minus-sign-without-number ====
+[-foo]
+====
+1
+invalid token near '-'
+==== invalid-negative-integerr ====
+[-123foo]
+====
+1
+']' expected near 'foo'
+==== invalid-negative-real ====
+[-123.123foo]
+====
+1
+']' expected near 'foo'
+==== invalid-escape ====
["\a <-- invalid escape"]
====
1
-check_PROGRAMS = test_array test_dump test_simple test_number test_object
+check_PROGRAMS = test_array test_dump test_load test_simple test_number test_object
test_array_SOURCES = test_array.c util.h
test_dump_SOURCES = test_dump.c util.h
+test_load_SOURCES = test_load.c util.h
test_simple_SOURCES = test_simple.c util.h
test_number_SOURCES = test_number.c util.h
test_object_SOURCES = test_object.c util.h
--- /dev/null
+/*
+ * Copyright (c) 2009 Petri Lehtinen <petri@digip.org>
+ *
+ * Jansson is free software; you can redistribute it and/or modify
+ * it under the terms of the MIT license. See LICENSE for details.
+ */
+
+#include <jansson.h>
+#include <string.h>
+#include "util.h"
+
+int main()
+{
+ json_t *json;
+ json_error_t error;
+
+ json = json_load_file("/path/to/nonexistent/file.json", &error);
+ if(error.line != -1)
+ fail("json_load_file returned an invalid line number");
+ if(strcmp(error.text, "unable to open /path/to/nonexistent/file.json: No such file or directory") != 0)
+ fail("json_load_file returned an invalid error message");
+
+ return 0;
+}