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 <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
#include "nest/bird.h"
|
#include "nest/bird.h"
|
||||||
|
#include "lib/string.h"
|
||||||
#include "conf/conf.h"
|
#include "conf/conf.h"
|
||||||
#include "conf/cf-parse.tab.h"
|
#include "conf/cf-parse.tab.h"
|
||||||
|
|
||||||
|
@ -221,9 +224,16 @@ cf_lex_init_tables(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
void
|
||||||
|
@ -243,3 +253,4 @@ cfg_strdup(char *c)
|
||||||
memcpy(z, c, l);
|
memcpy(z, c, l);
|
||||||
return z;
|
return z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ struct symbol {
|
||||||
void cf_lex_init_tables(void);
|
void cf_lex_init_tables(void);
|
||||||
int cf_lex(void);
|
int cf_lex(void);
|
||||||
void cf_lex_init(int flag);
|
void cf_lex_init(int flag);
|
||||||
void cf_error(char *msg) NORET;
|
void cf_error(char *msg, ...) NORET;
|
||||||
void cf_allocate(void);
|
void cf_allocate(void);
|
||||||
struct symbol *cf_default_name(char *prefix);
|
struct symbol *cf_default_name(char *prefix);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue