static void do_error(int code, va_list ap) {
char error[1024];
char auxbuf[256];
+ char c;
char *sp, *sp2;
wchar_t *wsp;
filepos fpos, fpos2;
break;
case err_badparatype:
wsp = va_arg(ap, wchar_t *);
- sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf));
+ sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf), CS_LOCAL);
fpos = *va_arg(ap, filepos *);
sprintf(error, "command `%.200s' unrecognised at start of"
" paragraph", sp);
break;
case err_badmidcmd:
wsp = va_arg(ap, wchar_t *);
- sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf));
+ sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf), CS_LOCAL);
fpos = *va_arg(ap, filepos *);
sprintf(error, "command `%.200s' unexpected in mid-paragraph", sp);
flags = FILEPOS;
case err_nosuchkw:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
- sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf));
+ sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf), CS_LOCAL);
sprintf(error, "unable to resolve cross-reference to `%.200s'", sp);
flags = FILEPOS;
break;
case err_multiBR:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
- sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf));
+ sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf), CS_LOCAL);
sprintf(error, "multiple `\\BR' entries given for `%.200s'", sp);
flags = FILEPOS;
break;
case err_nosuchidxtag:
wsp = va_arg(ap, wchar_t *);
- sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf));
+ sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf), CS_LOCAL);
sprintf(error, "`\\IM' on unknown index tag `%.200s'", sp);
flags = 0;
/* FIXME: need to get a filepos to here somehow */
case err_macroexists:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
- sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf));
+ sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf), CS_LOCAL);
sprintf(error, "macro `%.200s' already defined", sp);
flags = FILEPOS;
break;
fpos = *va_arg(ap, filepos *);
fpos2 = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
- sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf));
+ sp = ustrtoa(wsp, auxbuf, sizeof(auxbuf), CS_LOCAL);
sprintf(error, "paragraph keyword `%.200s' already defined at ", sp);
sprintf(error + strlen(error), "%s:%d", fpos2.filename, fpos2.line);
flags = FILEPOS;
sprintf(error, "section headings are not supported within \\%.100s",
sp);
flags = FILEPOS;
- break;
+ break;
+ case err_infodirentry:
+ fpos = *va_arg(ap, filepos *);
+ sprintf(error, "\\cfg{info-dir-entry} expects at least three"
+ " parameters");
+ flags = FILEPOS;
+ break;
+ case err_infonodechar:
+ fpos = *va_arg(ap, filepos *);
+ c = (char)va_arg(ap, int);
+ sprintf(error, "info output format does not support '%c' in"
+ " node names; removing", c);
+ flags = FILEPOS;
+ break;
case err_whatever:
sp = va_arg(ap, char *);
vsprintf(error, sp, ap);