From cc12cf05c789ef85d72cf19e9b52f0c4982542f7 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 6 Dec 1998 23:10:28 +0000 Subject: cf_error() now accepts any format strings instead of just an error message. Also added extra kludge to get rid of collisions of REJECT symbols. --- conf/cf-lex.l | 15 +++++++++++++-- conf/conf.h | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'conf') diff --git a/conf/cf-lex.l b/conf/cf-lex.l index f608a3d..9e6b120 100644 --- a/conf/cf-lex.l +++ b/conf/cf-lex.l @@ -7,12 +7,15 @@ */ %{ +#undef REJECT /* Avoid name clashes */ #include #include #include +#include #include "nest/bird.h" +#include "lib/string.h" #include "conf/conf.h" #include "conf/cf-parse.tab.h" @@ -221,9 +224,16 @@ cf_lex_init_tables(void) } void -cf_error(char *msg) +cf_error(char *msg, ...) { - die(PATH_CONFIG ", line %d: %s", cf_lino, msg); + /* FIXME */ + + char buf[1024]; + va_list args; + + va_start(args, msg); + bvsprintf(buf, msg, args); + die(PATH_CONFIG ", line %d: %s", cf_lino, buf); } void @@ -243,3 +253,4 @@ cfg_strdup(char *c) memcpy(z, c, l); return z; } + diff --git a/conf/conf.h b/conf/conf.h index 974815a..1e80628 100644 --- a/conf/conf.h +++ b/conf/conf.h @@ -40,7 +40,7 @@ struct symbol { void cf_lex_init_tables(void); int cf_lex(void); void cf_lex_init(int flag); -void cf_error(char *msg) NORET; +void cf_error(char *msg, ...) NORET; void cf_allocate(void); struct symbol *cf_default_name(char *prefix); -- cgit v1.2.3