static void do_error(int code, va_list ap) {
char error[1024];
char c;
+ int i, j;
char *sp, *sp2;
- wchar_t *wsp;
+ wchar_t *wsp, *wsp2;
filepos fpos, fpos2;
int flags;
sprintf(error, "expected `}' after cross-reference");
flags = FILEPOS;
break;
+ case err_codequote:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "unable to nest \\q{...} within \\c{...} or \\cw{...}");
+ flags = FILEPOS;
+ break;
case err_missingrbrace:
fpos = *va_arg(ap, filepos *);
sprintf(error, "unclosed braces at end of paragraph");
sprintf(error, "unable to nest index markings");
flags = FILEPOS;
break;
+ case err_indexcase:
+ fpos = *va_arg(ap, filepos *);
+ wsp = va_arg(ap, wchar_t *);
+ sp = utoa_locale_dup(wsp);
+ fpos2 = *va_arg(ap, filepos *);
+ wsp2 = va_arg(ap, wchar_t *);
+ sp2 = utoa_locale_dup(wsp2);
+ sprintf(error, "warning: index tag `%.200s' used with ", sp);
+ sprintf(error + strlen(error), "different case (`%.200s') at %s:%d",
+ sp2, fpos2.filename, fpos2.line);
+ flags = FILEPOS;
+ sfree(sp);
+ sfree(sp2);
+ break;
case err_nosuchkw:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
" node names; removing", c);
flags = FILEPOS;
break;
+ case err_text_codeline:
+ fpos = *va_arg(ap, filepos *);
+ i = va_arg(ap, int);
+ j = va_arg(ap, int);
+ sprintf(error, "warning: code paragraph line is %d chars wide, wider"
+ " than body width %d", i, j);
+ flags = FILEPOS;
+ break;
case err_whatever:
sp = va_arg(ap, char *);
vsprintf(error, sp, ap);