Petri Lehtinen
8857aeadfd
Merge branch '1.2'
...
Conflicts:
CHANGES
configure.ac
doc/conf.py
2010-04-03 14:00:59 +03:00
Petri Lehtinen
047a1417fb
jansson 1.2.1
2010-04-03 13:49:56 +03:00
Petri Lehtinen
4e63fcd55d
Merge branch '1.2'
...
Conflicts:
configure.ac
2010-03-28 21:44:41 +03:00
Petri Lehtinen
29ee3832cf
Support compilers that don't have the "inline" keyword
...
Use AC_C_INLINE autoconf macro, include config.h where needed, and add
a define of JSON_INLINE to jansson.h that has the correct "inline"
keyword.
2010-03-28 21:14:08 +03:00
Petri Lehtinen
bb89a5d4d3
Estimate real number underflows with 0.0
...
Earlier it was a decoding error.
2010-03-26 21:59:56 +02:00
Petri Lehtinen
49880cbabe
Merge branch '1.2'
2010-03-23 08:15:19 +02:00
Petri Lehtinen
f284e3c069
Fix reference counting on true, false and null
...
Initialize their reference counts to (unsigned int)-1 to disable
reference counting on them. It already was meant to work like this,
but the reference counts were just initialized to 1 instead of -1.
Thanks to Andrew Thompson for reporting this issue.
2010-03-23 08:12:32 +02:00
Andres Freund
7d5982e6fe
c++ wrapper: add missing 'inline' statements to various constructors
...
the missing 'inline' leads to duplicated symbols if the header is
included into two separately compiled files.
2010-03-18 14:35:09 +01:00
Petri Lehtinen
a2a9107600
Don't include stdint.h anywhere
...
This should have fixed by commit 28682322
, but there was one #include
left in utf.c. It now includes utf.h instead of stdint.h.
2010-03-18 07:22:43 +02:00
Petri Lehtinen
42621370c3
hashtable: Fix typo in comment
2010-02-11 21:17:19 +02:00
Petri Lehtinen
8e61b7c0f0
Merge branch 'c++-enhance-proxies'
2010-02-11 21:06:19 +02:00
Petri Lehtinen
f18ef5144a
Implement JSON_PRESERVE_ORDER encoding flag
...
With this encoding flag, the object key-value pairs in output are in
the same order in which they were first inserted into the object.
To make this possible, a key of an object is now a serial number plus
a string. An object keeps an increasing counter which is used to
assign serial number to the keys. Hashing, comparison and public API
functions were changed to act only on the string part, i.e. the serial
number is ignored everywhere else but in the encoder, where it's used
to order object keys if JSON_PRESERVE_ORDER flag is used.
2010-02-11 20:48:56 +02:00
Petri Lehtinen
307167fb66
Optimize hashtable_set()
...
If a key already exists in the hashtable, use the existing pair
changing its value instead of removing the old one and allocating a
new pair.
2010-02-09 20:51:25 +02:00
Petri Lehtinen
7e8b128740
C++: Optimize PropertyProxy
...
When the property already exists in the object, we can store an
iterator pointing to that property, instead of duplicating the key.
When the property (key) is not present in the object, we still have to
duplicate the key.
2010-02-08 20:51:09 +02:00
Petri Lehtinen
acec2559a5
C++: Make proxies safer
...
If a user happens to store an ElementProxy or a PropertyProxy
instance, we need to take a reference to the JSON value they point to.
With PropertyProxy, the key needs to be copied as well.
2010-02-07 14:08:54 +02:00
Petri Lehtinen
286823227c
Make int32_t available on all systems
...
Use AC_TYPE_INT32_T and include inttypes.h (if it exists) instead of
stdint.h for maximum portability.
2010-02-06 21:11:41 +02:00
Petri Lehtinen
8d75235ff2
Merge branch '1.2'
...
Conflicts:
LICENSE
2010-02-04 21:13:57 +02:00
Petri Lehtinen
adb1b58627
C++: Add Value::dump_file(), load_file() and loads() that take an std::string
2010-02-04 21:08:42 +02:00
Petri Lehtinen
b8059a1880
C++: Rename some functions to better match the C API
...
Value::save_file -> Value::dump_file
Value::save_string -> Value::dumps
load_string -> loads
2010-02-04 21:08:38 +02:00
Petri Lehtinen
49d40f020b
C++: #include <cstdio> in jansson.hpp
...
This is to avoid standard C functions ending up in namespace json, as
jansson.h is #included in there, and jansson.h in turn #includes
stdio.h.
2010-02-04 20:50:02 +02:00
Petri Lehtinen
08dc8d9baf
Add year 2010 to copyright notices
2010-02-02 21:26:11 +02:00
Petri Lehtinen
c9fc055351
Add myself as another copyright holder for jansson.hpp and jansson.ipp
2010-02-02 21:14:50 +02:00
Petri Lehtinen
d1a0c3ffc2
C++: Rename jansson-impl.hpp to jansson.ipp
...
The .ipp suffix is for inlined template implementation code.
While at it, use #ifdef and #ifndef instead of #if defined().
2010-02-02 21:10:58 +02:00
Petri Lehtinen
b07e69c37a
C++: Rename namespace json::_private to json::detail
2010-02-02 21:01:50 +02:00
Petri Lehtinen
2b43e7dbda
C++: Untabify, reindent, delete trailing whitespace
2010-02-02 21:00:10 +02:00
Petri Lehtinen
b495b96547
Add functions json_object_iter_{at,set,set_new}
2010-02-01 21:07:19 +02:00
Petri Lehtinen
3dd29366b8
Merge branch 'c++-api'
2010-01-21 22:29:26 +02:00
Petri Lehtinen
8c2ca3fae6
jansson 1.2
2010-01-21 21:49:10 +02:00
Sean Middleditch
38950b081c
add meaningful copyright to jansson-impl.hpp too
2010-01-18 21:55:41 -08:00
Sean Middleditch
56687e9b56
add meaningful copyright to jansson.hpp
2010-01-18 21:55:25 -08:00
Sean Middleditch
c9b33e3386
integrate jansson.hpp into build and test suite
2010-01-18 21:36:02 -08:00
Sean Middleditch
2ad4634de5
Merge branch 'master' of /home/elanthis/Source/janssonxx
...
Conflicts:
.gitignore
2010-01-18 21:26:10 -08:00
Petri Lehtinen
93ac06c902
Fix memory leaks in json_*_deep_copy()
2010-01-10 21:01:07 +02:00
Petri Lehtinen
508873de9b
Use _nocheck functions internally for speed
...
There are some places where we copy a string from an existing JSON
value. In these cases the string has already been checked for valid
UTF-8.
2010-01-10 14:39:11 +02:00
Petri Lehtinen
9db34dc31a
Add functions for shallow and deep copying JSON values
2009-12-31 18:50:39 +02:00
Petri Lehtinen
95a468cebb
Add equality test for JSON values
2009-12-31 18:50:36 +02:00
Petri Lehtinen
dd2fe1ebe8
Add _nocheck functions
...
Added functions are:
* json_string_nocheck()
* json_string_set_nocheck()
* json_object_set_nocheck()
* json_object_set_new_nocheck()
These functions don't check that their string argument is valid UTF-8,
but assume that the user has already performed the check.
2009-12-23 22:28:24 +02:00
Petri Lehtinen
6637b976ed
Merge branch '1.1'
2009-12-21 14:13:05 +02:00
Petri Lehtinen
f5202bedef
Remove const qualifier from the json_t parameter in json_*_set() functions.
...
It's incorrect as these functions modify the value.
2009-12-21 14:12:06 +02:00
Petri Lehtinen
e7a5dc58e6
Merge branch '1.1'
...
Conflicts:
configure.ac
doc/conf.py
2009-12-21 12:52:25 +02:00
Petri Lehtinen
34fb97998c
jansson 1.1.3
2009-12-18 21:43:12 +02:00
Petri Lehtinen
ec96cbf016
Encode reals correctly
...
This patch changes the sprintf format from "%0.17f" to "%.17g", as the
f format specifier doesn't print the exponent at all. This caused
losing precision in all but the most simple cases.
Because the g specifier doesn't print the decimal fraction or exponent
if they're not needed, a ".0" has to be appended by hand in these
cases. Otherwise the value's type changes from real to integer when
decoding again.
Thanks to Philip Grandinetti for reporting this issue.
2009-12-18 00:05:06 +02:00
Petri Lehtinen
19a606d736
Implement JSON_SORT_KEYS encoding flag
...
With this flag, the objects are sorted by key when encoding.
2009-12-16 23:12:39 +02:00
Petri Lehtinen
50031440a3
Implement JSON_ENSURE_ASCII encoding flag
...
With this flag, all Unicode characters outside the ASCII range are
escaped.
2009-12-05 22:55:30 +02:00
Petri Lehtinen
d67aeb9739
Use int32_t instead of plain int with Unicode code points
...
On some architectures, int just isn't big enough to hold all Unicode
code points.
2009-12-02 23:53:54 +02:00
Petri Lehtinen
7c707a73a2
Only export symbols starting with "json_" in libjansson.la
...
This way we don't pollute the symbol namespace with internal symbols.
2009-11-29 13:04:12 +02:00
Petri Lehtinen
330e892ff6
Make parse_json static
2009-11-29 13:00:47 +02:00
Petri Lehtinen
e0a88d19d1
Merge branch '1.1'
...
Conflicts:
configure.ac
doc/conf.py
2009-11-08 22:01:02 +02:00
Petri Lehtinen
842bc2128b
jansson 1.1.2
2009-11-08 14:13:32 +02:00
Petri Lehtinen
ca6d26a1c2
Don't include stdint.h in jansson.h
...
It's not needed
2009-11-07 14:45:46 +02:00