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.
This commit is contained in:
Martin Mares 1998-12-06 23:10:28 +00:00
parent a1bf6440b5
commit cc12cf05c7
2 changed files with 14 additions and 3 deletions

View file

@ -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;
}

View file

@ -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);