Commit cc12cf05 authored by Martin Mareš's avatar Martin Mareš

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.
parent a1bf6440
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment