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

Diff for /mandoc/read.c between version 1.217 and 1.220

version 1.217, 2020/04/07 22:56:02 version 1.220, 2021/06/27 17:57:54
Line 1 
Line 1 
 /* $Id$ */  /* $Id$ */
 /*  /*
  * Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2010-2020 Ingo Schwarze <schwarze@openbsd.org>
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2012 Joerg Sonnenberger <joerg@netbsd.org>   * Copyright (c) 2010, 2012 Joerg Sonnenberger <joerg@netbsd.org>
  *   *
Line 42 
Line 42 
 #include "mandoc_aux.h"  #include "mandoc_aux.h"
 #include "mandoc.h"  #include "mandoc.h"
 #include "roff.h"  #include "roff.h"
 #include "tag.h"  
 #include "mdoc.h"  #include "mdoc.h"
 #include "man.h"  #include "man.h"
 #include "mandoc_parse.h"  #include "mandoc_parse.h"
 #include "libmandoc.h"  #include "libmandoc.h"
 #include "roff_int.h"  #include "roff_int.h"
   #include "tag.h"
   
 #define REPARSE_LIMIT   1000  #define REPARSE_LIMIT   1000
   
Line 154  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 154  mparse_buf_r(struct mparse *curp, struct buf blk, size
         struct buf      *firstln, *lastln, *thisln, *loop;          struct buf      *firstln, *lastln, *thisln, *loop;
         char            *cp;          char            *cp;
         size_t           pos; /* byte number in the ln buffer */          size_t           pos; /* byte number in the ln buffer */
           size_t           spos; /* at the start of the current line parse */
         int              line_result, result;          int              line_result, result;
         int              of;          int              of;
         int              lnn; /* line number in the real file */          int              lnn; /* line number in the real file */
Line 180  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 181  mparse_buf_r(struct mparse *curp, struct buf blk, size
                             curp->filenc & MPARSE_LATIN1)                              curp->filenc & MPARSE_LATIN1)
                                 curp->filenc = preconv_cue(&blk, i);                                  curp->filenc = preconv_cue(&blk, i);
                 }                  }
                   spos = pos;
   
                 while (i < blk.sz && (start || blk.buf[i] != '\0')) {                  while (i < blk.sz && (start || blk.buf[i] != '\0')) {
   
Line 279  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 281  mparse_buf_r(struct mparse *curp, struct buf blk, size
   
                 of = 0;                  of = 0;
 rerun:  rerun:
                 line_result = roff_parseln(curp->roff, curp->line, &ln, &of);                  line_result = roff_parseln(curp->roff, curp->line,
                       &ln, &of, start && spos == 0 ? pos : 0);
   
                 /* Process options. */                  /* Process options. */
   
Line 554  mparse_readfd(struct mparse *curp, int fd, const char 
Line 557  mparse_readfd(struct mparse *curp, int fd, const char 
   
         struct buf       blk;          struct buf       blk;
         struct buf      *save_primary;          struct buf      *save_primary;
         const char      *save_filename;          const char      *save_filename, *cp;
         size_t           offset;          size_t           offset;
         int              save_filenc, save_lineno;          int              save_filenc, save_lineno;
         int              with_mmap;          int              with_mmap;
Line 562  mparse_readfd(struct mparse *curp, int fd, const char 
Line 565  mparse_readfd(struct mparse *curp, int fd, const char 
         if (recursion_depth > 64) {          if (recursion_depth > 64) {
                 mandoc_msg(MANDOCERR_ROFFLOOP, curp->line, 0, NULL);                  mandoc_msg(MANDOCERR_ROFFLOOP, curp->line, 0, NULL);
                 return;                  return;
         }          } else if (recursion_depth == 0 &&
               (cp = strrchr(filename, '.')) != NULL &&
               cp[1] >= '1' && cp[1] <= '9')
                   curp->man->filesec = cp[1];
           else
                   curp->man->filesec = '\0';
   
         if (read_whole_file(curp, fd, &blk, &with_mmap) == -1)          if (read_whole_file(curp, fd, &blk, &with_mmap) == -1)
                 return;                  return;
   
Line 708  mparse_result(struct mparse *curp)
Line 717  mparse_result(struct mparse *curp)
                         mdoc_validate(curp->man);                          mdoc_validate(curp->man);
                 else                  else
                         man_validate(curp->man);                          man_validate(curp->man);
                 tag_postprocess(curp->man->meta.first);                  tag_postprocess(curp->man, curp->man->meta.first);
         }          }
         return &curp->man->meta;          return &curp->man->meta;
 }  }

Legend:
Removed from v.1.217  
changed lines
  Added in v.1.220

CVSweb