=================================================================== RCS file: /cvs/texi2mdoc/extern.h,v retrieving revision 1.18 retrieving revision 1.23 diff -u -p -r1.18 -r1.23 --- texi2mdoc/extern.h 2015/02/28 00:03:20 1.18 +++ texi2mdoc/extern.h 2015/03/01 16:57:39 1.23 @@ -1,4 +1,4 @@ -/* $Id: extern.h,v 1.18 2015/02/28 00:03:20 kristaps Exp $ */ +/* $Id: extern.h,v 1.23 2015/03/01 16:57:39 kristaps Exp $ */ /* * Copyright (c) 2015 Kristaps Dzonsons * @@ -372,13 +372,18 @@ struct teximacro { * This keeps any necessary information handy. */ struct texi { + const char *chapters; /* are we splitting chapters */ + size_t chapnum; /* current chapter node */ + char **dirs; /* texi directories */ + size_t dirsz; /* number of texi directories */ + FILE *outfile; + /* + * Run-time parameters. + */ struct texifile files[64]; /* stack of open files */ size_t filepos; /* number of open files */ const char *valstack[64]; /* stack of opened values */ size_t valstackpos; /* position in valstack */ - size_t outcol; /* column in output line */ - char **dirs; /* texi directories */ - size_t dirsz; /* number of texi directories */ char *title; /* title of document */ char *subtitle; /* subtitle of document */ int secoffs; /* see sectioner() */ @@ -394,6 +399,7 @@ struct texi { */ enum texilist list; /* current list (set recursively) */ int outmacro; /* if >0, output is in line macro */ + size_t outcol; /* column in output line */ int seenws; /* ws has been seen (and ignored) */ int seenvs; /* newline has been Pp'd */ int ign; /* if >0, don't print anything */ @@ -417,7 +423,7 @@ void advanceto(struct texi *, size_t *, size_t); char **argparse(struct texi *, size_t *, size_t *, size_t); int parsearg(struct texi *, size_t *, size_t); -void parsebracket(struct texi *, size_t *); +void parsebracket(struct texi *, size_t *, int); void parsestdin(struct texi *); void parsefile(struct texi *, const char *, int); int parselinearg(struct texi *, size_t *); @@ -427,7 +433,9 @@ void parseto(struct texi *, size_t *, const char *); void texiabort(struct texi *, const char *) __attribute__((noreturn)); enum texicmd - texicmd(struct texi *, size_t, size_t *, struct teximacro **); + texicmd(const struct texi *, size_t, size_t *, struct teximacro **); +enum texicmd + peekcmd(const struct texi *, size_t); void texierr(struct texi *, const char *, ...) __attribute__((format(printf, 2, 3))) __attribute__((noreturn)); @@ -436,6 +444,8 @@ void texifilepop(struct texi *); void teximacro(struct texi *, const char *); void teximacroclose(struct texi *); void teximacroopen(struct texi *, const char *); +void teximdocopen(struct texi *, size_t *); +void teximdocclose(struct texi *, int); void texipunctuate(struct texi *, size_t *); void texiputbuf(struct texi *p, size_t, size_t); void texiputchar(struct texi *p, char); @@ -443,7 +453,7 @@ void texiputchars(struct texi *, const char *); void texivspace(struct texi *); void texiwarn(const struct texi *, const char *, ...) __attribute__((format(printf, 2, 3))); -void texisplice(struct texi *, const char *, size_t, size_t *); +void texisplice(struct texi *, const char *, size_t, size_t); void valueadd(struct texi *, char *, char *); const char *