summaryrefslogtreecommitdiffstats
path: root/json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch
diff options
context:
space:
mode:
Diffstat (limited to 'json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch')
-rw-r--r--json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch120
1 files changed, 0 insertions, 120 deletions
diff --git a/json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch b/json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch
deleted file mode 100644
index 5558e9d..0000000
--- a/json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From a503ee8217a9912f3c58acae33cf3d1d840dab6c Mon Sep 17 00:00:00 2001
-From: Jehiah Czebotar <jehiah@gmail.com>
-Date: Wed, 8 Dec 2010 03:52:07 +0000
-Subject: [patch json-c] add json_tokener_parse_verbose, and return NULL on
- parser errors
-
-git-svn-id: http://svn.metaparadigm.com/svn/json-c/trunk@62 327403b1-1117-474d-bef2-5cb71233fd97
----
- bits.h | 3 ++-
- json_tokener.c | 18 +++++++++++++++++-
- json_tokener.h | 3 ++-
- test1.c | 15 +++++++++++++--
- 4 files changed, 34 insertions(+), 5 deletions(-)
-
-diff --git a/bits.h b/bits.h
-index f308da3..c8cbbc8 100644
---- a/bits.h
-+++ b/bits.h
-@@ -22,6 +22,7 @@
-
- #define hexdigit(x) (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9)
- #define error_ptr(error) ((void*)error)
--#define is_error(ptr) ((unsigned long)ptr > (unsigned long)-4000L)
-+#define error_description(error) (json_tokener_errors[error])
-+#define is_error(ptr) (ptr == NULL)
-
- #endif
-diff --git a/json_tokener.c b/json_tokener.c
-index da414e7..df106b1 100644
---- a/json_tokener.c
-+++ b/json_tokener.c
-@@ -115,11 +115,27 @@ struct json_object* json_tokener_parse(const char *str)
- tok = json_tokener_new();
- obj = json_tokener_parse_ex(tok, str, -1);
- if(tok->err != json_tokener_success)
-- obj = (struct json_object*)error_ptr(-tok->err);
-+ obj = NULL;
- json_tokener_free(tok);
- return obj;
- }
-
-+struct json_object* json_tokener_parse_verbose(const char *str, enum json_tokener_error *error)
-+{
-+ struct json_tokener* tok;
-+ struct json_object* obj;
-+
-+ tok = json_tokener_new();
-+ obj = json_tokener_parse_ex(tok, str, -1);
-+ *error = tok->err;
-+ if(tok->err != json_tokener_success) {
-+ obj = NULL;
-+ }
-+
-+ json_tokener_free(tok);
-+ return obj;
-+}
-+
-
- #if !HAVE_STRNDUP
- /* CAW: compliant version of strndup() */
-diff --git a/json_tokener.h b/json_tokener.h
-index 7d40b40..162a152 100644
---- a/json_tokener.h
-+++ b/json_tokener.h
-@@ -76,7 +76,7 @@ struct json_tokener
- char *str;
- struct printbuf *pb;
- int depth, is_double, st_pos, char_offset;
-- ptrdiff_t err;
-+ enum json_tokener_error err;
- unsigned int ucs_char;
- char quote_char;
- struct json_tokener_srec stack[JSON_TOKENER_MAX_DEPTH];
-@@ -88,6 +88,7 @@ extern struct json_tokener* json_tokener_new(void);
- extern void json_tokener_free(struct json_tokener *tok);
- extern void json_tokener_reset(struct json_tokener *tok);
- extern struct json_object* json_tokener_parse(const char *str);
-+extern struct json_object* json_tokener_parse_verbose(const char *str, enum json_tokener_error *error);
- extern struct json_object* json_tokener_parse_ex(struct json_tokener *tok,
- const char *str, int len);
-
-diff --git a/test1.c b/test1.c
-index a3cc6d9..ac1b882 100644
---- a/test1.c
-+++ b/test1.c
-@@ -2,6 +2,7 @@
- #include <stdlib.h>
- #include <stddef.h>
- #include <string.h>
-+#include <assert.h>
-
- #include "json.h"
-
-@@ -135,11 +136,21 @@ int main(int argc, char **argv)
- printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
- json_object_put(new_obj);
-
-+ enum json_tokener_error error = json_tokener_success;
-+ new_obj = json_tokener_parse_verbose("{ foo }", &error);
-+ assert (error == json_tokener_error_parse_object_key_name);
-+ assert (new_obj == NULL);
-+
- new_obj = json_tokener_parse("{ foo }");
-- if(is_error(new_obj)) printf("got error as expected\n");
-+ assert (new_obj == NULL);
-+
-+ // if(is_error(new_obj)) printf("got error as expected\n");
-
- new_obj = json_tokener_parse("foo");
-- if(is_error(new_obj)) printf("got error as expected\n");
-+ assert (new_obj == NULL);
-+ new_obj = json_tokener_parse_verbose("foo", &error);
-+ assert (new_obj == NULL);
-+ assert (error == json_tokener_error_parse_boolean);
-
- new_obj = json_tokener_parse("{ \"foo");
- if(is_error(new_obj)) printf("got error as expected\n");
---
-1.7.6.4
-