diff options
author | Martin Mares <mj@ucw.cz> | 1998-12-06 23:10:28 +0000 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1998-12-06 23:10:28 +0000 |
commit | cc12cf05c789ef85d72cf19e9b52f0c4982542f7 (patch) | |
tree | 2e0823e050ba57446c4398862ed905dc55b21e6f /conf | |
parent | a1bf6440b5c27f7fb829eb25f6ac1c2629eb72eb (diff) |
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.
Diffstat (limited to 'conf')
-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); |