version 1.12, 2015/02/18 23:08:16 |
version 1.15, 2015/02/19 09:28:42 |
|
|
TEXICMD_CONTENTS, |
TEXICMD_CONTENTS, |
TEXICMD_COPYING, |
TEXICMD_COPYING, |
TEXICMD_COPYRIGHT, |
TEXICMD_COPYRIGHT, |
|
TEXICMD_DEFFN, |
|
TEXICMD_DEFFNX, |
|
TEXICMD_DEFMAC, |
|
TEXICMD_DEFMACX, |
|
TEXICMD_DEFTP, |
|
TEXICMD_DEFTPX, |
TEXICMD_DEFTYPEFN, |
TEXICMD_DEFTYPEFN, |
TEXICMD_DEFTYPEFNX, |
TEXICMD_DEFTYPEFNX, |
TEXICMD_DEFTYPEFUN, |
TEXICMD_DEFTYPEFUN, |
TEXICMD_DEFTYPEFUNX, |
TEXICMD_DEFTYPEFUNX, |
TEXICMD_DEFTYPEVAR, |
TEXICMD_DEFTYPEVAR, |
|
TEXICMD_DEFTYPEVARX, |
TEXICMD_DEFTYPEVR, |
TEXICMD_DEFTYPEVR, |
|
TEXICMD_DEFTYPEVRX, |
|
TEXICMD_DEFUN, |
|
TEXICMD_DEFUNX, |
|
TEXICMD_DEFVAR, |
|
TEXICMD_DEFVARX, |
|
TEXICMD_DEFVR, |
|
TEXICMD_DEFVRX, |
TEXICMD_DETAILMENU, |
TEXICMD_DETAILMENU, |
TEXICMD_DFN, |
TEXICMD_DFN, |
TEXICMD_DIRCATEGORY, |
TEXICMD_DIRCATEGORY, |
|
|
TEXICMD_END, |
TEXICMD_END, |
TEXICMD_ENUMERATE, |
TEXICMD_ENUMERATE, |
TEXICMD_ENV, |
TEXICMD_ENV, |
|
TEXICMD_ERROR, |
TEXICMD_EXAMPLE, |
TEXICMD_EXAMPLE, |
TEXICMD_FILE, |
TEXICMD_FILE, |
TEXICMD_GROUP, |
TEXICMD_GROUP, |
|
|
TEXICMD_HYPHEN, |
TEXICMD_HYPHEN, |
TEXICMD_I, |
TEXICMD_I, |
TEXICMD_IFCLEAR, |
TEXICMD_IFCLEAR, |
|
TEXICMD_IFDOCBOOK, |
TEXICMD_IFHTML, |
TEXICMD_IFHTML, |
TEXICMD_IFINFO, |
TEXICMD_IFINFO, |
|
TEXICMD_IFNOTDOCBOOK, |
|
TEXICMD_IFNOTHTML, |
|
TEXICMD_IFNOTINFO, |
|
TEXICMD_IFNOTPLAINTEXT, |
TEXICMD_IFNOTTEX, |
TEXICMD_IFNOTTEX, |
|
TEXICMD_IFNOTXML, |
|
TEXICMD_IFPLAINTEXT, |
TEXICMD_IFTEX, |
TEXICMD_IFTEX, |
TEXICMD_IFSET, |
TEXICMD_IFSET, |
|
TEXICMD_IFXML, |
TEXICMD_IMAGE, |
TEXICMD_IMAGE, |
TEXICMD_INCLUDE, |
TEXICMD_INCLUDE, |
|
TEXICMD_INDENTBLOCK, |
TEXICMD_INSERTCOPYING, |
TEXICMD_INSERTCOPYING, |
TEXICMD_ITEM, |
TEXICMD_ITEM, |
TEXICMD_ITEMIZE, |
TEXICMD_ITEMIZE, |
|
|
TEXICMD_LATEX, |
TEXICMD_LATEX, |
TEXICMD_MATH, |
TEXICMD_MATH, |
TEXICMD_MENU, |
TEXICMD_MENU, |
|
TEXICMD_NEED, |
TEXICMD_NEWLINE, |
TEXICMD_NEWLINE, |
TEXICMD_NODE, |
TEXICMD_NODE, |
TEXICMD_NOINDENT, |
TEXICMD_NOINDENT, |
|
|
TEXICMD_PRINTINDEX, |
TEXICMD_PRINTINDEX, |
TEXICMD_R, |
TEXICMD_R, |
TEXICMD_REF, |
TEXICMD_REF, |
|
TEXICMD_RESULT, |
TEXICMD_SAMP, |
TEXICMD_SAMP, |
TEXICMD_SANSSERIF, |
TEXICMD_SANSSERIF, |
TEXICMD_SC, |
TEXICMD_SC, |
|
|
TEXICMD_SPACE, |
TEXICMD_SPACE, |
TEXICMD_SMALLDISPLAY, |
TEXICMD_SMALLDISPLAY, |
TEXICMD_SMALLEXAMPLE, |
TEXICMD_SMALLEXAMPLE, |
|
TEXICMD_SMALLINDENTBLOCK, |
TEXICMD_SQUIGGLE_LEFT, |
TEXICMD_SQUIGGLE_LEFT, |
TEXICMD_SQUIGGLE_RIGHT, |
TEXICMD_SQUIGGLE_RIGHT, |
TEXICMD_STRONG, |
TEXICMD_STRONG, |
|
|
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 dodeftypefun(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 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 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 doexample(struct texi *, enum texicmd, const char *, size_t, size_t *); |
static void doexample(struct texi *, enum texicmd, const char *, size_t, size_t *); |
Line 266 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 292 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ doignline, "contents", 8 }, /* TEXICMD_CONTENTS */ |
{ doignline, "contents", 8 }, /* TEXICMD_CONTENTS */ |
{ doignblock, "copying", 7 }, /* TEXICMD_COPYING */ |
{ doignblock, "copying", 7 }, /* TEXICMD_COPYING */ |
{ dosymbol, "copyright", 9 }, /* TEXICMD_COPYRIGHT */ |
{ dosymbol, "copyright", 9 }, /* TEXICMD_COPYRIGHT */ |
{ dodeftypefun, "deftypefn", 9 }, /* TEXICMD_DEFTYPEFN */ |
{ dodefn, "deffn", 5 }, /* TEXICMD_DEFFN */ |
{ dodeftypefun, "deftypefnx", 10 }, /* TEXICMD_DEFTYPEFNX */ |
{ dodefn, "deffnx", 6 }, /* TEXICMD_DEFFNX */ |
{ dodeftypefun, "deftypefun", 10 }, /* TEXICMD_DEFTYPEFUN */ |
{ dodefn, "defmac", 6 }, /* TEXICMD_DEFMAC */ |
{ dodeftypefun, "deftypefunx", 11 }, /* TEXICMD_DEFTYPEFUNX */ |
{ dodefn, "defmacx", 7 }, /* TEXICMD_DEFMACX */ |
{ dodeftypevar, "deftypevar", 10 }, /* TEXICMD_DEFTYPEVAR */ |
{ dodefn, "deftp", 5 }, /* TEXICMD_DEFTP */ |
{ dodeftypevar, "deftypevr", 9 }, /* TEXICMD_DEFTYPEVR */ |
{ dodefn, "deftpx", 6 }, /* TEXICMD_DEFTPX */ |
|
{ dodefn, "deftypefn", 9 }, /* TEXICMD_DEFTYPEFN */ |
|
{ dodefn, "deftypefnx", 10 }, /* TEXICMD_DEFTYPEFNX */ |
|
{ dodefn, "deftypefun", 10 }, /* TEXICMD_DEFTYPEFUN */ |
|
{ dodefn, "deftypefunx", 11 }, /* TEXICMD_DEFTYPEFUNX */ |
|
{ dodefn, "deftypevar", 10 }, /* TEXICMD_DEFTYPEVAR */ |
|
{ dodefn, "deftypevarx", 11 }, /* TEXICMD_DEFTYPEVARX */ |
|
{ dodefn, "deftypevr", 9 }, /* TEXICMD_DEFTYPEVR */ |
|
{ dodefn, "deftypevrx", 10 }, /* TEXICMD_DEFTYPEVRX */ |
|
{ dodefn, "defun", 5 }, /* TEXICMD_DEFUN */ |
|
{ dodefn, "defunx", 6 }, /* TEXICMD_DEFUNX */ |
|
{ dodefn, "defvar", 6 }, /* TEXICMD_DEFVAR */ |
|
{ dodefn, "defvarx", 7 }, /* TEXICMD_DEFVARX */ |
|
{ dodefn, "defvr", 5 }, /* TEXICMD_DEFVR */ |
|
{ dodefn, "defvrx", 6 }, /* TEXICMD_DEFVRX */ |
{ doignblock, "detailmenu", 10 }, /* TEXICMD_DETAILMENU */ |
{ doignblock, "detailmenu", 10 }, /* TEXICMD_DETAILMENU */ |
{ dofont, "dfn", 3 }, /* TEXICMD_DFN */ |
{ dofont, "dfn", 3 }, /* TEXICMD_DFN */ |
{ doignline, "dircategory", 11 }, /* TEXICMD_DIRCATEGORY */ |
{ doignline, "dircategory", 11 }, /* TEXICMD_DIRCATEGORY */ |
Line 283 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 323 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ NULL, "end", 3 }, /* TEXICMD_END */ |
{ NULL, "end", 3 }, /* TEXICMD_END */ |
{ doenumerate, "enumerate", 9 }, /* TEXICMD_ENUMERATE */ |
{ doenumerate, "enumerate", 9 }, /* TEXICMD_ENUMERATE */ |
{ doinline, "env", 3 }, /* TEXICMD_ENV */ |
{ doinline, "env", 3 }, /* TEXICMD_ENV */ |
|
{ dosymbol, "error", 5 }, /* TEXICMD_ERROR */ |
{ doexample, "example", 7 }, /* TEXICMD_EXAMPLE */ |
{ doexample, "example", 7 }, /* TEXICMD_EXAMPLE */ |
{ doinline, "file", 4 }, /* TEXICMD_FILE */ |
{ doinline, "file", 4 }, /* TEXICMD_FILE */ |
{ doblock, "group", 5 }, /* TEXICMD_GROUP */ |
{ doblock, "group", 5 }, /* TEXICMD_GROUP */ |
Line 291 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 332 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ dosymbol, "-", 1 }, /* TEXICMD_HYPHEN */ |
{ dosymbol, "-", 1 }, /* TEXICMD_HYPHEN */ |
{ dofont, "i", 1 }, /* TEXICMD_I */ |
{ dofont, "i", 1 }, /* TEXICMD_I */ |
{ doignblock, "ifclear", 7 }, /* TEXICMD_IFCLEAR */ |
{ doignblock, "ifclear", 7 }, /* TEXICMD_IFCLEAR */ |
|
{ doignblock, "ifdocbook", 9 }, /* TEXICMD_IFDOCBOOK */ |
{ doignblock, "ifhtml", 6 }, /* TEXICMD_IFHTML */ |
{ doignblock, "ifhtml", 6 }, /* TEXICMD_IFHTML */ |
{ doignblock, "ifinfo", 6 }, /* TEXICMD_IFINFO */ |
{ doignblock, "ifinfo", 6 }, /* TEXICMD_IFINFO */ |
|
{ doblock, "ifnotdocbook", 12 }, /* TEXICMD_IFNOTDOCBOOK */ |
|
{ doblock, "ifnothtml", 9 }, /* TEXICMD_IFNOTHTML */ |
|
{ doblock, "ifnotinfo", 9 }, /* TEXICMD_IFNOTINFO */ |
|
{ doignblock, "ifnotplaintext", 14 }, /* TEXICMD_IFNOTPLAINTEXT */ |
{ doblock, "ifnottex", 8 }, /* TEXICMD_IFNOTTEX */ |
{ doblock, "ifnottex", 8 }, /* TEXICMD_IFNOTTEX */ |
|
{ doblock, "ifnotxml", 8 }, /* TEXICMD_IFNOTXML */ |
|
{ doblock, "ifplaintext", 11 }, /* TEXICMD_IFPLAINTEXT */ |
{ doignblock, "iftex", 5 }, /* TEXICMD_IFTEX */ |
{ doignblock, "iftex", 5 }, /* TEXICMD_IFTEX */ |
{ doignblock, "ifset", 5 }, /* TEXICMD_IFSET */ |
{ doignblock, "ifset", 5 }, /* TEXICMD_IFSET */ |
|
{ doignblock, "ifxml", 5 }, /* TEXICMD_IFXML */ |
{ doignbracket, "image", 5 }, /* TEXICMD_IMAGE */ |
{ doignbracket, "image", 5 }, /* TEXICMD_IMAGE */ |
{ doinclude, "include", 7 }, /* TEXICMD_INCLUDE */ |
{ doinclude, "include", 7 }, /* TEXICMD_INCLUDE */ |
|
{ dodisplay, "indentblock", 11 }, /* TEXICMD_INDENTBLOCK */ |
{ 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 */ |
Line 305 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 355 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ 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 */ |
|
{ doignline, "need", 4 }, /* TEXICMD_NEED */ |
{ dosymbol, "\n", 1 }, /* TEXICMD_NEWLINE */ |
{ dosymbol, "\n", 1 }, /* TEXICMD_NEWLINE */ |
{ doignline, "node", 4 }, /* TEXICMD_NODE */ |
{ doignline, "node", 4 }, /* TEXICMD_NODE */ |
{ doignline, "noindent", 8 }, /* TEXICMD_NOINDENT */ |
{ doignline, "noindent", 8 }, /* TEXICMD_NOINDENT */ |
Line 316 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 367 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ doignline, "printindex", 10 }, /* TEXICMD_PRINTINDEX */ |
{ doignline, "printindex", 10 }, /* TEXICMD_PRINTINDEX */ |
{ dofont, "r", 1 }, /* TEXICMD_R */ |
{ dofont, "r", 1 }, /* TEXICMD_R */ |
{ dobracket, "ref", 3 }, /* TEXICMD_REF */ |
{ dobracket, "ref", 3 }, /* TEXICMD_REF */ |
|
{ dosymbol, "result", 6 }, /* TEXICMD_RESULT */ |
{ dofont, "samp", 4 }, /* TEXICMD_SAMP */ |
{ dofont, "samp", 4 }, /* TEXICMD_SAMP */ |
{ dofont, "sansserif", 9 }, /* TEXICMD_SANSSERIF */ |
{ dofont, "sansserif", 9 }, /* TEXICMD_SANSSERIF */ |
{ dobracket, "sc", 2 }, /* TEXICMD_SC */ |
{ dobracket, "sc", 2 }, /* TEXICMD_SC */ |
Line 329 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
Line 381 static const struct texitok texitoks[TEXICMD__MAX] = { |
|
{ dosymbol, " ", 1 }, /* TEXICMD_SPACE */ |
{ dosymbol, " ", 1 }, /* TEXICMD_SPACE */ |
{ dodisplay, "smalldisplay", 12 }, /* TEXICMD_SMALLDISPLAY */ |
{ dodisplay, "smalldisplay", 12 }, /* TEXICMD_SMALLDISPLAY */ |
{ doexample, "smallexample", 12 }, /* TEXICMD_SMALLEXAMPLE */ |
{ doexample, "smallexample", 12 }, /* TEXICMD_SMALLEXAMPLE */ |
|
{ dodisplay, "smallindentblock", 16 }, /* TEXICMD_SMALLINDENTBLOCK */ |
{ dosymbol, "{", 1 }, /* TEXICMD_SQUIGGLE_LEFT */ |
{ dosymbol, "{", 1 }, /* TEXICMD_SQUIGGLE_LEFT */ |
{ dosymbol, "}", 1 }, /* TEXICMD_SQUIGGLE_RIGHT */ |
{ dosymbol, "}", 1 }, /* TEXICMD_SQUIGGLE_RIGHT */ |
{ dofont, "strong", 6 }, /* TEXICMD_STRONG */ |
{ dofont, "strong", 6 }, /* TEXICMD_STRONG */ |
Line 921 parsesingle(struct texi *p, const char *buf, size_t sz |
|
Line 974 parsesingle(struct texi *p, const char *buf, size_t sz |
|
(*texitoks[cmd].fp)(p, cmd, buf, sz, pos); |
(*texitoks[cmd].fp)(p, cmd, buf, sz, pos); |
} |
} |
|
|
|
static int |
|
parselinearg(struct texi *p, const char *buf, size_t sz, size_t *pos) |
|
{ |
|
|
|
while (*pos < sz && isws(buf[*pos])) { |
|
p->seenws = 1; |
|
advance(p, buf, pos); |
|
} |
|
|
|
if (*pos < sz && '{' == buf[*pos]) |
|
parsebracket(p, buf, sz, pos); |
|
else if ('\n' != buf[*pos]) |
|
parsesingle(p, buf, sz, pos); |
|
else |
|
return(0); |
|
|
|
return(1); |
|
} |
|
|
/* |
/* |
* Parse til the end of the buffer. |
* Parse til the end of the buffer. |
*/ |
*/ |
Line 1029 parsefile(struct texi *p, const char *fname) |
|
Line 1101 parsefile(struct texi *p, const char *fname) |
|
} |
} |
|
|
static void |
static void |
dodeftypevar(struct texi *p, enum texicmd cmd, |
dodefn(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; |
const char *blk; |
|
|
blk = TEXICMD_DEFTYPEVR == cmd ? |
|
"deftypevr" : "deftypevar"; |
|
|
|
if (p->ign) { |
|
parseto(p, buf, sz, pos, blk); |
|
return; |
|
} |
|
|
|
texivspace(p); |
|
if (TEXICMD_DEFTYPEVR == cmd) { |
|
parsebracket(p, buf, sz, pos); |
|
texiputchars(p, ":\n"); |
|
} |
|
teximacroopen(p, "Vt"); |
|
parseeoln(p, buf, sz, pos); |
|
teximacroclose(p); |
|
texivspace(p); |
|
parseto(p, buf, sz, pos, blk); |
|
} |
|
|
|
static void |
|
dodeftypefun(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
|
{ |
|
const char *blk; |
|
|
|
blk = NULL; |
blk = NULL; |
switch (cmd) { |
switch (cmd) { |
|
case (TEXICMD_DEFFN): |
|
case (TEXICMD_DEFTP): |
case (TEXICMD_DEFTYPEFN): |
case (TEXICMD_DEFTYPEFN): |
case (TEXICMD_DEFTYPEFUN): |
case (TEXICMD_DEFTYPEFUN): |
|
case (TEXICMD_DEFTYPEVAR): |
|
case (TEXICMD_DEFTYPEVR): |
|
case (TEXICMD_DEFUN): |
|
case (TEXICMD_DEFVAR): |
|
case (TEXICMD_DEFVR): |
blk = texitoks[cmd].tok; |
blk = texitoks[cmd].tok; |
break; |
break; |
default: |
default: |
Line 1071 dodeftypefun(struct texi *p, enum texicmd cmd, |
|
Line 1124 dodeftypefun(struct texi *p, enum texicmd cmd, |
|
} |
} |
|
|
if (p->ign) { |
if (p->ign) { |
if (NULL != blk) |
NULL != blk ? |
parseto(p, buf, sz, pos, blk); |
parseto(p, buf, sz, pos, blk) : |
|
parseeoln(p, buf, sz, pos); |
return; |
return; |
} |
} |
|
|
|
if (NULL != blk) |
|
texivspace(p); |
|
|
switch (cmd) { |
switch (cmd) { |
case (TEXICMD_DEFTYPEFN): |
case (TEXICMD_DEFMAC): |
|
case (TEXICMD_DEFMACX): |
|
texiputchars(p, "Macro"); |
|
break; |
|
case (TEXICMD_DEFTYPEVAR): |
|
case (TEXICMD_DEFTYPEVARX): |
|
case (TEXICMD_DEFVAR): |
|
case (TEXICMD_DEFVARX): |
|
texiputchars(p, "Variable"); |
|
break; |
case (TEXICMD_DEFTYPEFUN): |
case (TEXICMD_DEFTYPEFUN): |
texivspace(p); |
case (TEXICMD_DEFTYPEFUNX): |
|
case (TEXICMD_DEFUN): |
|
case (TEXICMD_DEFUNX): |
|
texiputchars(p, "Function"); |
break; |
break; |
default: |
default: |
|
parselinearg(p, buf, sz, pos); |
break; |
break; |
} |
} |
if (TEXICMD_DEFTYPEFN == cmd || |
|
TEXICMD_DEFTYPEFNX == cmd) { |
texiputchars(p, ":\n"); |
parsebracket(p, buf, sz, pos); |
|
texiputchars(p, ":\n"); |
switch (cmd) { |
|
case (TEXICMD_DEFMAC): |
|
case (TEXICMD_DEFMACX): |
|
teximacroopen(p, "Dv"); |
|
while (parselinearg(p, buf, sz, pos)) |
|
/* Spin. */ ; |
|
teximacroclose(p); |
|
break; |
|
case (TEXICMD_DEFFN): |
|
case (TEXICMD_DEFFNX): |
|
case (TEXICMD_DEFUN): |
|
case (TEXICMD_DEFUNX): |
|
teximacroopen(p, "Fo"); |
|
parselinearg(p, buf, sz, pos); |
|
teximacroclose(p); |
|
teximacroopen(p, "Fa"); |
|
while (parselinearg(p, buf, sz, pos)) |
|
/* Spin. */ ; |
|
teximacroclose(p); |
|
teximacro(p, "Fc"); |
|
break; |
|
case (TEXICMD_DEFTYPEFUN): |
|
case (TEXICMD_DEFTYPEFUNX): |
|
case (TEXICMD_DEFTYPEFN): |
|
case (TEXICMD_DEFTYPEFNX): |
|
teximacroopen(p, "Ft"); |
|
parselinearg(p, buf, sz, pos); |
|
teximacroclose(p); |
|
teximacroopen(p, "Fo"); |
|
parselinearg(p, buf, sz, pos); |
|
teximacroclose(p); |
|
teximacroopen(p, "Fa"); |
|
while (parselinearg(p, buf, sz, pos)) |
|
/* Spin. */ ; |
|
teximacroclose(p); |
|
teximacro(p, "Fc"); |
|
break; |
|
case (TEXICMD_DEFTP): |
|
case (TEXICMD_DEFTPX): |
|
case (TEXICMD_DEFTYPEVAR): |
|
case (TEXICMD_DEFTYPEVARX): |
|
case (TEXICMD_DEFTYPEVR): |
|
case (TEXICMD_DEFTYPEVRX): |
|
teximacroopen(p, "Vt"); |
|
while (parselinearg(p, buf, sz, pos)) |
|
/* Spin. */ ; |
|
teximacroclose(p); |
|
break; |
|
case (TEXICMD_DEFVAR): |
|
case (TEXICMD_DEFVARX): |
|
case (TEXICMD_DEFVR): |
|
case (TEXICMD_DEFVRX): |
|
teximacroopen(p, "Va"); |
|
while (parselinearg(p, buf, sz, pos)) |
|
/* Spin. */ ; |
|
teximacroclose(p); |
|
break; |
|
default: |
|
abort(); |
} |
} |
teximacroopen(p, "Ft"); |
|
parsesingle(p, buf, sz, pos); |
|
teximacroclose(p); |
|
teximacroopen(p, "Fn"); |
|
parsesingle(p, buf, sz, pos); |
|
teximacroclose(p); |
|
teximacroopen(p, "Li"); |
|
parseeoln(p, buf, sz, pos); |
|
teximacroclose(p); |
|
texivspace(p); |
texivspace(p); |
if (NULL != blk) |
if (NULL != blk) |
parseto(p, buf, sz, pos, blk); |
parseto(p, buf, sz, pos, blk); |
Line 1251 dodisplay(struct texi *p, enum texicmd cmd, |
|
Line 1371 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 -filled -offset indent"); |
p->seenvs = 1; |
p->seenvs = 1; |
/* FIXME: ignore and parseeoln. */ |
/* 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, texitoks[cmd].tok); |
teximacro(p, "Ed"); |
teximacro(p, "Ed"); |
} |
} |
|
|
|
|
doexample(struct texi *p, enum texicmd cmd, |
doexample(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; |
|
|
|
blk = TEXICMD_EXAMPLE == cmd ? "example" : "smallexample"; |
|
|
|
teximacro(p, "Bd -literal -offset indent"); |
teximacro(p, "Bd -literal -offset indent"); |
/* FIXME: ignore and parseeoln. */ |
/* 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, texitoks[cmd].tok); |
p->literal--; |
p->literal--; |
teximacro(p, "Ed"); |
teximacro(p, "Ed"); |
} |
} |
Line 1334 dosymbol(struct texi *p, enum texicmd cmd, |
|
Line 1451 dosymbol(struct texi *p, enum texicmd cmd, |
|
case (TEXICMD_DOTS): |
case (TEXICMD_DOTS): |
texiputchars(p, "..."); |
texiputchars(p, "..."); |
break; |
break; |
|
case (TEXICMD_ERROR): |
|
texiputchars(p, "error\\(->"); |
|
break; |
case (TEXICMD_LATEX): |
case (TEXICMD_LATEX): |
texiputchars(p, "LaTeX"); |
texiputchars(p, "LaTeX"); |
break; |
break; |
case (TEXICMD_QUESTIONMARK): |
case (TEXICMD_QUESTIONMARK): |
texiputchar(p, '?'); |
texiputchar(p, '?'); |
break; |
break; |
|
case (TEXICMD_RESULT): |
|
texiputchars(p, "\\(rA"); |
|
break; |
case (TEXICMD_SQUIGGLE_LEFT): |
case (TEXICMD_SQUIGGLE_LEFT): |
texiputchars(p, "{"); |
texiputchars(p, "{"); |
break; |
break; |
|
|
dosubsection(struct texi *p, enum texicmd cmd, |
dosubsection(struct texi *p, enum texicmd cmd, |
const char *buf, size_t sz, size_t *pos) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
|
|
|
if (p->outmacro) |
|
texierr(p, "\"Em\" in open line scope!?"); |
|
else if (p->literal) |
|
texierr(p, "\"Em\" in a literal scope!?"); |
|
|
texivspace(p); |
texivspace(p); |
teximacroopen(p, "Em"); |
teximacroopen(p, "Em"); |