diff options
-rw-r--r-- | conf/cf-lex.l | 15 | ||||
-rw-r--r-- | conf/conf.h | 2 |
2 files changed, 14 insertions, 3 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l index f608a3d3..9e6b120f 100644 --- a/conf/cf-lex.l +++ b/conf/cf-lex.l @@ -7,12 +7,15 @@ */ %{ +#undef REJECT /* Avoid name clashes */ #include <errno.h> #include <stdlib.h> #include <string.h> +#include <stdarg.h> #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 974815a8..1e80628e 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); |