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

Diff for /mandoc/read.c between version 1.218 and 1.221

version 1.218, 2020/04/18 20:40:10 version 1.221, 2022/05/19 14:48:56
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 259  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 261  mparse_buf_r(struct mparse *curp, struct buf blk, size
                         lastln = thisln;                          lastln = thisln;
                 }                  }
   
                 /* XXX Ugly hack to mark the end of the input. */                  /*
                    * XXX Ugly hack to mark the end of the input,
                    * such that the function roff_parse_comment()
                    * doesn't attempt to append another line if the
                    * last input line ends with an escape character.
                    */
   
                 if (i == blk.sz || blk.buf[i] == '\0') {                  if (i == blk.sz || blk.buf[i] == '\0') {
                         if (pos + 2 > ln.sz)                          if (pos + 2 > ln.sz)
Line 279  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 286  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 562  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 570  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;
   

Legend:
Removed from v.1.218  
changed lines
  Added in v.1.221

CVSweb