summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--ChangeLog5
-rw-r--r--src/yajl_gen.c3
-rw-r--r--src/yajl_parser.c2
4 files changed, 11 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b38b1a8..c0611a2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,7 +18,7 @@ PROJECT(YetAnotherJSONParser C)
SET (YAJL_MAJOR 2)
SET (YAJL_MINOR 0)
-SET (YAJL_MICRO 3)
+SET (YAJL_MICRO 4)
SET (YAJL_DIST_NAME "yajl-${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO}")
diff --git a/ChangeLog b/ChangeLog
index b9f3a07..65d0a88 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
+2.0.4
+
+
2.0.3
* John Stamp generation of a pkgconfig file at build time.
+ * @robzuber bugfix in yajl_tree_get()
+ * @lloyd - fix for compilation on 64 bit windows
2.0.2
* lth fix typos in yajl_tree.h macros YAJL_IS_INTEGER and YAJL_IS_DOUBLE,
diff --git a/src/yajl_gen.c b/src/yajl_gen.c
index d4684fb..f36da2a 100644
--- a/src/yajl_gen.c
+++ b/src/yajl_gen.c
@@ -223,6 +223,9 @@ yajl_gen_double(yajl_gen g, double number)
if (isnan(number) || isinf(number)) return yajl_gen_invalid_number;
INSERT_SEP; INSERT_WHITESPACE;
sprintf(i, "%.20g", number);
+ if (strspn(i, "0123456789-") == strlen(i)) {
+ strcat(i, ".0");
+ }
g->print(g->ctx, i, (unsigned int)strlen(i));
APPENDED_ATOM;
FINAL_NEWLINE;
diff --git a/src/yajl_parser.c b/src/yajl_parser.c
index 3903b38..2cf8a07 100644
--- a/src/yajl_parser.c
+++ b/src/yajl_parser.c
@@ -279,6 +279,7 @@ yajl_do_parse(yajl_handle hand, const unsigned char * jsonText,
hand->ctx,(const char *) buf, bufLen));
} else if (hand->callbacks->yajl_integer) {
long long int i = 0;
+ errno = 0;
i = yajl_parse_integer(buf, bufLen);
if ((i == LLONG_MIN || i == LLONG_MAX) &&
errno == ERANGE)
@@ -306,6 +307,7 @@ yajl_do_parse(yajl_handle hand, const unsigned char * jsonText,
yajl_buf_clear(hand->decodeBuf);
yajl_buf_append(hand->decodeBuf, buf, bufLen);
buf = yajl_buf_data(hand->decodeBuf);
+ errno = 0;
d = strtod((char *) buf, NULL);
if ((d == HUGE_VAL || d == -HUGE_VAL) &&
errno == ERANGE)