aboutsummaryrefslogtreecommitdiffstats
path: root/lib/json_util.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2012-11-08 22:38:20 +0000
committerWilmer van der Gaast <wilmer@gaast.net>2012-11-08 22:38:20 +0000
commit8e3b7acdfc96e086f1cd1c606e46d9a91d46a842 (patch)
tree9eb3d9f56cf4363f80911b4d33c4034022f64ee8 /lib/json_util.c
parent0688e99d12297b6dda980803d1f1a54bf8590299 (diff)
It logs in and fetches statuses! \o/ But, some corruption..
Diffstat (limited to 'lib/json_util.c')
-rw-r--r--lib/json_util.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/json_util.c b/lib/json_util.c
index 67cde749..43e687e3 100644
--- a/lib/json_util.c
+++ b/lib/json_util.c
@@ -26,7 +26,7 @@
#include "json_util.h"
-json_value *json_o_get( json_value *obj, json_char *name )
+json_value *json_o_get( const json_value *obj, const json_char *name )
{
int i;
@@ -40,12 +40,22 @@ json_value *json_o_get( json_value *obj, json_char *name )
return NULL;
}
-const char *json_o_str( json_value *obj, json_char *name )
+const char *json_o_str( const json_value *obj, const json_char *name )
{
json_value *ret = json_o_get( obj, name );
- if( ret )
+ if( ret && ret->type == json_string )
return ret->u.string.ptr;
else
return NULL;
}
+
+char *json_o_strdup( const json_value *obj, const json_char *name )
+{
+ json_value *ret = json_o_get( obj, name );
+
+ if( ret && ret->type == json_string && ret->u.string.ptr )
+ return g_memdup( ret->u.string.ptr, ret->u.string.length + 1 );
+ else
+ return NULL;
+}