summaryrefslogtreecommitdiff
path: root/error.c
diff options
context:
space:
mode:
Diffstat (limited to 'error.c')
-rw-r--r--error.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/error.c b/error.c
index d115073..4f7524c 100644
--- a/error.c
+++ b/error.c
@@ -18,7 +18,7 @@ static void do_error(int code, va_list ap) {
char auxbuf[256];
char *sp, *sp2;
wchar_t *wsp;
- filepos fpos;
+ filepos fpos, fpos2;
int flags;
switch(code) {
@@ -175,6 +175,15 @@ static void do_error(int code, va_list ap) {
"previously defined `%.200s'", sp, sp2);
flags = FILEPOS;
break;
+ case err_multikw:
+ fpos = *va_arg(ap, filepos *);
+ fpos2 = *va_arg(ap, filepos *);
+ wsp = va_arg(ap, wchar_t *);
+ sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf));
+ sprintf(error, "paragraph keyword `%.200s' already defined at ", sp);
+ sprintf(error + strlen(error), "%s:%d", fpos2.filename, fpos2.line);
+ flags = FILEPOS;
+ break;
case err_whatever:
sp = va_arg(ap, char *);
vsprintf(error, sp, ap);