diff options
Diffstat (limited to 'lib/json_util.c')
-rw-r--r-- | lib/json_util.c | 16 |
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; +} |