=================================================================== RCS file: /cvs/texi2mdoc/extern.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -r1.4 -r1.5 --- texi2mdoc/extern.h 2015/02/21 21:49:18 1.4 +++ texi2mdoc/extern.h 2015/02/23 11:44:30 1.5 @@ -1,4 +1,4 @@ -/* $Id: extern.h,v 1.4 2015/02/21 21:49:18 kristaps Exp $ */ +/* $Id: extern.h,v 1.5 2015/02/23 11:44:30 kristaps Exp $ */ /* * Copyright (c) 2015 Kristaps Dzonsons * @@ -124,7 +124,7 @@ enum texicmd { TEXICMD_IMAGE, TEXICMD_INCLUDE, TEXICMD_INDENTBLOCK, - TEXICMD_INDEX, + TEXICMD_USER_INDEX, TEXICMD_INSERTCOPYING, TEXICMD_ITEM, TEXICMD_ITEMIZE, @@ -134,6 +134,7 @@ enum texicmd { TEXICMD_KINDEX, TEXICMD_LATEX, TEXICMD_LOWERSECTIONS, + TEXICMD_MACRO, TEXICMD_MATH, TEXICMD_MENU, TEXICMD_MINUS, @@ -256,6 +257,13 @@ struct texivalue { char *value; }; +struct teximacro { + char *key; + char *value; + char **args; + size_t argsz; +}; + /* * The main parse structure. * This keeps any necessary information handy. @@ -275,6 +283,8 @@ struct texi { size_t indexsz; /* entries in indexs */ struct texivalue *vals; /* @value entries */ size_t valsz; /* entries in vals */ + struct teximacro *macros; + size_t macrosz; /* * The following control what we output to the screen. * The complexity is required to accomodate for mdoc(7). @@ -298,6 +308,8 @@ void advance(struct texi *, const char *, size_t *); size_t advanceeoln(struct texi *, const char *, size_t, size_t *, int); void advanceto(struct texi *, const char *, size_t *, size_t); +char **argparse(struct texi *, const char *, size_t, size_t *, size_t *); + int parsearg(struct texi *, const char *, size_t, size_t *, size_t); void parsebracket(struct texi *, const char *, size_t, size_t *); void parsefile(struct texi *, const char *, int); @@ -310,7 +322,8 @@ void parseto(struct texi *, const char *, size_t, size void texiabort(struct texi *, const char *) __attribute__((noreturn)); enum texicmd - texicmd(struct texi *, const char *, size_t, size_t, size_t *); + texicmd(struct texi *, const char *, size_t, size_t, + size_t *, struct teximacro **); void texierr(struct texi *, const char *, ...) __attribute__((format(printf, 2, 3))) __attribute__((noreturn));