[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.87

version 1.83, 2014/09/06 22:39:36 version 1.87, 2014/09/11 23:53:30
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",
           "unusual Xr order",
           "unusual Xr punctuation",
           "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 250  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 265  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 544  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 715  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 727  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 737  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.87

CVSweb