From c9514de97e4070c4c4c0801333f548644787d5f9 Mon Sep 17 00:00:00 2001 From: omochimetaru Date: Sat, 12 Jan 2019 13:39:34 +0900 Subject: [PATCH] va_list overload --- src/api/yajl_gen.h | 3 +++ src/yajl_gen.c | 15 +++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/api/yajl_gen.h b/src/api/yajl_gen.h index a74cff1b..5ce4ab16 100644 --- a/src/api/yajl_gen.h +++ b/src/api/yajl_gen.h @@ -25,6 +25,7 @@ #define __YAJL_GEN_H__ #include +#include #ifdef __cplusplus extern "C" { @@ -106,6 +107,8 @@ extern "C" { * \returns zero in case of errors, non-zero otherwise */ YAJL_API int yajl_gen_config(yajl_gen g, yajl_gen_option opt, ...); + + YAJL_API int yajl_gen_config_v(yajl_gen g, yajl_gen_option opt, va_list ap); /** allocate a generator handle * \param allocFuncs an optional pointer to a structure which allows diff --git a/src/yajl_gen.c b/src/yajl_gen.c index 0f5c68e8..60bf34f8 100644 --- a/src/yajl_gen.c +++ b/src/yajl_gen.c @@ -47,12 +47,17 @@ struct yajl_gen_t yajl_alloc_funcs alloc; }; -int -yajl_gen_config(yajl_gen g, yajl_gen_option opt, ...) -{ - int rv = 1; +int yajl_gen_config(yajl_gen g, yajl_gen_option opt, ...) { va_list ap; va_start(ap, opt); + int rv = yajl_gen_config_v(g, opt, ap); + va_end(ap); + return rv; +} + +int yajl_gen_config_v(yajl_gen g, yajl_gen_option opt, va_list ap) +{ + int rv = 1; switch(opt) { case yajl_gen_beautify: @@ -87,8 +92,6 @@ yajl_gen_config(yajl_gen g, yajl_gen_option opt, ...) rv = 0; } - va_end(ap); - return rv; }