Petri Lehtinen
185e107d24
Don't use non-portable asprintf()
...
Thanks to Adam Strzelecki for reporting.
2009-10-13 15:40:26 +03:00
Petri Lehtinen
ca7703fbd1
Merge branch '1.0'
...
Conflicts:
configure.ac
doc/conf.py
2009-10-11 21:51:54 +03:00
Petri Lehtinen
12cd4e8c09
jansson 1.0.4
2009-10-11 21:38:42 +03:00
Petri Lehtinen
1e00cd58a5
Extend object API
...
Added functions:
json_object_size
json_object_clear
json_object_update
2009-10-11 20:44:01 +03:00
Petri Lehtinen
9d648a87cb
Check json_object_set_new arguments
...
A segfault was caused by NULL key.
2009-10-10 22:53:36 +03:00
Petri Lehtinen
19588c2d69
Fix a few more compilation issues
...
These were left out from the previous commit.
2009-10-06 13:22:27 +03:00
Petri Lehtinen
9c5a8430db
Make it compile on platforms where char is unsigned
...
Linux on powerpc seems to be one such platform.
2009-10-01 21:54:45 +03:00
Petri Lehtinen
cbacac5975
Extend array API
...
Added functions:
json_array_insert
json_array_insert_new
json_array_remove
json_array_clear
json_array_extend
2009-09-29 22:17:58 +03:00
Petri Lehtinen
7728716759
Merge branch '1.0'
...
Conflicts:
configure.ac
doc/conf.py
2009-09-14 15:06:06 +03:00
Petri Lehtinen
b7bf96996f
jansson 1.0.3
2009-09-14 14:32:41 +03:00
Petri Lehtinen
6d8c287032
load: Check for integer and real overlfows and underflows
...
Backported from master, commit 5406c2b3d3 :
* deleted test/testdata/invalid-stripped because the stripped tests
don't exist in 1.0
2009-09-14 10:28:03 +03:00
Petri Lehtinen
5406c2b3d3
load: Check for integer and real overlfows and underflows
2009-09-13 13:18:01 +03:00
Petri Lehtinen
743af38e7f
Use unsigned long instead of uint32_t
...
Some day we will have ANSI C compatibility... This change doesn't make
the API backwards incompatible because uint32_t was only used in flags
to json_dump*() and the flags are meant to be used only by ORing
constants and macro output, and actually currently only JSON_INDENT
can be used.
2009-09-13 13:16:34 +03:00
Petri Lehtinen
55d2566539
Merge branch '1.0' into HEAD
...
Conflicts:
configure.ac
doc/conf.py
2009-09-08 17:02:39 +03:00
Petri Lehtinen
827a01937f
jansson 1.0.2
2009-09-08 16:48:26 +03:00
Petri Lehtinen
0f62dac627
load: Handle EOF correctly
...
In stream_get(), EOF never got it to stream->buffer and because of
this, stream_unget() failed on some situations. This patch makes
stream_get() handle EOF just like any other byte.
As a "side effect", lex_scan_string() now needs to unget the EOF, or
otherwise it ends up in error message on premature end of input.
2009-09-08 16:41:07 +03:00
Petri Lehtinen
7ee974e91c
Don't perform reference counting on true, false and null
...
This makes their constructors thread safe. A special reference count
-1 is used to test whether to perform reference counting on a value or
not.
2009-09-07 21:40:14 +03:00
Petri Lehtinen
234ee47281
Better argument validation
...
All pointer arguments are now tested for NULL. json_string() now also
tests that strdup() succeeds. This is to ensure that no NULL values
end up in data structures.
Also desribe the different sources of errors in documentation.
2009-09-06 22:24:55 +03:00
Petri Lehtinen
98a8c1aebf
Don't include unistd.h
...
It's not needed.
2009-09-06 22:24:22 +03:00
Petri Lehtinen
fd259ff68c
Merge branch '1.0'
...
Conflicts:
configure.ac
doc/conf.py
2009-09-06 12:53:38 +03:00
Petri Lehtinen
e4be4a4a28
jansson 1.0.1
2009-09-04 20:58:55 +03:00
Petri Lehtinen
78eda92908
jansson.h: Fix typo
...
json_is_true was spelled jsin_is_true. Quite fatal.
2009-09-04 15:21:00 +03:00
Petri Lehtinen
9611780907
dump: Optimize indenting
...
Don't alloca() a whitespace buffer and fill it with spaces in each
call to dump_indent. Instead, use a static whitespace buffer.
As a bonus, this saves the use of poorly portable alloca().
2009-09-04 09:52:40 +03:00
Petri Lehtinen
93c5892bc3
load: Factor out an unneeded strdup
...
By "stealing" the string parsed out in lexer, one strdup can be saved.
2009-09-04 09:52:40 +03:00
Petri Lehtinen
1095ca956b
Don't define -std=c99 in AM_CFLAGS
...
It is not needed.
2009-09-04 09:52:40 +03:00
Petri Lehtinen
89d09813c3
Add reference stealing functions for inserting values to objects and arrays
...
The non-stealing functions are now just simple wrappers around these.
2009-09-04 09:52:37 +03:00
Petri Lehtinen
ee2d164025
Detect garbage near EOF in json_loadf() and json_load_file()
2009-08-24 20:58:59 +03:00
Petri Lehtinen
114fc96f76
array: Fix a few checks and a leak
2009-08-23 13:34:12 +03:00
Petri Lehtinen
0428f48d19
Refuse to dump other types than array and object as the root value
2009-08-04 20:58:02 +03:00
Petri Lehtinen
36530d8c25
Remove unimplemented json_clone()
2009-07-30 11:32:27 +03:00
Petri Lehtinen
08d712d038
Add macro json_is_boolean
2009-07-30 11:32:27 +03:00
Petri Lehtinen
2f4d6f8ae7
Add LICENSE and a copyright note to all sources
2009-07-30 11:32:24 +03:00
Petri Lehtinen
f41e380984
Rename json_{load,dump} to json_{load,dump}_file
2009-07-28 10:58:13 +03:00
Petri Lehtinen
b348519e96
Fix some memory leaks and invalid memory references
2009-07-28 10:38:21 +03:00
Petri Lehtinen
9240146c10
Implement support for \u escapes
2009-07-16 09:58:23 +03:00
Petri Lehtinen
a0435e3061
Show the whole UTF-8 sequence in error message, not just the first byte
2009-07-16 09:57:08 +03:00
Petri Lehtinen
df307f1bc3
Report errors from lexical and stream level in parser
...
Before, only the syntax level (parse_*) was able to set the error
string. This patch fixes the situation so that lexical (lex_*) and
stream (stream_*) levels can report detailed error messages.
Also, instead of 0, EOF is now returned by stream on error.
2009-07-14 00:24:39 +03:00
Petri Lehtinen
1f65a3cae7
Get rid of JSON_SORT_KEYS dump flag
...
Object sorting will be implemented later.
2009-07-13 23:38:04 +03:00
Petri Lehtinen
902bcdaa5e
Decode and check for correct UTF-8
...
All strings (decoded JSON text, the argument of json_string(), the key
argument of json_object_set()) are checked for valid UTF-8.
2009-07-13 23:38:01 +03:00
Petri Lehtinen
625f50f916
Streamify the loader
...
It's no longer needed to load the whole input into a string and then
parse from the string. Instead, the input is read as needed from
a string or file.
2009-07-13 21:45:16 +03:00
Petri Lehtinen
4c414bdd6d
Get rid of json_dumpfd and json_loadfd
...
fdopen() makes supporting separate API for file descriptors useless.
Supporting fd's also makes Jansson less portable.
2009-07-13 21:45:16 +03:00
Petri Lehtinen
1b67edb54d
Little clean-up in parser
...
Before, json_loads checked for '[' or '{' at the beginning. Now
there's a dedicated function for that: parse_json(). Also rename
parse() to parse_value().
2009-07-13 21:45:16 +03:00
Petri Lehtinen
287ec3f9da
Unify naming in parser
...
No functional changes.
2009-07-13 21:45:16 +03:00
Petri Lehtinen
13c7ad3219
Make the lexer not depend on locale
...
... by not using isalpha() and isspace(). While at it, fix some other
minor things.
2009-07-13 21:45:11 +03:00
Petri Lehtinen
68e948f567
Don't dump extra spaces when indenting
2009-07-09 21:01:43 +03:00
Petri Lehtinen
6b14df13cc
Fix dumping of Unicode control codes
...
Inside strings, All UTF-8 characters except for \, " and Unicode
control codes are dumped as-is. The control codes that have a special
one-character escape use that escape, and other control codes are
dumped using the \uXXXX escape.
2009-07-09 20:59:52 +03:00
Petri Lehtinen
f9c2a113bb
Fix number tokenizer
2009-07-04 22:04:32 +03:00
Petri Lehtinen
4384776776
Fix empty array dumping
2009-07-04 13:19:41 +03:00
Petri Lehtinen
55af26f05a
strbuffer: Optimize string termination
...
Do not zero all of the memory, just the first unused byte to make the
string null terminated.
2009-07-04 13:19:41 +03:00
Petri Lehtinen
b724c2b122
Separate integers and real numbers
2009-07-04 13:19:25 +03:00