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:
parent
a1bf6440b5
commit
cc12cf05c7
2 changed files with 14 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue