From 5962bc68e42573972c6a429a113474d09d53c3b0 Mon Sep 17 00:00:00 2001 From: Jussi Lehtola Date: Thu, 8 Apr 2010 05:07:46 +0000 Subject: [PATCH 01/11] Initial import. --- .cvsignore | 1 + import.log | 1 + json-c.spec | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 4 files changed, 79 insertions(+) create mode 100644 import.log create mode 100644 json-c.spec diff --git a/.cvsignore b/.cvsignore index e69de29..08586e2 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +json-c-0.9.tar.gz diff --git a/import.log b/import.log new file mode 100644 index 0000000..dde31ca --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +json-c-0_9-1_fc12:HEAD:json-c-0.9-1.fc12.src.rpm:1270703116 diff --git a/json-c.spec b/json-c.spec new file mode 100644 index 0000000..cdf0a7c --- /dev/null +++ b/json-c.spec @@ -0,0 +1,76 @@ +Name: json-c +Version: 0.9 +Release: 1%{?dist} +Summary: A JSON implementation in C +Group: Development/Libraries +License: MIT +URL: http://oss.metaparadigm.com/json-c/ +Source0: http://oss.metaparadigm.com/json-c/json-c-%{version}.tar.gz +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) + + +%description +JSON-C implements a reference counting object model that allows you to easily +construct JSON objects in C, output them as JSON formatted strings and parse +JSON formatted strings back into the C representation of JSON objects. + +%package devel +Summary: Development headers and library for json-c +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig + +%description devel +This package contains the development headers and library for json-c. + + +%package doc +Summary: Reference manual for json-c +Group: Documentation +BuildArch: noarch + +%description doc +This package contains the reference manual for json-c. + +%prep +%setup -q +for doc in ChangeLog; do + iconv -f iso-8859-1 -t utf8 $doc > $doc.new && + touch -r $doc $doc.new && + mv $doc.new $doc +done + +%build +%configure --enable-shared --disable-static +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} +# Get rid of la files +rm -rf %{buildroot}%{_libdir}/*.la + +%clean +rm -rf %{buildroot} + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README README.html +%{_libdir}/libjson.so.* + +%files devel +%defattr(-,root,root,-) +%{_includedir}/json/ +%{_libdir}/libjson.so +%{_libdir}/pkgconfig/json.pc + +%files doc +%defattr(-,root,root,-) +%doc doc/html/* + +%changelog +* Tue Apr 06 2010 Jussi Lehtola - 0.9-1 +- First release. diff --git a/sources b/sources index e69de29..28d3e60 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +3a13d264528dcbaf3931b0cede24abae json-c-0.9.tar.gz From dd779ea9e1bb2586e0c2ba72d094728ac0b8bfbb Mon Sep 17 00:00:00 2001 From: Jussi Lehtola Date: Thu, 8 Apr 2010 05:14:21 +0000 Subject: [PATCH 02/11] Initial import. --- json-c.spec | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 2 files changed, 77 insertions(+) create mode 100644 json-c.spec diff --git a/json-c.spec b/json-c.spec new file mode 100644 index 0000000..cdf0a7c --- /dev/null +++ b/json-c.spec @@ -0,0 +1,76 @@ +Name: json-c +Version: 0.9 +Release: 1%{?dist} +Summary: A JSON implementation in C +Group: Development/Libraries +License: MIT +URL: http://oss.metaparadigm.com/json-c/ +Source0: http://oss.metaparadigm.com/json-c/json-c-%{version}.tar.gz +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) + + +%description +JSON-C implements a reference counting object model that allows you to easily +construct JSON objects in C, output them as JSON formatted strings and parse +JSON formatted strings back into the C representation of JSON objects. + +%package devel +Summary: Development headers and library for json-c +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig + +%description devel +This package contains the development headers and library for json-c. + + +%package doc +Summary: Reference manual for json-c +Group: Documentation +BuildArch: noarch + +%description doc +This package contains the reference manual for json-c. + +%prep +%setup -q +for doc in ChangeLog; do + iconv -f iso-8859-1 -t utf8 $doc > $doc.new && + touch -r $doc $doc.new && + mv $doc.new $doc +done + +%build +%configure --enable-shared --disable-static +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} +# Get rid of la files +rm -rf %{buildroot}%{_libdir}/*.la + +%clean +rm -rf %{buildroot} + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README README.html +%{_libdir}/libjson.so.* + +%files devel +%defattr(-,root,root,-) +%{_includedir}/json/ +%{_libdir}/libjson.so +%{_libdir}/pkgconfig/json.pc + +%files doc +%defattr(-,root,root,-) +%doc doc/html/* + +%changelog +* Tue Apr 06 2010 Jussi Lehtola - 0.9-1 +- First release. diff --git a/sources b/sources index e69de29..28d3e60 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +3a13d264528dcbaf3931b0cede24abae json-c-0.9.tar.gz From 38b260b8c770ea66a3e0fd4ba42617d85da178fd Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 8 May 2010 01:55:03 +0000 Subject: [PATCH 03/11] Initialize branch EL-6 for json-c --- branch | 1 + 1 file changed, 1 insertion(+) create mode 100644 branch diff --git a/branch b/branch new file mode 100644 index 0000000..46381b9 --- /dev/null +++ b/branch @@ -0,0 +1 @@ +EL-6 From a047a6dbf7c96f140317020de0f2cb727beac818 Mon Sep 17 00:00:00 2001 From: Jussi Lehtola Date: Wed, 7 Jul 2010 17:42:20 +0000 Subject: [PATCH 04/11] Sync from rawhide branch. --- json-c.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/json-c.spec b/json-c.spec index cdf0a7c..c0c0cc9 100644 --- a/json-c.spec +++ b/json-c.spec @@ -27,7 +27,9 @@ This package contains the development headers and library for json-c. %package doc Summary: Reference manual for json-c Group: Documentation +%if 0%{?fedora} > 10 || 0%{?rhel}>5 BuildArch: noarch +%endif %description doc This package contains the reference manual for json-c. From dae1c866d832a89c525b5c04bf012315c8cb13bb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 28 Jul 2010 18:54:39 +0000 Subject: [PATCH 05/11] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- import.log | 1 - 3 files changed, 22 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile delete mode 100644 import.log diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index 920e580..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: json-c -# $Id$ -NAME := json-c -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/import.log b/import.log deleted file mode 100644 index dde31ca..0000000 --- a/import.log +++ /dev/null @@ -1 +0,0 @@ -json-c-0_9-1_fc12:HEAD:json-c-0.9-1.fc12.src.rpm:1270703116 From f2d03ffeff49fec81872c544472ed4873de1445b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 28 Jul 2010 18:54:40 +0000 Subject: [PATCH 06/11] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- branch | 1 - 3 files changed, 22 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile delete mode 100644 branch diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index 920e580..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: json-c -# $Id$ -NAME := json-c -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/branch b/branch deleted file mode 100644 index 46381b9..0000000 --- a/branch +++ /dev/null @@ -1 +0,0 @@ -EL-6 From 65a5f157c7aacac7f778f9b486f303b606aebbce Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 9 Feb 2011 08:59:04 -0600 Subject: [PATCH 07/11] - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild --- json-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/json-c.spec b/json-c.spec index cdf0a7c..576d304 100644 --- a/json-c.spec +++ b/json-c.spec @@ -1,6 +1,6 @@ Name: json-c Version: 0.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A JSON implementation in C Group: Development/Libraries License: MIT @@ -72,5 +72,8 @@ rm -rf %{buildroot} %doc doc/html/* %changelog +* Wed Feb 09 2011 Fedora Release Engineering - 0.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + * Tue Apr 06 2010 Jussi Lehtola - 0.9-1 - First release. From 31209af56144f4d85d68fb331d061feddd08f694 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 13 Jan 2012 00:34:40 -0600 Subject: [PATCH 08/11] - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild --- json-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/json-c.spec b/json-c.spec index 576d304..715dfd5 100644 --- a/json-c.spec +++ b/json-c.spec @@ -1,6 +1,6 @@ Name: json-c Version: 0.9 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A JSON implementation in C Group: Development/Libraries License: MIT @@ -72,6 +72,9 @@ rm -rf %{buildroot} %doc doc/html/* %changelog +* Fri Jan 13 2012 Fedora Release Engineering - 0.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + * Wed Feb 09 2011 Fedora Release Engineering - 0.9-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild From 82503f999cd2400ef659d8fb64765d106147de68 Mon Sep 17 00:00:00 2001 From: Jiri Pirko Date: Mon, 23 Jan 2012 15:50:42 +0100 Subject: [PATCH 09/11] add json_tokener_parse_verbose, and return NULL on parser errors --- ..._parse_verbose-and-return-NULL-on-pa.patch | 120 ++++++++++++++++++ json-c.spec | 8 +- 2 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch 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 new file mode 100644 index 0000000..5558e9d --- /dev/null +++ b/json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch @@ -0,0 +1,120 @@ +From a503ee8217a9912f3c58acae33cf3d1d840dab6c Mon Sep 17 00:00:00 2001 +From: Jehiah Czebotar +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 + #include + #include ++#include + + #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 + diff --git a/json-c.spec b/json-c.spec index 715dfd5..403e79c 100644 --- a/json-c.spec +++ b/json-c.spec @@ -1,6 +1,6 @@ Name: json-c Version: 0.9 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A JSON implementation in C Group: Development/Libraries License: MIT @@ -8,6 +8,8 @@ URL: http://oss.metaparadigm.com/json-c/ Source0: http://oss.metaparadigm.com/json-c/json-c-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +# Upstream has applied this in git master branch +Patch0: json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch %description JSON-C implements a reference counting object model that allows you to easily @@ -34,6 +36,7 @@ This package contains the reference manual for json-c. %prep %setup -q +%patch0 -p1 for doc in ChangeLog; do iconv -f iso-8859-1 -t utf8 $doc > $doc.new && touch -r $doc $doc.new && @@ -72,6 +75,9 @@ rm -rf %{buildroot} %doc doc/html/* %changelog +* Mon Jan 23 2012 Jiri Pirko - 0.9-4 +- add json_tokener_parse_verbose, and return NULL on parser errors + * Fri Jan 13 2012 Fedora Release Engineering - 0.9-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild From 49cb6cca76be31ea0a2454d500ae16446ff1944b Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 19 Jul 2012 11:41:35 -0500 Subject: [PATCH 10/11] - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- json-c.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/json-c.spec b/json-c.spec index 403e79c..d0fff7a 100644 --- a/json-c.spec +++ b/json-c.spec @@ -1,6 +1,6 @@ Name: json-c Version: 0.9 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A JSON implementation in C Group: Development/Libraries License: MIT @@ -75,6 +75,9 @@ rm -rf %{buildroot} %doc doc/html/* %changelog +* Thu Jul 19 2012 Fedora Release Engineering - 0.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Mon Jan 23 2012 Jiri Pirko - 0.9-4 - add json_tokener_parse_verbose, and return NULL on parser errors From f6d6e7242115ab7c2cd81c4fe29d9ba04f97a1b9 Mon Sep 17 00:00:00 2001 From: Jussi Lehtola Date: Sat, 24 Nov 2012 15:07:01 +0200 Subject: [PATCH 11/11] Update to 0.10. --- .gitignore | 1 + ..._parse_verbose-and-return-NULL-on-pa.patch | 120 ------------------ json-c.spec | 15 +-- sources | 2 +- 4 files changed, 9 insertions(+), 129 deletions(-) delete mode 100644 json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch diff --git a/.gitignore b/.gitignore index 08586e2..b57fb07 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ json-c-0.9.tar.gz +/json-c-0.10.tar.gz 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 -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 - #include - #include -+#include - - #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 - diff --git a/json-c.spec b/json-c.spec index d0fff7a..16bb7b0 100644 --- a/json-c.spec +++ b/json-c.spec @@ -1,16 +1,13 @@ Name: json-c -Version: 0.9 -Release: 5%{?dist} +Version: 0.10 +Release: 1%{?dist} Summary: A JSON implementation in C Group: Development/Libraries License: MIT -URL: http://oss.metaparadigm.com/json-c/ -Source0: http://oss.metaparadigm.com/json-c/json-c-%{version}.tar.gz +URL: https://github.com/json-c/json-c/wiki +Source0: https://github.com/downloads/json-c/json-c/json-c-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -# Upstream has applied this in git master branch -Patch0: json-c-add-json_tokener_parse_verbose-and-return-NULL-on-pa.patch - %description JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse @@ -36,7 +33,6 @@ This package contains the reference manual for json-c. %prep %setup -q -%patch0 -p1 for doc in ChangeLog; do iconv -f iso-8859-1 -t utf8 $doc > $doc.new && touch -r $doc $doc.new && @@ -75,6 +71,9 @@ rm -rf %{buildroot} %doc doc/html/* %changelog +* Sat Nov 24 2012 Jussi Lehtola - 0.10-1 +- Update to 0.10 (BZ #879771). + * Thu Jul 19 2012 Fedora Release Engineering - 0.9-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild diff --git a/sources b/sources index 28d3e60..76cb614 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3a13d264528dcbaf3931b0cede24abae json-c-0.9.tar.gz +a4edc79410eb894f08d7d52ca9f88732 json-c-0.10.tar.gz