summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
Diffstat (limited to 'conf')
-rw-r--r--conf/cf-lex.l2
-rw-r--r--conf/conf.c1
-rw-r--r--conf/confbase.Y2
3 files changed, 4 insertions, 1 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l
index dd99b497..9eb4f116 100644
--- a/conf/cf-lex.l
+++ b/conf/cf-lex.l
@@ -30,6 +30,7 @@
#include <errno.h>
#include <stdlib.h>
#include <stdarg.h>
+#include <stdint.h>
#include <unistd.h>
#include <libgen.h>
#include <glob.h>
@@ -233,6 +234,7 @@ else: {
<CCOMM>.
\!\= return NEQ;
+\!\~ return NMA;
\<\= return LEQ;
\>\= return GEQ;
\&\& return AND;
diff --git a/conf/conf.c b/conf/conf.c
index 8d4d28e3..175e223b 100644
--- a/conf/conf.c
+++ b/conf/conf.c
@@ -512,6 +512,7 @@ cf_error(const char *msg, ...)
va_start(args, msg);
if (bvsnprintf(buf, sizeof(buf), msg, args) < 0)
strcpy(buf, "<bug: error message too long>");
+ va_end(args);
new_config->err_msg = cfg_strdup(buf);
new_config->err_lino = ifs->lino;
new_config->err_file_name = ifs->file_name;
diff --git a/conf/confbase.Y b/conf/confbase.Y
index e64d7593..22edbdfd 100644
--- a/conf/confbase.Y
+++ b/conf/confbase.Y
@@ -87,7 +87,7 @@ CF_DECLS
%nonassoc PREFIX_DUMMY
%left AND OR
-%nonassoc '=' '<' '>' '~' GEQ LEQ NEQ PO PC
+%nonassoc '=' '<' '>' '~' GEQ LEQ NEQ NMA PO PC
%left '+' '-'
%left '*' '/' '%'
%left '!'