From c3240b9133c2ed1ffad366b681f664b93e5db33a Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Tue, 25 Mar 2014 14:31:24 +0900 Subject: [PATCH] add pic_warnf --- include/picrin.h | 6 +++++- src/error.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/picrin.h b/include/picrin.h index a2fafe9e..75e9fb13 100644 --- a/include/picrin.h +++ b/include/picrin.h @@ -179,13 +179,17 @@ void pic_export(pic_state *, pic_sym); noreturn void pic_abort(pic_state *, const char *); noreturn void pic_errorf(pic_state *, const char *, ...); -void pic_warn(pic_state *, const char *); +void pic_warnf(pic_state *, const char *, ...); /* obsoleted */ noreturn static inline void pic_error(pic_state *pic, const char *msg) { pic_errorf(pic, msg); } +static inline void pic_warn(pic_state *pic, const char *msg) +{ + pic_warnf(pic, msg); +} const char *pic_errmsg(pic_state *); diff --git a/src/error.c b/src/error.c index f5c3d24f..75b815f1 100644 --- a/src/error.c +++ b/src/error.c @@ -22,11 +22,16 @@ pic_abort(pic_state *pic, const char *msg) } void -pic_warn(pic_state *pic, const char *msg) +pic_warnf(pic_state *pic, const char *fmt, ...) { - UNUSED(pic); + va_list ap; + pic_value err_line; - fprintf(stderr, "warn: %s\n", msg); + va_start(ap, fmt); + err_line = pic_vformat(pic, fmt, ap); + va_end(ap); + + fprintf(stderr, "warn: %s\n", pic_str_cstr(pic_str_ptr(pic_car(pic, err_line)))); } void