X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/c437c4c4d294b54c99a58f3130c82013a1bf7024..refs/heads/master:/input.c diff --git a/input.c b/input.c index 8556d9f..1ec733c 100644 --- a/input.c +++ b/input.c @@ -49,7 +49,7 @@ static void macrodef(tree234 *macros, wchar_t *name, wchar_t *text, m->name = name; m->text = text; if (add234(macros, m) != m) { - error(err_macroexists, &fpos, name); + err_macroexists(&fpos, name); sfree(name); sfree(text); } @@ -693,7 +693,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, wtype == word_WeakCode) { wtype = word_Emph; } else { - error(err_brokencodepara, &t.pos); + err_brokencodepara(&t.pos); prev_para_type = par.type; addpara(par, ret); while (t.type != tok_eop) /* error recovery: */ @@ -722,7 +722,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, */ dtor(t), t = get_token(in); if (t.type != tok_lbrace) { - error(err_explbr, &t.pos); + err_explbr(&t.pos); continue; } @@ -765,7 +765,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, * don't give a cascade error. */ sitem->type = -1; - error(err_misplacedlcont, &t.pos); + err_misplacedlcont(&t.pos); } } else { /* @@ -790,7 +790,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, } else if (t.type == tok_rbrace) { struct crossparaitem *sitem = stk_pop(crossparastk); if (!sitem) - error(err_unexbrace, &t.pos); + err_unexbrace(&t.pos); else { switch (sitem->type) { case c_lcont: @@ -832,7 +832,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, needkw = -1; break; case c__invalid: - error(err_badparatype, t.text, &t.pos); + err_badparatype(t.text, &t.pos); needkw = 4; break; case c__comment: @@ -891,8 +891,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, par.type == para_UnnumberedChapter) { struct crossparaitem *sitem = stk_top(crossparastk); if (sitem && (sitem->seen_lcont || sitem->seen_quote)) { - error(err_sectmarkerinblock, - &t.pos, + err_sectmarkerinblock( &t.pos, (sitem->seen_lcont ? "lcont" : "quote")); } } @@ -945,7 +944,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, } } if (t.type != tok_rbrace) { - error(err_kwunclosed, &t.pos); + err_kwunclosed(&t.pos); continue; } rdadd(&rs, 0); /* add string terminator */ @@ -958,11 +957,11 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, /* See whether we have the right number of keywords. */ if ((needkw & 48) && nkeys > 0) - error(err_kwillegal, &fp); + err_kwillegal(&fp); if ((needkw & 11) && nkeys == 0) - error(err_kwexpected, &fp); + err_kwexpected(&fp); if ((needkw & 5) && nkeys > 1) - error(err_kwtoomany, &fp); + err_kwtoomany(&fp); if (is_macro) { /* @@ -978,7 +977,8 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, rdadd(¯otext, L'\n'); rdadds(¯otext, t.text); dtor(t), t = get_token(in); - if (t.type == tok_eop) break; + if (t.type == tok_eop || t.type == tok_eof) + break; } macrodef(macros, rs.text, macrotext.text, fp); continue; /* next paragraph */ @@ -995,7 +995,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, if (t.type != tok_eop && t.type != tok_eof && (start_cmd == c__invalid || t.type != tok_cmd || t.cmd != start_cmd)) { - error(err_bodyillegal, &t.pos); + err_bodyillegal(&t.pos); /* Error recovery: eat the rest of the paragraph */ while (t.type != tok_eop && t.type != tok_eof && (start_cmd == c__invalid || @@ -1112,7 +1112,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, } break; case tok_lbrace: - error(err_unexbrace, &t.pos); + err_unexbrace(&t.pos); /* Error recovery: push nop */ sitem = snew(struct stack_item); sitem->type = stack_nop; @@ -1198,7 +1198,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, */ dtor(t), t = get_token(in); if (t.type != tok_lbrace) { - error(err_explbr, &t.pos); + err_explbr(&t.pos); } else { int braces = 1; while (braces > 0) { @@ -1208,7 +1208,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, else if (t.type == tok_rbrace) braces--; else if (t.type == tok_eof) { - error(err_commenteof, &t.pos); + err_commenteof(&t.pos); break; } } @@ -1227,7 +1227,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, type = t.cmd; dtor(t), t = get_token(in); if (t.type != tok_lbrace) { - error(err_explbr, &t.pos); + err_explbr(&t.pos); } else { /* * Enforce that \q may not be used anywhere @@ -1256,7 +1256,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, } stype = stack_quote; } else { - error(err_codequote, &t.pos); + err_codequote(&t.pos); stype = stack_nop; } sitem = snew(struct stack_item); @@ -1264,7 +1264,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, sitem->type = stype; if (type == c_cq) { if (style != word_Normal) { - error(err_nestedstyles, &t.pos); + err_nestedstyles(&t.pos); } else { style = word_WeakCode; spcstyle = tospacestyle(style); @@ -1302,7 +1302,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, wdtext = ustrftime(NULL, broken); wd.type = style; } else { - error(err_explbr, &t.pos); + err_explbr(&t.pos); wdtext = NULL; } } else { @@ -1324,7 +1324,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, } sfree(rs.text); if (t.type != tok_rbrace) { - error(err_kwexprbr, &t.pos); + err_kwexprbr(&t.pos); } } wd.alt = NULL; @@ -1354,7 +1354,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, if (t.type == tok_cmd && (t.cmd == c_i || t.cmd == c_ii)) { if (indexing) { - error(err_nestedindex, &t.pos); + err_nestedindex(&t.pos); } else { /* Add an index-reference word with no * text as yet */ @@ -1385,7 +1385,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, if (t.type == tok_cmd && (t.cmd == c_e || t.cmd == c_c || t.cmd == c_cw)) { if (style != word_Normal) - error(err_nestedstyles, &t.pos); + err_nestedstyles(&t.pos); else { style = (t.cmd == c_c ? word_Code : t.cmd == c_cw ? word_WeakCode : @@ -1396,7 +1396,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, dtor(t), t = get_token(in); } if (t.type != tok_lbrace) { - error(err_explbr, &t.pos); + err_explbr(&t.pos); sfree(sitem); } else { stk_push(parsestk, sitem); @@ -1408,7 +1408,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, case c_e: type = t.cmd; if (style != word_Normal) { - error(err_nestedstyles, &t.pos); + err_nestedstyles(&t.pos); /* Error recovery: eat lbrace, push nop. */ dtor(t), t = get_token(in); sitem = snew(struct stack_item); @@ -1418,7 +1418,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, } dtor(t), t = get_token(in); if (t.type != tok_lbrace) { - error(err_explbr, &t.pos); + err_explbr(&t.pos); } else { style = (type == c_c ? word_Code : type == c_cw ? word_WeakCode : @@ -1435,7 +1435,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, case c_I: type = t.cmd; if (indexing) { - error(err_nestedindex, &t.pos); + err_nestedindex(&t.pos); /* Error recovery: eat lbrace, push nop. */ dtor(t), t = get_token(in); sitem = snew(struct stack_item); @@ -1454,7 +1454,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, if (t.type == tok_cmd && (t.cmd == c_e || t.cmd == c_c || t.cmd == c_cw)) { if (style != word_Normal) - error(err_nestedstyles, &t.pos); + err_nestedstyles(&t.pos); else { style = (t.cmd == c_c ? word_Code : t.cmd == c_cw ? word_WeakCode : @@ -1466,7 +1466,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, } if (t.type != tok_lbrace) { sfree(sitem); - error(err_explbr, &t.pos); + err_explbr(&t.pos); } else { /* Add an index-reference word with no text as yet */ wd.type = word_IndexRef; @@ -1529,7 +1529,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, break; default: if (!macrolookup(macros, in, t.text, &t.pos)) - error(err_badmidcmd, t.text, &t.pos); + err_badmidcmd(t.text, &t.pos); break; } } @@ -1542,7 +1542,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, if (stk_top(parsestk)) { while ((sitem = stk_pop(parsestk))) sfree(sitem); - error(err_missingrbrace, &t.pos); + err_missingrbrace(&t.pos); } stk_free(parsestk); prev_para_type = par.type; @@ -1564,7 +1564,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, if (stk_top(crossparastk)) { void *p; - error(err_missingrbrace2, &t.pos); + err_missingrbrace2(&t.pos); while ((p = stk_pop(crossparastk))) sfree(p); }