[BACK]Return to extern.h CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / texi2mdoc

Diff for /texi2mdoc/extern.h between version 1.18 and 1.29

version 1.18, 2015/02/28 00:03:20 version 1.29, 2015/03/12 10:44:34
Line 32 
Line 32 
 #  endif  #  endif
 #endif  #endif
   
   #define HAVE_INDEX 1
   
 /*  /*
  * This defines each one of the Texinfo commands that we understand.   * This defines each one of the Texinfo commands that we understand.
  * Obviously this only refers to native commands; overriden names are a   * Obviously this only refers to native commands; overriden names are a
Line 55  enum texicmd {
Line 57  enum texicmd {
         TEXICMD_AT,          TEXICMD_AT,
         TEXICMD_AUTHOR,          TEXICMD_AUTHOR,
         TEXICMD_B,          TEXICMD_B,
           TEXICMD_BACKSLASH,
         TEXICMD_BANG,          TEXICMD_BANG,
         TEXICMD_BULLET,          TEXICMD_BULLET,
         TEXICMD_BYE,          TEXICMD_BYE,
Line 82  enum texicmd {
Line 85  enum texicmd {
         TEXICMD_DEFINDEX,          TEXICMD_DEFINDEX,
         TEXICMD_DEFMAC,          TEXICMD_DEFMAC,
         TEXICMD_DEFMACX,          TEXICMD_DEFMACX,
           TEXICMD_DEFOP,
           TEXICMD_DEFOPX,
           TEXICMD_DEFOPT,
           TEXICMD_DEFOPTX,
         TEXICMD_DEFTP,          TEXICMD_DEFTP,
         TEXICMD_DEFTPX,          TEXICMD_DEFTPX,
         TEXICMD_DEFTYPEFN,          TEXICMD_DEFTYPEFN,
Line 274  enum texicmd {
Line 281  enum texicmd {
         TEXICMD_TITLEFONT,          TEXICMD_TITLEFONT,
         TEXICMD_TITLEPAGE,          TEXICMD_TITLEPAGE,
         TEXICMD_TOP,          TEXICMD_TOP,
           TEXICMD_TPINDEX,
         TEXICMD_U,          TEXICMD_U,
         TEXICMD_UBARACCENT,          TEXICMD_UBARACCENT,
         TEXICMD_UDOTACCENT,          TEXICMD_UDOTACCENT,
Line 292  enum texicmd {
Line 300  enum texicmd {
         TEXICMD_VERBATIM,          TEXICMD_VERBATIM,
         TEXICMD_VERBATIMINCLUDE,          TEXICMD_VERBATIMINCLUDE,
         TEXICMD_VINDEX,          TEXICMD_VINDEX,
           TEXICMD_VRINDEX,
         TEXICMD_VSKIP,          TEXICMD_VSKIP,
         TEXICMD_VTABLE,          TEXICMD_VTABLE,
         TEXICMD_W,          TEXICMD_W,
Line 368  struct teximacro {
Line 377  struct teximacro {
 };  };
   
 /*  /*
    * A term is a word in an index.
    * For example "@cindex foo" adds the term "foo" to the "cp" index.
    * This occurs within a chapter ("nodes" in struct texi)
    */
   struct  texiterm {
           char            *term;
           ssize_t          chapter;
   };
   
   /*
    * Index tables.
    * These have a two or three letter name (usually) and any number of
    * terms that are associated with it.
    */
   struct  texidex {
           char             *name;
           struct texiterm  *index;
           size_t            indexsz;
   };
   
   struct  texinode {
           char             *name;
           ssize_t           up;
           ssize_t           prev;
           ssize_t           next;
   };
   
   /*
  * The main parse structure.   * The main parse structure.
  * This keeps any necessary information handy.   * This keeps any necessary information handy.
  */   */
 struct  texi {  struct  texi {
           const char       *chapters; /* are we splitting chapters */
           char            **dirs; /* texi directories */
           size_t            dirsz; /* number of texi directories */
           FILE             *outfile; /* current output stream */
           /*
            * Run-time parameters.
            */
         struct texifile   files[64]; /* stack of open files */          struct texifile   files[64]; /* stack of open files */
         size_t            filepos; /* number of open files */          size_t            filepos; /* number of open files */
         const char       *valstack[64]; /* stack of opened values */          const char       *valstack[64]; /* stack of opened values */
         size_t            valstackpos; /* position in valstack */          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             *title; /* title of document */
         char             *subtitle; /* subtitle of document */          char             *subtitle; /* subtitle of document */
         int               secoffs; /* see sectioner() */          int               secoffs; /* see sectioner() */
         char            **indexs; /* @defindex indices */          struct texidex   *indexs; /* index entries */
         size_t            indexsz; /* entries in indexs */          size_t            indexsz; /* entries in indexs */
         struct texivalue *vals; /* @value entries */          struct texivalue *vals; /* @value entries */
         size_t            valsz; /* entries in vals */          size_t            valsz; /* entries in vals */
         struct teximacro *macros; /* @macro entries */          struct teximacro *macros; /* @macro entries */
         size_t            macrosz; /* entries in macros */          size_t            macrosz; /* entries in macros */
           char             *copying; /* the @copying block */
           size_t            copyingsz; /* length of @copying */
           struct texinode  *nodecache; /* index of node names */
           size_t            nodecachesz; /* nodes in nodecache */
           size_t            nodesz; /* parsing node (sequential) */
           ssize_t           nodecur; /* parsing node (cache position) */
         /*          /*
          * The following control what we output to the screen.           * The following control what we output to the screen.
          * The complexity is required to accomodate for mdoc(7).           * The complexity is required to accomodate for mdoc(7).
          */           */
         enum texilist     list; /* current list (set recursively) */          enum texilist     list; /* current list (set recursively) */
         int               outmacro; /* if >0, output is in line macro */          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               seenws; /* ws has been seen (and ignored) */
         int               seenvs; /* newline has been Pp'd */          int               seenvs; /* newline has been Pp'd */
         int               ign; /* if >0, don't print anything */          int               ign; /* if >0, don't print anything */
         int               literal; /* if >0, literal context */          int               literal; /* if >0, literal context */
           int               uppercase; /* if >0, uppercase */
 };  };
   
 #define BUF(_p) ((_p)->files[(_p)->filepos - 1].map)  #define BUF(_p) ((_p)->files[(_p)->filepos - 1].map)
Line 417  void advanceto(struct texi *, size_t *, size_t);
Line 466  void advanceto(struct texi *, size_t *, size_t);
 char  **argparse(struct texi *, size_t *, size_t *, size_t);  char  **argparse(struct texi *, size_t *, size_t *, size_t);
   
 int     parsearg(struct texi *, 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    parsestdin(struct texi *);
 void    parsefile(struct texi *, const char *, int);  void    parsefile(struct texi *, const char *, int);
 int     parselinearg(struct texi *, size_t *);  int     parselinearg(struct texi *, size_t *);
 void    parseeoln(struct texi *, size_t *);  void    parseeoln(struct texi *, size_t *);
 void    parseto(struct texi *, size_t *, const char *);  void    parseto(struct texi *, size_t *, const char *);
   void    parsesingle(struct texi *, size_t *);
   
 void    texiabort(struct texi *, const char *)  void    texiabort(struct texi *, const char *)
                 __attribute__((noreturn));                  __attribute__((noreturn));
 enum texicmd  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);
   enum texicmd
           peeklinecmd(const struct texi *, size_t);
   ssize_t texicache(struct texi *, const char *, size_t);
 void    texierr(struct texi *, const char *, ...)  void    texierr(struct texi *, const char *, ...)
                 __attribute__((format(printf, 2, 3)))                  __attribute__((format(printf, 2, 3)))
                 __attribute__((noreturn));                  __attribute__((noreturn));
Line 436  void texifilepop(struct texi *);
Line 491  void texifilepop(struct texi *);
 void    teximacro(struct texi *, const char *);  void    teximacro(struct texi *, const char *);
 void    teximacroclose(struct texi *);  void    teximacroclose(struct texi *);
 void    teximacroopen(struct texi *, const char *);  void    teximacroopen(struct texi *, const char *);
   void    teximdocopen(struct texi *, size_t *);
   void    teximdocclose(struct texi *, int);
   void    texindex(struct texi *, const char *,
                   size_t, const char *, size_t);
   void    texindex_add(struct texi *, const char *, size_t);
 void    texipunctuate(struct texi *, size_t *);  void    texipunctuate(struct texi *, size_t *);
 void    texiputbuf(struct texi *p, size_t, size_t);  void    texiputbuf(struct texi *p, size_t, size_t);
 void    texiputchar(struct texi *p, char);  void    texiputchar(struct texi *p, char);
Line 443  void texiputchars(struct texi *, const char *);
Line 503  void texiputchars(struct texi *, const char *);
 void    texivspace(struct texi *);  void    texivspace(struct texi *);
 void    texiwarn(const struct texi *, const char *, ...)  void    texiwarn(const struct texi *, const char *, ...)
                 __attribute__((format(printf, 2, 3)));                  __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 *);  void    valueadd(struct texi *, char *, char *);
 const char *  const char *

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.29

CVSweb