~mdw
/
sgt
/
halibut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
General configurability upgrade for the info back end.
[sgt/halibut]
/
error.c
diff --git
a/error.c
b/error.c
index
3bfa78b
..
0e90f0c
100644
(file)
--- a/
error.c
+++ b/
error.c
@@
-15,8
+15,8
@@
static void do_error(int code, va_list ap) {
char error[1024];
static void do_error(int code, va_list ap) {
char error[1024];
- char auxbuf[256];
char c;
char c;
+ int i, j;
char *sp, *sp2;
wchar_t *wsp;
filepos fpos, fpos2;
char *sp, *sp2;
wchar_t *wsp;
filepos fpos, fpos2;
@@
-82,18
+82,20
@@
static void do_error(int code, va_list ap) {
break;
case err_badparatype:
wsp = va_arg(ap, wchar_t *);
break;
case err_badparatype:
wsp = va_arg(ap, wchar_t *);
- sp = u
strtoa(wsp, auxbuf, sizeof(auxbuf)
);
+ sp = u
toa_locale_dup(wsp
);
fpos = *va_arg(ap, filepos *);
sprintf(error, "command `%.200s' unrecognised at start of"
" paragraph", sp);
flags = FILEPOS;
fpos = *va_arg(ap, filepos *);
sprintf(error, "command `%.200s' unrecognised at start of"
" paragraph", sp);
flags = FILEPOS;
+ sfree(sp);
break;
case err_badmidcmd:
wsp = va_arg(ap, wchar_t *);
break;
case err_badmidcmd:
wsp = va_arg(ap, wchar_t *);
- sp = u
strtoa(wsp, auxbuf, sizeof(auxbuf)
);
+ sp = u
toa_locale_dup(wsp
);
fpos = *va_arg(ap, filepos *);
sprintf(error, "command `%.200s' unexpected in mid-paragraph", sp);
flags = FILEPOS;
fpos = *va_arg(ap, filepos *);
sprintf(error, "command `%.200s' unexpected in mid-paragraph", sp);
flags = FILEPOS;
+ sfree(sp);
break;
case err_unexbrace:
fpos = *va_arg(ap, filepos *);
break;
case err_unexbrace:
fpos = *va_arg(ap, filepos *);
@@
-138,23
+140,26
@@
static void do_error(int code, va_list ap) {
case err_nosuchkw:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
case err_nosuchkw:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
- sp = u
strtoa(wsp, auxbuf, sizeof(auxbuf)
);
+ sp = u
toa_locale_dup(wsp
);
sprintf(error, "unable to resolve cross-reference to `%.200s'", sp);
flags = FILEPOS;
sprintf(error, "unable to resolve cross-reference to `%.200s'", sp);
flags = FILEPOS;
+ sfree(sp);
break;
case err_multiBR:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
break;
case err_multiBR:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
- sp = u
strtoa(wsp, auxbuf, sizeof(auxbuf)
);
+ sp = u
toa_locale_dup(wsp
);
sprintf(error, "multiple `\\BR' entries given for `%.200s'", sp);
flags = FILEPOS;
sprintf(error, "multiple `\\BR' entries given for `%.200s'", sp);
flags = FILEPOS;
+ sfree(sp);
break;
case err_nosuchidxtag:
break;
case err_nosuchidxtag:
+ fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
wsp = va_arg(ap, wchar_t *);
- sp = u
strtoa(wsp, auxbuf, sizeof(auxbuf)
);
+ sp = u
toa_locale_dup(wsp
);
sprintf(error, "`\\IM' on unknown index tag `%.200s'", sp);
sprintf(error, "`\\IM' on unknown index tag `%.200s'", sp);
-
flags = 0
;
- /* FIXME: need to get a filepos to here somehow */
+
sfree(sp)
;
+ flags = FILEPOS;
break;
case err_cantopenw:
sp = va_arg(ap, char *);
break;
case err_cantopenw:
sp = va_arg(ap, char *);
@@
-164,9
+169,10
@@
static void do_error(int code, va_list ap) {
case err_macroexists:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
case err_macroexists:
fpos = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
- sp = u
strtoa(wsp, auxbuf, sizeof(auxbuf)
);
+ sp = u
toa_locale_dup(wsp
);
sprintf(error, "macro `%.200s' already defined", sp);
flags = FILEPOS;
sprintf(error, "macro `%.200s' already defined", sp);
flags = FILEPOS;
+ sfree(sp);
break;
case err_sectjump:
fpos = *va_arg(ap, filepos *);
break;
case err_sectjump:
fpos = *va_arg(ap, filepos *);
@@
-185,10
+191,11
@@
static void do_error(int code, va_list ap) {
fpos = *va_arg(ap, filepos *);
fpos2 = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
fpos = *va_arg(ap, filepos *);
fpos2 = *va_arg(ap, filepos *);
wsp = va_arg(ap, wchar_t *);
- sp = u
strtoa(wsp, auxbuf, sizeof(auxbuf)
);
+ sp = u
toa_locale_dup(wsp
);
sprintf(error, "paragraph keyword `%.200s' already defined at ", sp);
sprintf(error + strlen(error), "%s:%d", fpos2.filename, fpos2.line);
flags = FILEPOS;
sprintf(error, "paragraph keyword `%.200s' already defined at ", sp);
sprintf(error + strlen(error), "%s:%d", fpos2.filename, fpos2.line);
flags = FILEPOS;
+ sfree(sp);
break;
case err_misplacedlcont:
fpos = *va_arg(ap, filepos *);
break;
case err_misplacedlcont:
fpos = *va_arg(ap, filepos *);
@@
-208,12
+215,6
@@
static void do_error(int code, va_list ap) {
" parameters");
flags = FILEPOS;
break;
" parameters");
flags = FILEPOS;
break;
- case err_infoindexcolon:
- fpos = *va_arg(ap, filepos *);
- sprintf(error, "info output format does not support colons in"
- " index terms; removing");
- flags = FILEPOS;
- break;
case err_infonodechar:
fpos = *va_arg(ap, filepos *);
c = (char)va_arg(ap, int);
case err_infonodechar:
fpos = *va_arg(ap, filepos *);
c = (char)va_arg(ap, int);
@@
-221,6
+222,14
@@
static void do_error(int code, va_list ap) {
" node names; removing", c);
flags = FILEPOS;
break;
" 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);
case err_whatever:
sp = va_arg(ap, char *);
vsprintf(error, sp, ap);