=================================================================== RCS file: /cvs/texi2mdoc/main.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -p -r1.43 -r1.44 --- texi2mdoc/main.c 2015/02/24 20:34:43 1.43 +++ texi2mdoc/main.c 2015/02/24 21:06:52 1.44 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.43 2015/02/24 20:34:43 kristaps Exp $ */ +/* $Id: main.c,v 1.44 2015/02/24 21:06:52 kristaps Exp $ */ /* * Copyright (c) 2015 Kristaps Dzonsons * @@ -45,6 +45,7 @@ static void dobye(struct texi *, enum texicmd, const c static void dodefindex(struct texi *, enum texicmd, const char *, size_t, size_t *); static void dodefn(struct texi *, enum texicmd, const char *, size_t, size_t *); static void dodisplay(struct texi *, enum texicmd, const char *, size_t, size_t *); +static void doend(struct texi *, enum texicmd, const char *, size_t, size_t *); static void doenumerate(struct texi *, enum texicmd, const char *, size_t, size_t *); static void doexample(struct texi *, enum texicmd, const char *, size_t, size_t *); static void doignargn(struct texi *, enum texicmd, const char *, size_t, size_t *); @@ -149,12 +150,13 @@ static const struct texitok __texitoks[TEXICMD__MAX] = { doignbracket, "dmn", 3 }, /* TEXICMD_DMN */ { doignblock, "documentdescription", 19 }, /* TEXICMD_DOCUMENTDESCRIPTION */ { doignline, "documentencoding", 16 }, /* TEXICMD_DOCUMENTENCODING */ + { doignline, "documentlanguage", 16 }, /* TEXICMD_DOCUMENTLANGUAGE */ { doaccent, "dotaccent", 9 }, /* TEXICMD_DOTACCENT */ { doaccent, "dotless", 7 }, /* TEXICMD_DOTLESS */ { dosymbol, "dots", 4 }, /* TEXICMD_DOTS */ { dolink, "email", 5 }, /* TEXICMD_EMAIL */ { doinline, "emph", 4 }, /* TEXICMD_EMPH */ - { NULL, "end", 3 }, /* TEXICMD_END */ + { doend, "end", 3 }, /* TEXICMD_END */ { dosymbol, "enddots", 7 }, /* TEXICMD_ENDDOTS */ { doenumerate, "enumerate", 9 }, /* TEXICMD_ENUMERATE */ { doinline, "env", 3 }, /* TEXICMD_ENV */ @@ -168,7 +170,11 @@ static const struct texitok __texitoks[TEXICMD__MAX] = { doinline, "file", 4 }, /* TEXICMD_FILE */ { doignline, "finalout", 8 }, /* TEXICMD_FINALOUT */ { doignline, "findex", 6 }, /* TEXICMD_FINDEX */ + { doblock, "flushleft", 9 }, /* TEXICMD_FLUSHLEFT */ + { doblock, "flushright", 10 }, /* TEXICMD_FLUSHRIGHT */ + { doignline, "firstparagraphindent", 20 }, /* TEXICMD_FIRSTPARAGRAPHINDENT */ { doignbracket, "footnote", 8 }, /* TEXICMD_FOOTNOTE */ + { doignline, "footnotestyle", 13 }, /* TEXICMD_FOOTNOTESTYLE */ { dotable, "ftable", 6 }, /* TEXICMD_FTABLE */ { dodisplay, "format", 6 }, /* TEXICMD_FORMAT */ { dosymbol, "geq", 3 }, /* TEXICMD_GEQ */ @@ -205,7 +211,8 @@ static const struct texitok __texitoks[TEXICMD__MAX] = { doignbracket, "image", 5 }, /* TEXICMD_IMAGE */ { doinclude, "include", 7 }, /* TEXICMD_INCLUDE */ { dodisplay, "indentblock", 11 }, /* TEXICMD_INDENTBLOCK */ - { dolink, "inforef", 7 }, /* TEXICMD_INDENTBLOCK */ + { dolink, "indicateurl", 11 }, /* TEXICMD_INDICATEURL */ + { dolink, "inforef", 7 }, /* TEXICMD_INFOREF */ { doignline, "insertcopying", 13 }, /* TEXICMD_INSERTCOPYING */ { doitem, "item", 4 }, /* TEXICMD_ITEM */ { doitemize, "itemize", 7 }, /* TEXICMD_ITEMIZE */ @@ -1401,6 +1408,7 @@ dolink(struct texi *p, enum texicmd cmd, break; case (TEXICMD_UREF): case (TEXICMD_URL): + case (TEXICMD_INDICATEURL): teximacroopen(p, "Lk"); break; case (TEXICMD_XREF): @@ -1738,6 +1746,22 @@ dotable(struct texi *p, enum texicmd cmd, parseto(p, buf, sz, pos, texitoks[cmd].tok); teximacro(p, "El"); p->list = sv; +} + +static void +doend(struct texi *p, enum texicmd cmd, + const char *buf, size_t sz, size_t *pos) +{ + size_t start; + + while (*pos < sz && isws(buf[*pos])) + advance(p, buf, pos); + start = *pos; + while (*pos < sz && '\n' != buf[*pos]) + advance(p, buf, pos); + + texiwarn(p, "unexpected \"end\": %.*s", (int)(*pos - start), &buf[start]); + advanceeoln(p, buf, sz, pos, 1); } static void