Merge branch '1.1'

Conflicts:
	test/.gitignore
	test/testprogs/Makefile.am
This commit is contained in:
Petri Lehtinen 2009-11-04 22:10:46 +02:00
commit 17d913307e
6 changed files with 66 additions and 4 deletions

View File

@ -418,11 +418,15 @@ static int lex_scan_number(lex_t *lex, char c, json_error_t *error)
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;
@ -864,6 +868,8 @@ json_t *json_load_file(const char *path, json_error_t *error)
json_t *result;
FILE *fp;
error_init(error);
fp = fopen(path, "r");
if(!fp)
{

1
test/.gitignore vendored
View File

@ -4,6 +4,7 @@ load_file_dump_file
testlogs
testprogs/test_array
testprogs/test_dump
testprogs/test_load
testprogs/test_number
testprogs/test_object
testprogs/test_simple

17
test/testdata/invalid vendored
View File

@ -167,7 +167,22 @@ too big negative integer near '-123123123123123'
====
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

View File

@ -167,7 +167,22 @@ too big negative integer near '-123123123123123'
====
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

View File

@ -1,7 +1,8 @@
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

View File

@ -0,0 +1,24 @@
/*
* 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;
}