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/Makefile | 2 +- lib/json_util.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ lib/json_util.h | 27 +++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 lib/json_util.c create mode 100644 lib/json_util.h (limited to 'lib') diff --git a/lib/Makefile b/lib/Makefile index 7d0ae7e8..f20b3797 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -12,7 +12,7 @@ _SRCDIR_ := $(_SRCDIR_)lib/ endif # [SH] Program variables -objects = arc.o base64.o $(EVENT_HANDLER) ftutil.o http_client.o ini.o json.o md5.o misc.o oauth.o oauth2.o proxy.o sha1.o $(SSL_CLIENT) url.o xmltree.o +objects = arc.o base64.o $(EVENT_HANDLER) ftutil.o http_client.o ini.o json.o json_util.o md5.o misc.o oauth.o oauth2.o proxy.o sha1.o $(SSL_CLIENT) url.o xmltree.o LFLAGS += -r diff --git a/lib/json_util.c b/lib/json_util.c new file mode 100644 index 00000000..67cde749 --- /dev/null +++ b/lib/json_util.c @@ -0,0 +1,51 @@ +/***************************************************************************\ +* * +* 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 +#include + +#include "json_util.h" + +json_value *json_o_get( json_value *obj, json_char *name ) +{ + int i; + + if( obj->type != json_object ) + return NULL; + + for( i = 0; i < obj->u.object.length; ++ i) + if( strcmp( obj->u.object.values[i].name, name ) == 0 ) + return obj->u.object.values[i].value; + + return NULL; +} + +const char *json_o_str( json_value *obj, json_char *name ) +{ + json_value *ret = json_o_get( obj, name ); + + if( ret ) + return ret->u.string.ptr; + else + return NULL; +} 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