version 1.11, 2015/02/18 16:35:49 |
version 1.12, 2015/02/18 23:08:16 |
|
|
TEXICMD_ASTERISK, |
TEXICMD_ASTERISK, |
TEXICMD_AT, |
TEXICMD_AT, |
TEXICMD_AUTHOR, |
TEXICMD_AUTHOR, |
|
TEXICMD_B, |
TEXICMD_BANG, |
TEXICMD_BANG, |
TEXICMD_BULLET, |
TEXICMD_BULLET, |
TEXICMD_BYE, |
TEXICMD_BYE, |
|
|
TEXICMD_PAGE, |
TEXICMD_PAGE, |
TEXICMD_PARINDENT, |
TEXICMD_PARINDENT, |
TEXICMD_PRINTINDEX, |
TEXICMD_PRINTINDEX, |
|
TEXICMD_R, |
TEXICMD_REF, |
TEXICMD_REF, |
TEXICMD_SAMP, |
TEXICMD_SAMP, |
|
TEXICMD_SANSSERIF, |
TEXICMD_SC, |
TEXICMD_SC, |
TEXICMD_SECTION, |
TEXICMD_SECTION, |
TEXICMD_SET, |
TEXICMD_SET, |
TEXICMD_SETCHAPNEWPAGE, |
TEXICMD_SETCHAPNEWPAGE, |
TEXICMD_SETFILENAME, |
TEXICMD_SETFILENAME, |
TEXICMD_SETTITLE, |
TEXICMD_SETTITLE, |
|
TEXICMD_SLANTED, |
TEXICMD_SP, |
TEXICMD_SP, |
TEXICMD_SPACE, |
TEXICMD_SPACE, |
|
TEXICMD_SMALLDISPLAY, |
TEXICMD_SMALLEXAMPLE, |
TEXICMD_SMALLEXAMPLE, |
TEXICMD_SQUIGGLE_LEFT, |
TEXICMD_SQUIGGLE_LEFT, |
TEXICMD_SQUIGGLE_RIGHT, |
TEXICMD_SQUIGGLE_RIGHT, |
TEXICMD_STRONG, |
TEXICMD_STRONG, |
TEXICMD_SUBSECTION, |
TEXICMD_SUBSECTION, |
TEXICMD_SUBTITLE, |
TEXICMD_SUBTITLE, |
|
TEXICMD_T, |
TEXICMD_TAB, |
TEXICMD_TAB, |
TEXICMD_TABLE, |
TEXICMD_TABLE, |
TEXICMD_TEX, |
TEXICMD_TEX, |
|
|
static void doblock(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doblock(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dobracket(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dobracket(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dobye(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dobye(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dochapter(struct texi *, enum texicmd, const char *, size_t, size_t *); |
|
static void docommand(struct texi *, enum texicmd, const char *, size_t, size_t *); |
|
static void dodeftypefun(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dodeftypefun(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dodeftypevar(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dodeftypevar(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 dodisplay(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doemph(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 doenumerate(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doenv(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 doexample(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dofile(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dofont(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doignargn(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doignargn(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doignblock(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doignblock(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doignbracket(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doignbracket(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doignline(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doignline(struct texi *, enum texicmd, const char *, size_t, size_t *); |
|
static void doinline(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doinclude(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doinclude(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doitalic(struct texi *, enum texicmd, const char *, size_t, size_t *); |
|
static void doitem(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doitem(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doitemize(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doitemize(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dolink(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dolink(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doliteral(struct texi *, enum texicmd, const char *, size_t, size_t *); |
|
static void domath(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void domath(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doquotation(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doquotation(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dotable(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void dotable(struct texi *, enum texicmd, const char *, size_t, size_t *); |
Line 244 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 245 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ doignargn, "acronym", 7 }, /* TEXICMD_ACRONYM */ |
{ doignargn, "acronym", 7 }, /* TEXICMD_ACRONYM */ |
{ doignline, "afourpaper", 10 }, /* TEXICMD_A4PAPER */ |
{ doignline, "afourpaper", 10 }, /* TEXICMD_A4PAPER */ |
{ doignbracket, "anchor", 6 }, /* TEXICMD_ANCHOR */ |
{ doignbracket, "anchor", 6 }, /* TEXICMD_ANCHOR */ |
{ dochapter, "appendix", 8 }, /* TEXICMD_APPENDIX */ |
{ dosection, "appendix", 8 }, /* TEXICMD_APPENDIX */ |
{ dochapter, "appendixsec", 11 }, /* TEXICMD_APPENDIXSEC */ |
{ dosection, "appendixsec", 11 }, /* TEXICMD_APPENDIXSEC */ |
{ dosymbol, "*", 1 }, /* TEXICMD_ASTERISK */ |
{ dosymbol, "*", 1 }, /* TEXICMD_ASTERISK */ |
{ dosymbol, "@", 1 }, /* TEXICMD_AT */ |
{ dosymbol, "@", 1 }, /* TEXICMD_AT */ |
{ doignline, "author", 6 }, /* TEXICMD_AUTHOR */ |
{ doignline, "author", 6 }, /* TEXICMD_AUTHOR */ |
|
{ dofont, "b", 1 }, /* TEXICMD_BOLD */ |
{ dosymbol, "!", 1 }, /* TEXICMD_BANG */ |
{ dosymbol, "!", 1 }, /* TEXICMD_BANG */ |
{ dosymbol, "bullet", 6 }, /* TEXICMD_BULLET */ |
{ dosymbol, "bullet", 6 }, /* TEXICMD_BULLET */ |
{ dobye, "bye", 3 }, /* TEXICMD_BYE */ |
{ dobye, "bye", 3 }, /* TEXICMD_BYE */ |
{ doignline, "center", 5 }, /* TEXICMD_CENTER */ |
{ doignline, "center", 6 }, /* TEXICMD_CENTER */ |
{ dochapter, "chapter", 7 }, /* TEXICMD_CHAPTER */ |
{ dosection, "chapter", 7 }, /* TEXICMD_CHAPTER */ |
{ doignline, "cindex", 6 }, /* TEXICMD_CINDEX */ |
{ doignline, "cindex", 6 }, /* TEXICMD_CINDEX */ |
{ doliteral, "code", 4 }, /* TEXICMD_CODE */ |
{ dofont, "code", 4 }, /* TEXICMD_CODE */ |
{ doitalic, "cite", 4 }, /* TEXICMD_CITE */ |
{ dofont, "cite", 4 }, /* TEXICMD_CITE */ |
{ dosymbol, ":", 1 }, /* TEXICMD_COLON */ |
{ dosymbol, ":", 1 }, /* TEXICMD_COLON */ |
{ docommand, "command", 7 }, /* TEXICMD_COMMAND */ |
{ doinline, "command", 7 }, /* TEXICMD_COMMAND */ |
{ doignline, "c", 1 }, /* TEXICMD_COMMENT */ |
{ doignline, "c", 1 }, /* TEXICMD_COMMENT */ |
{ doignline, "comment", 7 }, /* TEXICMD_COMMENT_LONG */ |
{ doignline, "comment", 7 }, /* TEXICMD_COMMENT_LONG */ |
{ doignline, "contents", 8 }, /* TEXICMD_CONTENTS */ |
{ doignline, "contents", 8 }, /* TEXICMD_CONTENTS */ |
Line 271 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 273 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ dodeftypevar, "deftypevar", 10 }, /* TEXICMD_DEFTYPEVAR */ |
{ dodeftypevar, "deftypevar", 10 }, /* TEXICMD_DEFTYPEVAR */ |
{ dodeftypevar, "deftypevr", 9 }, /* TEXICMD_DEFTYPEVR */ |
{ dodeftypevar, "deftypevr", 9 }, /* TEXICMD_DEFTYPEVR */ |
{ doignblock, "detailmenu", 10 }, /* TEXICMD_DETAILMENU */ |
{ doignblock, "detailmenu", 10 }, /* TEXICMD_DETAILMENU */ |
{ doitalic, "dfn", 3 }, /* TEXICMD_DFN */ |
{ dofont, "dfn", 3 }, /* TEXICMD_DFN */ |
{ doignline, "dircategory", 11 }, /* TEXICMD_DIRCATEGORY */ |
{ doignline, "dircategory", 11 }, /* TEXICMD_DIRCATEGORY */ |
{ doignblock, "direntry", 8 }, /* TEXICMD_DIRENTRY */ |
{ doignblock, "direntry", 8 }, /* TEXICMD_DIRENTRY */ |
{ dodisplay, "display", 7 }, /* TEXICMD_DISPLAY */ |
{ dodisplay, "display", 7 }, /* TEXICMD_DISPLAY */ |
{ dosymbol, "dots", 4 }, /* TEXICMD_DOTS */ |
{ dosymbol, "dots", 4 }, /* TEXICMD_DOTS */ |
{ dolink, "email", 5 }, /* TEXICMD_EMAIL */ |
{ dolink, "email", 5 }, /* TEXICMD_EMAIL */ |
{ doemph, "emph", 4 }, /* TEXICMD_EMPH */ |
{ dofont, "emph", 4 }, /* TEXICMD_EMPH */ |
{ NULL, "end", 3 }, /* TEXICMD_END */ |
{ NULL, "end", 3 }, /* TEXICMD_END */ |
{ doenumerate, "enumerate", 9 }, /* TEXICMD_ENUMERATE */ |
{ doenumerate, "enumerate", 9 }, /* TEXICMD_ENUMERATE */ |
{ doenv, "env", 3 }, /* TEXICMD_ENV */ |
{ doinline, "env", 3 }, /* TEXICMD_ENV */ |
{ doexample, "example", 7 }, /* TEXICMD_EXAMPLE */ |
{ doexample, "example", 7 }, /* TEXICMD_EXAMPLE */ |
{ dofile, "file", 4 }, /* TEXICMD_FILE */ |
{ doinline, "file", 4 }, /* TEXICMD_FILE */ |
{ doblock, "group", 5 }, /* TEXICMD_GROUP */ |
{ doblock, "group", 5 }, /* TEXICMD_GROUP */ |
{ dosection, "heading", 7 }, /* TEXICMD_HEADING */ |
{ dosection, "heading", 7 }, /* TEXICMD_HEADING */ |
{ doignline, "headings", 8 }, /* TEXICMD_HEADINGS */ |
{ doignline, "headings", 8 }, /* TEXICMD_HEADINGS */ |
{ dosymbol, "-", 1 }, /* TEXICMD_HYPHEN */ |
{ dosymbol, "-", 1 }, /* TEXICMD_HYPHEN */ |
{ doitalic, "i", 1 }, /* TEXICMD_I */ |
{ dofont, "i", 1 }, /* TEXICMD_I */ |
{ doignblock, "ifclear", 7 }, /* TEXICMD_IFCLEAR */ |
{ doignblock, "ifclear", 7 }, /* TEXICMD_IFCLEAR */ |
{ doignblock, "ifhtml", 6 }, /* TEXICMD_IFHTML */ |
{ doignblock, "ifhtml", 6 }, /* TEXICMD_IFHTML */ |
{ doignblock, "ifinfo", 6 }, /* TEXICMD_IFINFO */ |
{ doignblock, "ifinfo", 6 }, /* TEXICMD_IFINFO */ |
Line 299 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 301 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ doignline, "insertcopying", 13 }, /* TEXICMD_INSERTCOPYING */ |
{ doignline, "insertcopying", 13 }, /* TEXICMD_INSERTCOPYING */ |
{ doitem, "item", 4 }, /* TEXICMD_ITEM */ |
{ doitem, "item", 4 }, /* TEXICMD_ITEM */ |
{ doitemize, "itemize", 7 }, /* TEXICMD_ITEMIZE */ |
{ doitemize, "itemize", 7 }, /* TEXICMD_ITEMIZE */ |
{ doliteral, "kbd", 3 }, /* TEXICMD_KBD */ |
{ dofont, "kbd", 3 }, /* TEXICMD_KBD */ |
{ dosymbol, "LaTeX", 5 }, /* TEXICMD_LATEX */ |
{ dosymbol, "LaTeX", 5 }, /* TEXICMD_LATEX */ |
{ domath, "math", 4 }, /* TEXICMD_MATH */ |
{ domath, "math", 4 }, /* TEXICMD_MATH */ |
{ doignblock, "menu", 4 }, /* TEXICMD_MENU */ |
{ doignblock, "menu", 4 }, /* TEXICMD_MENU */ |
Line 312 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 314 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ doignline, "page", 4 }, /* TEXICMD_PAGE */ |
{ doignline, "page", 4 }, /* TEXICMD_PAGE */ |
{ doignline, "paragraphindent", 14 }, /* TEXICMD_PARINDENT */ |
{ doignline, "paragraphindent", 14 }, /* TEXICMD_PARINDENT */ |
{ doignline, "printindex", 10 }, /* TEXICMD_PRINTINDEX */ |
{ doignline, "printindex", 10 }, /* TEXICMD_PRINTINDEX */ |
|
{ dofont, "r", 1 }, /* TEXICMD_R */ |
{ dobracket, "ref", 3 }, /* TEXICMD_REF */ |
{ dobracket, "ref", 3 }, /* TEXICMD_REF */ |
{ doliteral, "samp", 4 }, /* TEXICMD_SAMP */ |
{ dofont, "samp", 4 }, /* TEXICMD_SAMP */ |
|
{ dofont, "sansserif", 9 }, /* TEXICMD_SANSSERIF */ |
{ dobracket, "sc", 2 }, /* TEXICMD_SC */ |
{ dobracket, "sc", 2 }, /* TEXICMD_SC */ |
{ dosection, "section", 7 }, /* TEXICMD_SECTION */ |
{ dosection, "section", 7 }, /* TEXICMD_SECTION */ |
{ doignline, "set", 3 }, /* TEXICMD_SET */ |
{ doignline, "set", 3 }, /* TEXICMD_SET */ |
{ doignline, "setchapternewpage", 17 }, /* TEXICMD_SETCHAPNEWPAGE */ |
{ doignline, "setchapternewpage", 17 }, /* TEXICMD_SETCHAPNEWPAGE */ |
{ doignline, "setfilename", 11 }, /* TEXICMD_SETFILENAME */ |
{ doignline, "setfilename", 11 }, /* TEXICMD_SETFILENAME */ |
{ dotitle, "settitle", 8 }, /* TEXICMD_SETTITLE */ |
{ dotitle, "settitle", 8 }, /* TEXICMD_SETTITLE */ |
|
{ dofont, "slanted", 7 }, /* TEXICMD_SLANTED */ |
{ dosp, "sp", 2 }, /* TEXICMD_SP */ |
{ dosp, "sp", 2 }, /* TEXICMD_SP */ |
{ dosymbol, " ", 1 }, /* TEXICMD_SPACE */ |
{ dosymbol, " ", 1 }, /* TEXICMD_SPACE */ |
|
{ dodisplay, "smalldisplay", 12 }, /* TEXICMD_SMALLDISPLAY */ |
{ doexample, "smallexample", 12 }, /* TEXICMD_SMALLEXAMPLE */ |
{ doexample, "smallexample", 12 }, /* TEXICMD_SMALLEXAMPLE */ |
{ dosymbol, "{", 1 }, /* TEXICMD_SQUIGGLE_LEFT */ |
{ dosymbol, "{", 1 }, /* TEXICMD_SQUIGGLE_LEFT */ |
{ dosymbol, "}", 1 }, /* TEXICMD_SQUIGGLE_RIGHT */ |
{ dosymbol, "}", 1 }, /* TEXICMD_SQUIGGLE_RIGHT */ |
{ doemph, "strong", 6 }, /* TEXICMD_STRONG */ |
{ dofont, "strong", 6 }, /* TEXICMD_STRONG */ |
{ dosubsection, "subsection", 10 }, /* TEXICMD_SUBSECTION */ |
{ dosubsection, "subsection", 10 }, /* TEXICMD_SUBSECTION */ |
{ doignline, "subtitle", 8 }, /* TEXICMD_SUBTITLE */ |
{ doignline, "subtitle", 8 }, /* TEXICMD_SUBTITLE */ |
|
{ dofont, "t", 1 }, /* TEXICMD_T */ |
{ dosymbol, "\t", 1 }, /* TEXICMD_TAB */ |
{ dosymbol, "\t", 1 }, /* TEXICMD_TAB */ |
{ dotable, "table", 5 }, /* TEXICMD_TABLE */ |
{ dotable, "table", 5 }, /* TEXICMD_TABLE */ |
{ doignblock, "tex", 3 }, /* TEXICMD_TEX */ |
{ doignblock, "tex", 3 }, /* TEXICMD_TEX */ |
Line 336 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 343 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ dobracket, "titlefont", 9 }, /* TEXICMD_TITLEFONT */ |
{ dobracket, "titlefont", 9 }, /* TEXICMD_TITLEFONT */ |
{ doignblock, "titlepage", 9 }, /* TEXICMD_TITLEPAGE */ |
{ doignblock, "titlepage", 9 }, /* TEXICMD_TITLEPAGE */ |
{ dotop, "top", 3 }, /* TEXICMD_TOP */ |
{ dotop, "top", 3 }, /* TEXICMD_TOP */ |
{ dochapter, "unnumbered", 10 }, /* TEXICMD_UNNUMBERED */ |
{ dosection, "unnumbered", 10 }, /* TEXICMD_UNNUMBERED */ |
{ dosection, "unnumberedsec", 13 }, /* TEXICMD_UNNUMBEREDSEC */ |
{ dosection, "unnumberedsec", 13 }, /* TEXICMD_UNNUMBEREDSEC */ |
{ dolink, "uref", 4 }, /* TEXICMD_UREF */ |
{ dolink, "uref", 4 }, /* TEXICMD_UREF */ |
{ dolink, "url", 3 }, /* TEXICMD_URL */ |
{ dolink, "url", 3 }, /* TEXICMD_URL */ |
{ doliteral, "var", 3 }, /* TEXICMD_VAR */ |
{ doinline, "var", 3 }, /* TEXICMD_VAR */ |
{ dosp, "vskip", 5 }, /* TEXICMD_VSKIP */ |
{ dosp, "vskip", 5 }, /* TEXICMD_VSKIP */ |
{ dobracket, "w", 1 }, /* TEXICMD_W */ |
{ dobracket, "w", 1 }, /* TEXICMD_W */ |
{ dolink, "xref", 4 }, /* TEXICMD_XREF */ |
{ dolink, "xref", 4 }, /* TEXICMD_XREF */ |
Line 1115 doblock(struct texi *p, enum texicmd cmd, |
|
Line 1122 doblock(struct texi *p, enum texicmd cmd, |
|
} |
} |
|
|
static void |
static void |
doinline(struct texi *p, const char *buf, |
doinline(struct texi *p, enum texicmd cmd, |
size_t sz, size_t *pos, const char *macro) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
|
const char *macro; |
|
|
|
switch (cmd) { |
|
case (TEXICMD_COMMAND): |
|
macro = "Xr"; |
|
break; |
|
case (TEXICMD_ENV): |
|
macro = "Ev"; |
|
break; |
|
case (TEXICMD_FILE): |
|
macro = "Pa"; |
|
break; |
|
case (TEXICMD_VAR): |
|
macro = "Va"; |
|
break; |
|
default: |
|
abort(); |
|
} |
|
|
|
if (p->literal) { |
|
parsebracket(p, buf, sz, pos); |
|
return; |
|
} |
|
|
teximacroopen(p, macro); |
teximacroopen(p, macro); |
p->seenws = 0; |
p->seenws = 0; |
parsebracket(p, buf, sz, pos); |
parsebracket(p, buf, sz, pos); |
Line 1174 doinclude(struct texi *p, enum texicmd cmd, |
|
Line 1204 doinclude(struct texi *p, enum texicmd cmd, |
|
} |
} |
|
|
static void |
static void |
doitalic(struct texi *p, enum texicmd cmd, |
dofont(struct texi *p, enum texicmd cmd, |
const char *buf, size_t sz, size_t *pos) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
|
const char *font; |
|
|
texiputchars(p, "\\fI"); |
switch (cmd) { |
|
case (TEXICMD_B): |
|
case (TEXICMD_STRONG): |
|
font = "\\fB"; |
|
break; |
|
case (TEXICMD_CITE): |
|
case (TEXICMD_DFN): |
|
case (TEXICMD_EMPH): |
|
case (TEXICMD_I): |
|
case (TEXICMD_SLANTED): |
|
font = "\\fI"; |
|
break; |
|
case (TEXICMD_CODE): |
|
case (TEXICMD_KBD): |
|
case (TEXICMD_R): |
|
case (TEXICMD_SAMP): |
|
case (TEXICMD_SANSSERIF): |
|
case (TEXICMD_T): |
|
font = "\\fR"; |
|
break; |
|
default: |
|
abort(); |
|
} |
|
|
|
texiputchars(p, font); |
parsebracket(p, buf, sz, pos); |
parsebracket(p, buf, sz, pos); |
texiputchars(p, "\\fP"); |
texiputchars(p, "\\fP"); |
} |
} |
|
|
static void |
static void |
doenv(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
|
{ |
|
|
|
if (p->literal) |
|
parsebracket(p, buf, sz, pos); |
|
else |
|
doinline(p, buf, sz, pos, "Ev"); |
|
} |
|
|
|
static void |
|
doliteral(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
|
{ |
|
|
|
if (p->literal) |
|
parsebracket(p, buf, sz, pos); |
|
else |
|
doinline(p, buf, sz, pos, "Li"); |
|
} |
|
|
|
static void |
|
doemph(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
|
{ |
|
|
|
if (p->literal) |
|
doitalic(p, cmd, buf, sz, pos); |
|
else |
|
doinline(p, buf, sz, pos, "Em"); |
|
} |
|
|
|
static void |
|
docommand(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
|
{ |
|
|
|
doinline(p, buf, sz, pos, "Xr"); |
|
} |
|
|
|
static void |
|
dobracket(struct texi *p, enum texicmd cmd, |
dobracket(struct texi *p, enum texicmd cmd, |
const char *buf, size_t sz, size_t *pos) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
Line 1233 dobracket(struct texi *p, enum texicmd cmd, |
|
Line 1247 dobracket(struct texi *p, enum texicmd cmd, |
|
} |
} |
|
|
static void |
static void |
dofile(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
|
{ |
|
|
|
if (p->literal) |
|
parsebracket(p, buf, sz, pos); |
|
else |
|
doinline(p, buf, sz, pos, "Pa"); |
|
} |
|
|
|
static void |
|
dodisplay(struct texi *p, enum texicmd cmd, |
dodisplay(struct texi *p, enum texicmd cmd, |
const char *buf, size_t sz, size_t *pos) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
|
|
teximacro(p, "Bd -display -offset indent"); |
teximacro(p, "Bd -display -offset indent"); |
p->seenvs = 1; |
p->seenvs = 1; |
|
/* FIXME: ignore and parseeoln. */ |
advanceeoln(p, buf, sz, pos, 1); |
advanceeoln(p, buf, sz, pos, 1); |
parseto(p, buf, sz, pos, "display"); |
parseto(p, buf, sz, pos, "display"); |
teximacro(p, "Ed"); |
teximacro(p, "Ed"); |
Line 1264 doexample(struct texi *p, enum texicmd cmd, |
|
Line 1268 doexample(struct texi *p, enum texicmd cmd, |
|
blk = TEXICMD_EXAMPLE == cmd ? "example" : "smallexample"; |
blk = TEXICMD_EXAMPLE == cmd ? "example" : "smallexample"; |
|
|
teximacro(p, "Bd -literal -offset indent"); |
teximacro(p, "Bd -literal -offset indent"); |
|
/* FIXME: ignore and parseeoln. */ |
advanceeoln(p, buf, sz, pos, 1); |
advanceeoln(p, buf, sz, pos, 1); |
p->literal++; |
p->literal++; |
parseto(p, buf, sz, pos, blk); |
parseto(p, buf, sz, pos, blk); |
|
|
dosection(struct texi *p, enum texicmd cmd, |
dosection(struct texi *p, enum texicmd cmd, |
const char *buf, size_t sz, size_t *pos) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
|
const char *blk; |
|
|
|
switch (cmd) { |
|
case (TEXICMD_APPENDIX): |
|
case (TEXICMD_CHAPTER): |
|
case (TEXICMD_TOP): |
|
case (TEXICMD_UNNUMBERED): |
|
blk = "Sh"; |
|
break; |
|
case (TEXICMD_APPENDIXSEC): |
|
case (TEXICMD_HEADING): |
|
case (TEXICMD_SECTION): |
|
case (TEXICMD_UNNUMBEREDSEC): |
|
blk = "Ss"; |
|
break; |
|
default: |
|
abort(); |
|
} |
|
|
if (p->outmacro) |
if (p->outmacro) |
texierr(p, "subsection in open line scope!?"); |
texierr(p, "%s in open line scope!?", blk); |
else if (p->literal) |
else if (p->literal) |
texierr(p, "subsection in a literal scope!?"); |
texierr(p, "%s in a literal scope!?", blk); |
|
|
teximacroopen(p, "Ss"); |
teximacroopen(p, blk); |
parseeoln(p, buf, sz, pos); |
parseeoln(p, buf, sz, pos); |
teximacroclose(p); |
teximacroclose(p); |
p->seenvs = 1; |
p->seenvs = 1; |
Line 1484 dosp(struct texi *p, enum texicmd cmd, |
|
Line 1507 dosp(struct texi *p, enum texicmd cmd, |
|
{ |
{ |
|
|
texivspace(p); |
texivspace(p); |
|
/* FIXME: ignore and parseeoln. */ |
advanceeoln(p, buf, sz, pos, 1); |
advanceeoln(p, buf, sz, pos, 1); |
} |
} |
|
|
static void |
static void |
dochapter(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
|
{ |
|
|
|
if (p->outmacro) |
|
texierr(p, "section in open line scope!?"); |
|
else if (p->literal) |
|
texierr(p, "section in a literal scope!?"); |
|
|
|
teximacroopen(p, "Sh"); |
|
parseeoln(p, buf, sz, pos); |
|
teximacroclose(p); |
|
p->seenvs = 1; |
|
} |
|
|
|
static void |
|
dotop(struct texi *p, enum texicmd cmd, |
dotop(struct texi *p, enum texicmd cmd, |
const char *buf, size_t sz, size_t *pos) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
Line 1533 dotop(struct texi *p, enum texicmd cmd, |
|
Line 1541 dotop(struct texi *p, enum texicmd cmd, |
|
p->subtitle : "Unknown description"); |
p->subtitle : "Unknown description"); |
teximacroclose(p); |
teximacroclose(p); |
p->seenvs = 1; |
p->seenvs = 1; |
dochapter(p, cmd, buf, sz, pos); |
dosection(p, cmd, buf, sz, pos); |
} |
} |
|
|
static void |
static void |
Line 1575 dotable(struct texi *p, enum texicmd cmd, |
|
Line 1583 dotable(struct texi *p, enum texicmd cmd, |
|
|
|
p->list = TEXILIST_ITEM; |
p->list = TEXILIST_ITEM; |
teximacro(p, "Bl -tag -width Ds"); |
teximacro(p, "Bl -tag -width Ds"); |
|
/* FIXME: ignore and parseeoln. */ |
|
advanceeoln(p, buf, sz, pos, 1); |
p->seenvs = 1; |
p->seenvs = 1; |
parseto(p, buf, sz, pos, "table"); |
parseto(p, buf, sz, pos, "table"); |
teximacro(p, "El"); |
teximacro(p, "El"); |
Line 1590 doenumerate(struct texi *p, enum texicmd cmd, |
|
Line 1600 doenumerate(struct texi *p, enum texicmd cmd, |
|
p->list = TEXILIST_NOITEM; |
p->list = TEXILIST_NOITEM; |
teximacro(p, "Bl -enum"); |
teximacro(p, "Bl -enum"); |
p->seenvs = 1; |
p->seenvs = 1; |
|
/* FIXME: ignore and parseeoln. */ |
|
advanceeoln(p, buf, sz, pos, 1); |
parseto(p, buf, sz, pos, "enumerate"); |
parseto(p, buf, sz, pos, "enumerate"); |
teximacro(p, "El"); |
teximacro(p, "El"); |
p->list = sv; |
p->list = sv; |
Line 1604 doitemize(struct texi *p, enum texicmd cmd, |
|
Line 1616 doitemize(struct texi *p, enum texicmd cmd, |
|
p->list = TEXILIST_ITEM; |
p->list = TEXILIST_ITEM; |
teximacro(p, "Bl -bullet"); |
teximacro(p, "Bl -bullet"); |
p->seenvs = 1; |
p->seenvs = 1; |
|
/* FIXME: ignore and parseeoln. */ |
|
advanceeoln(p, buf, sz, pos, 1); |
parseto(p, buf, sz, pos, "itemize"); |
parseto(p, buf, sz, pos, "itemize"); |
teximacro(p, "El"); |
teximacro(p, "El"); |
p->list = sv; |
p->list = sv; |
Line 1624 doignline(struct texi *p, enum texicmd cmd, |
|
Line 1638 doignline(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
|
|
|
/* FIXME: ignore and parseeoln. */ |
advanceeoln(p, buf, sz, pos, 1); |
advanceeoln(p, buf, sz, pos, 1); |
} |
} |
|
|