[BACK]Return to read.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/read.c between version 1.83 and 1.86

version 1.83, 2014/09/06 22:39:36 version 1.86, 2014/09/07 23:25:01
Line 69  struct mparse {
Line 69  struct mparse {
         int               line; /* line number in the file */          int               line; /* line number in the file */
 };  };
   
   static  void      choose_parser(struct mparse *);
 static  void      resize_buf(struct buf *, size_t);  static  void      resize_buf(struct buf *, size_t);
 static  void      mparse_buf_r(struct mparse *, struct buf, int);  static  void      mparse_buf_r(struct mparse *, struct buf, int);
 static  void      pset(const char *, int, struct mparse *);  
 static  int       read_whole_file(struct mparse *, const char *, int,  static  int       read_whole_file(struct mparse *, const char *, int,
                                 struct buf *, int *);                                  struct buf *, int *);
 static  void      mparse_end(struct mparse *);  static  void      mparse_end(struct mparse *);
Line 117  static const char * const mandocerrs[MANDOCERR_MAX] = 
Line 117  static const char * const mandocerrs[MANDOCERR_MAX] = 
         "sections out of conventional order",          "sections out of conventional order",
         "duplicate section title",          "duplicate section title",
         "unexpected section",          "unexpected section",
           "AUTHORS section without An macro",
   
         /* related to macros and nesting */          /* related to macros and nesting */
         "obsolete macro",          "obsolete macro",
Line 247  resize_buf(struct buf *buf, size_t initial)
Line 248  resize_buf(struct buf *buf, size_t initial)
 }  }
   
 static void  static void
 pset(const char *buf, int pos, struct mparse *curp)  choose_parser(struct mparse *curp)
 {  {
         char            *cp, *ep;          char            *cp, *ep;
         int              format;          int              format;
         int              i;  
   
         if ('.' == buf[0] || '\'' == buf[0]) {  
                 for (i = 1; buf[i]; i++)  
                         if (' ' != buf[i] && '\t' != buf[i])  
                                 break;  
                 if ('\0' == buf[i])  
                         return;  
         }  
   
         /*          /*
          * If neither command line arguments -mdoc or -man select           * If neither command line arguments -mdoc or -man select
          * a parser nor the roff parser found a .Dd or .TH macro           * a parser nor the roff parser found a .Dd or .TH macro
Line 271  pset(const char *buf, int pos, struct mparse *curp)
Line 263  pset(const char *buf, int pos, struct mparse *curp)
                 cp = curp->primary->buf;                  cp = curp->primary->buf;
                 ep = cp + curp->primary->sz;                  ep = cp + curp->primary->sz;
                 while (cp < ep) {                  while (cp < ep) {
                         if (*cp == '.' || *cp != '\'') {                          if (*cp == '.' || *cp == '\'') {
                                 cp++;                                  cp++;
                                 if (cp[0] == 'D' && cp[1] == 'd') {                                  if (cp[0] == 'D' && cp[1] == 'd') {
                                         format = MPARSE_MDOC;                                          format = MPARSE_MDOC;
Line 550  rerun:
Line 542  rerun:
                  */                   */
   
                 if ( ! (curp->man || curp->mdoc))                  if ( ! (curp->man || curp->mdoc))
                         pset(ln.buf + of, pos - of, curp);                          choose_parser(curp);
   
                 /*                  /*
                  * Lastly, push down into the parsers themselves.  One                   * Lastly, push down into the parsers themselves.
                  * of these will have already been set in the pset()  
                  * routine.  
                  * If libroff returns ROFF_TBL, then add it to the                   * If libroff returns ROFF_TBL, then add it to the
                  * currently open parse.  Since we only get here if                   * currently open parse.  Since we only get here if
                  * there does exist data (see tbl_data.c), we're                   * there does exist data (see tbl_data.c), we're
Line 723  mparse_end(struct mparse *curp)
Line 713  mparse_end(struct mparse *curp)
 static void  static void
 mparse_parse_buffer(struct mparse *curp, struct buf blk, const char *file)  mparse_parse_buffer(struct mparse *curp, struct buf blk, const char *file)
 {  {
           struct buf      *svprimary;
         const char      *svfile;          const char      *svfile;
         static int       recursion_depth;          static int       recursion_depth;
   
Line 734  mparse_parse_buffer(struct mparse *curp, struct buf bl
Line 725  mparse_parse_buffer(struct mparse *curp, struct buf bl
         /* Line number is per-file. */          /* Line number is per-file. */
         svfile = curp->file;          svfile = curp->file;
         curp->file = file;          curp->file = file;
           svprimary = curp->primary;
         curp->primary = &blk;          curp->primary = &blk;
         curp->line = 1;          curp->line = 1;
         recursion_depth++;          recursion_depth++;
Line 743  mparse_parse_buffer(struct mparse *curp, struct buf bl
Line 735  mparse_parse_buffer(struct mparse *curp, struct buf bl
         if (0 == --recursion_depth && MANDOCLEVEL_FATAL > curp->file_status)          if (0 == --recursion_depth && MANDOCLEVEL_FATAL > curp->file_status)
                 mparse_end(curp);                  mparse_end(curp);
   
           curp->primary = svprimary;
         curp->file = svfile;          curp->file = svfile;
 }  }
   

Legend:
Removed from v.1.83  
changed lines
  Added in v.1.86

CVSweb