From c08d2016c16d1748c4c527c8055f90f5a7669004 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Mon, 5 Nov 2012 00:39:01 +0100 Subject: Add json_util.c with helper functions. Keeping them in a separate file to avoid making *any* changes to the third-party json.c. --- lib/json_util.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lib/json_util.h (limited to 'lib/json_util.h') diff --git a/lib/json_util.h b/lib/json_util.h new file mode 100644 index 00000000..c4e52eeb --- /dev/null +++ b/lib/json_util.h @@ -0,0 +1,27 @@ +/***************************************************************************\ +* * +* BitlBee - An IRC to IM gateway * +* Helper functions for json.c * +* * +* Copyright 2012 Wilmer van der Gaast * +* * +* This library is free software; you can redistribute it and/or * +* modify it under the terms of the GNU Lesser General Public * +* License as published by the Free Software Foundation, version * +* 2.1. * +* * +* This library is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * +* Lesser General Public License for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this library; if not, write to the Free Software Foundation, * +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * +* * +****************************************************************************/ + +#include "json.h" + +json_value *json_o_get( json_value *obj, json_char *name ); +const char *json_o_str( json_value *obj, json_char *name ); -- cgit v1.2.3 From 8e3b7acdfc96e086f1cd1c606e46d9a91d46a842 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Thu, 8 Nov 2012 22:38:20 +0000 Subject: It logs in and fetches statuses! \o/ But, some corruption.. --- lib/json_util.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib/json_util.h') diff --git a/lib/json_util.h b/lib/json_util.h index c4e52eeb..fa4510bb 100644 --- a/lib/json_util.h +++ b/lib/json_util.h @@ -23,5 +23,12 @@ #include "json.h" -json_value *json_o_get( json_value *obj, json_char *name ); -const char *json_o_str( json_value *obj, json_char *name ); +#define JSON_O_FOREACH(o, k, v) \ + char *k; json_value *v; int __i; \ + for( __i = 0; k = (o)->u.object.values[__i].name, \ + v = (o)->u.object.values[__i].value, \ + __i < (o)->u.object.length; __i ++ ) + +json_value *json_o_get( const json_value *obj, const json_char *name ); +const char *json_o_str( const json_value *obj, const json_char *name ); +char *json_o_strdup( const json_value *obj, const json_char *name ); -- cgit v1.2.3 From 67ebc8e0063e18f88752da04e9576330193e2e13 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Mon, 12 Nov 2012 00:03:33 +0000 Subject: Fixed valgrind warnings in JSON_O_FOREACH. --- lib/json_util.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/json_util.h') diff --git a/lib/json_util.h b/lib/json_util.h index fa4510bb..e0f1f7b8 100644 --- a/lib/json_util.h +++ b/lib/json_util.h @@ -25,9 +25,10 @@ #define JSON_O_FOREACH(o, k, v) \ char *k; json_value *v; int __i; \ - for( __i = 0; k = (o)->u.object.values[__i].name, \ - v = (o)->u.object.values[__i].value, \ - __i < (o)->u.object.length; __i ++ ) + for( __i = 0; ( __i < (o)->u.object.length ) && \ + ( k = (o)->u.object.values[__i].name ) && \ + ( v = (o)->u.object.values[__i].value ); \ + __i ++ ) json_value *json_o_get( const json_value *obj, const json_char *name ); const char *json_o_str( const json_value *obj, const json_char *name ); -- cgit v1.2.3