+++ /dev/null
-#
-# Copyright (C) 2011-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=jansson
-PKG_VERSION:=2.2.1
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.digip.org/jansson/releases/
-PKG_MD5SUM:=ebf4ebc7af47de27f7b9d79ad5853176
-
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/jansson
- SECTION:=libs
- CATEGORY:=Libraries
- TITLE:=JSON library
-endef
-
-TARGET_CFLAGS += $(FPIC)
-
-define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/{lib,include}
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjansson* $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
-endef
-
-define Package/jansson/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libjansson*so* $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,jansson))
+++ /dev/null
-This patch adds a function which can be used to update
-json key values on all levels, not just one, automagically
-adding new keys to objects which do not exist in old object.
-
-Signed-off-by: Roman Yeryomin <roman@advem.lv>
-
---- a/src/value.c 2011-04-21 13:15:58.000000000 +0300
-+++ b/src/value.c 2011-07-01 00:23:05.105103308 +0300
-@@ -215,6 +215,41 @@
- return 0;
- }
-
-+int json_object_deep_update(json_t *object, json_t *other)
-+{
-+ void *iter;
-+
-+ if(!json_is_object(object) || !json_is_object(other))
-+ return -1;
-+
-+ iter = json_object_iter(other);
-+ while(iter) {
-+ const char *key;
-+ json_t *value;
-+
-+ key = json_object_iter_key(iter);
-+ value = json_object_iter_value(iter);
-+
-+ if (!json_is_object(value)) {
-+ if ( json_object_set_nocheck( object, key, value ) )
-+ return -1;
-+ } else {
-+ json_t *subobj = json_object_get(object, key);
-+ if (!subobj) {
-+ json_object_set_nocheck( object, key, value );
-+ iter = json_object_iter_next(other, iter);
-+ continue;
-+ }
-+ if (json_object_deep_update( subobj, value ) == -1)
-+ return -1;
-+ }
-+
-+ iter = json_object_iter_next(other, iter);
-+ }
-+
-+ return 0;
-+}
-+
- void *json_object_iter(json_t *json)
- {
- json_object_t *object;
+++ /dev/null
---- a/src/jansson.h
-+++ b/src/jansson.h
-@@ -126,6 +126,7 @@ int json_object_set_new_nocheck(json_t *
- int json_object_del(json_t *object, const char *key);
- int json_object_clear(json_t *object);
- int json_object_update(json_t *object, json_t *other);
-+int json_object_deep_update(json_t *object, json_t *other);
- void *json_object_iter(json_t *object);
- void *json_object_iter_at(json_t *object, const char *key);
- void *json_object_iter_next(json_t *object, void *iter);