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

Diff for /mandoc/read.c between version 1.205 and 1.206

version 1.205, 2018/12/14 02:16:21 version 1.206, 2018/12/14 05:18:03
Line 208  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 208  mparse_buf_r(struct mparse *curp, struct buf blk, size
                         if (c & 0x80) {                          if (c & 0x80) {
                                 if ( ! (curp->filenc && preconv_encode(                                  if ( ! (curp->filenc && preconv_encode(
                                     &blk, &i, &ln, &pos, &curp->filenc))) {                                      &blk, &i, &ln, &pos, &curp->filenc))) {
                                         mandoc_vmsg(MANDOCERR_CHAR_BAD, curp,                                          mandoc_msg(MANDOCERR_CHAR_BAD,
                                             curp->line, pos, "0x%x", c);                                              curp->line, pos, "0x%x", c);
                                         ln.buf[pos++] = '?';                                          ln.buf[pos++] = '?';
                                         i++;                                          i++;
Line 221  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 221  mparse_buf_r(struct mparse *curp, struct buf blk, size
                          */                           */
   
                         if (c == 0x7f || (c < 0x20 && c != 0x09)) {                          if (c == 0x7f || (c < 0x20 && c != 0x09)) {
                                 mandoc_vmsg(c == 0x00 || c == 0x04 ||                                  mandoc_msg(c == 0x00 || c == 0x04 ||
                                     c > 0x0a ? MANDOCERR_CHAR_BAD :                                      c > 0x0a ? MANDOCERR_CHAR_BAD :
                                     MANDOCERR_CHAR_UNSUPP,                                      MANDOCERR_CHAR_UNSUPP,
                                     curp, curp->line, pos, "0x%x", c);                                      curp->line, pos, "0x%x", c);
                                 i++;                                  i++;
                                 if (c != '\r')                                  if (c != '\r')
                                         ln.buf[pos++] = '?';                                          ln.buf[pos++] = '?';
Line 298  rerun:
Line 298  rerun:
                                 if (loop == curp->loop)                                  if (loop == curp->loop)
                                         break;                                          break;
                                 mandoc_msg(MANDOCERR_WHILE_NEST,                                  mandoc_msg(MANDOCERR_WHILE_NEST,
                                     curp, curp->line, pos, NULL);                                      curp->line, pos, NULL);
                         }                          }
                         curp->loop = thisln;                          curp->loop = thisln;
                         loop = NULL;                          loop = NULL;
Line 308  rerun:
Line 308  rerun:
                 case ROFF_LOOPEXIT:                  case ROFF_LOOPEXIT:
                         if (curp->loop == NULL) {                          if (curp->loop == NULL) {
                                 mandoc_msg(MANDOCERR_WHILE_FAIL,                                  mandoc_msg(MANDOCERR_WHILE_FAIL,
                                     curp, curp->line, pos, NULL);                                      curp->line, pos, NULL);
                                 break;                                  break;
                         }                          }
                         if (inloop == 0) {                          if (inloop == 0) {
                                 mandoc_msg(MANDOCERR_WHILE_INTO,                                  mandoc_msg(MANDOCERR_WHILE_INTO,
                                     curp, curp->line, pos, NULL);                                      curp->line, pos, NULL);
                                 curp->loop = loop = NULL;                                  curp->loop = loop = NULL;
                                 break;                                  break;
                         }                          }
Line 348  rerun:
Line 348  rerun:
                         if (++curp->reparse_count > REPARSE_LIMIT) {                          if (++curp->reparse_count > REPARSE_LIMIT) {
                                 /* Abort and return to the top level. */                                  /* Abort and return to the top level. */
                                 result = ROFF_IGN;                                  result = ROFF_IGN;
                                 mandoc_msg(MANDOCERR_ROFFLOOP, curp,                                  mandoc_msg(MANDOCERR_ROFFLOOP,
                                     curp->line, pos, NULL);                                      curp->line, pos, NULL);
                                 goto out;                                  goto out;
                         }                          }
Line 372  rerun:
Line 372  rerun:
                                 mparse_readfd(curp, fd, ln.buf + of);                                  mparse_readfd(curp, fd, ln.buf + of);
                                 close(fd);                                  close(fd);
                         } else {                          } else {
                                 mandoc_vmsg(MANDOCERR_SO_FAIL,                                  mandoc_msg(MANDOCERR_SO_FAIL, curp->line,
                                     curp, curp->line, pos,                                      pos, ".so %s", ln.buf + of);
                                     ".so %s", ln.buf + of);  
                                 ln.sz = mandoc_asprintf(&cp,                                  ln.sz = mandoc_asprintf(&cp,
                                     ".sp\nSee the file %s.\n.sp",                                      ".sp\nSee the file %s.\n.sp",
                                     ln.buf + of);                                      ln.buf + of);
Line 409  rerun:
Line 408  rerun:
 out:  out:
         if (inloop) {          if (inloop) {
                 if (result != ROFF_USERRET)                  if (result != ROFF_USERRET)
                         mandoc_msg(MANDOCERR_WHILE_OUTOF, curp,                          mandoc_msg(MANDOCERR_WHILE_OUTOF,
                             curp->line, pos, NULL);                              curp->line, pos, NULL);
                 curp->loop = NULL;                  curp->loop = NULL;
         }          }
Line 429  read_whole_file(struct mparse *curp, int fd, struct bu
Line 428  read_whole_file(struct mparse *curp, int fd, struct bu
         int              gzerrnum, retval;          int              gzerrnum, retval;
   
         if (fstat(fd, &st) == -1) {          if (fstat(fd, &st) == -1) {
                 mandoc_vmsg(MANDOCERR_FILE, curp, 0, 0,                  mandoc_msg(MANDOCERR_FILE, 0, 0,
                     "fstat: %s", strerror(errno));                      "fstat: %s", strerror(errno));
                 return 0;                  return 0;
         }          }
Line 443  read_whole_file(struct mparse *curp, int fd, struct bu
Line 442  read_whole_file(struct mparse *curp, int fd, struct bu
   
         if (curp->gzip == 0 && S_ISREG(st.st_mode)) {          if (curp->gzip == 0 && S_ISREG(st.st_mode)) {
                 if (st.st_size > 0x7fffffff) {                  if (st.st_size > 0x7fffffff) {
                         mandoc_msg(MANDOCERR_TOOLARGE, curp, 0, 0, NULL);                          mandoc_msg(MANDOCERR_TOOLARGE, 0, 0, NULL);
                         return 0;                          return 0;
                 }                  }
                 *with_mmap = 1;                  *with_mmap = 1;
Line 462  read_whole_file(struct mparse *curp, int fd, struct bu
Line 461  read_whole_file(struct mparse *curp, int fd, struct bu
                  * which this function must not do.                   * which this function must not do.
                  */                   */
                 if ((fd = dup(fd)) == -1) {                  if ((fd = dup(fd)) == -1) {
                         mandoc_vmsg(MANDOCERR_FILE, curp, 0, 0,                          mandoc_msg(MANDOCERR_FILE, 0, 0,
                             "dup: %s", strerror(errno));                              "dup: %s", strerror(errno));
                         return 0;                          return 0;
                 }                  }
                 if ((gz = gzdopen(fd, "rb")) == NULL) {                  if ((gz = gzdopen(fd, "rb")) == NULL) {
                         mandoc_vmsg(MANDOCERR_FILE, curp, 0, 0,                          mandoc_msg(MANDOCERR_FILE, 0, 0,
                             "gzdopen: %s", strerror(errno));                              "gzdopen: %s", strerror(errno));
                         close(fd);                          close(fd);
                         return 0;                          return 0;
Line 488  read_whole_file(struct mparse *curp, int fd, struct bu
Line 487  read_whole_file(struct mparse *curp, int fd, struct bu
         for (;;) {          for (;;) {
                 if (off == fb->sz) {                  if (off == fb->sz) {
                         if (fb->sz == (1U << 31)) {                          if (fb->sz == (1U << 31)) {
                                 mandoc_msg(MANDOCERR_TOOLARGE, curp,                                  mandoc_msg(MANDOCERR_TOOLARGE, 0, 0, NULL);
                                     0, 0, NULL);  
                                 break;                                  break;
                         }                          }
                         resize_buf(fb, 65536);                          resize_buf(fb, 65536);
Line 505  read_whole_file(struct mparse *curp, int fd, struct bu
Line 503  read_whole_file(struct mparse *curp, int fd, struct bu
                 if (ssz == -1) {                  if (ssz == -1) {
                         if (curp->gzip)                          if (curp->gzip)
                                 (void)gzerror(gz, &gzerrnum);                                  (void)gzerror(gz, &gzerrnum);
                         mandoc_vmsg(MANDOCERR_FILE, curp, 0, 0, "read: %s",                          mandoc_msg(MANDOCERR_FILE, 0, 0, "read: %s",
                             curp->gzip && gzerrnum != Z_ERRNO ?                              curp->gzip && gzerrnum != Z_ERRNO ?
                             zError(gzerrnum) : strerror(errno));                              zError(gzerrnum) : strerror(errno));
                         break;                          break;
Line 514  read_whole_file(struct mparse *curp, int fd, struct bu
Line 512  read_whole_file(struct mparse *curp, int fd, struct bu
         }          }
   
         if (curp->gzip && (gzerrnum = gzclose(gz)) != Z_OK)          if (curp->gzip && (gzerrnum = gzclose(gz)) != Z_OK)
                 mandoc_vmsg(MANDOCERR_FILE, curp, 0, 0, "gzclose: %s",                  mandoc_msg(MANDOCERR_FILE, 0, 0, "gzclose: %s",
                     gzerrnum == Z_ERRNO ? strerror(errno) :                      gzerrnum == Z_ERRNO ? strerror(errno) :
                     zError(gzerrnum));                      zError(gzerrnum));
         if (retval == 0) {          if (retval == 0) {
Line 553  mparse_readfd(struct mparse *curp, int fd, const char 
Line 551  mparse_readfd(struct mparse *curp, int fd, const char 
         int              with_mmap;          int              with_mmap;
   
         if (recursion_depth > 64) {          if (recursion_depth > 64) {
                 mandoc_msg(MANDOCERR_ROFFLOOP, curp, curp->line, 0, NULL);                  mandoc_msg(MANDOCERR_ROFFLOOP, curp->line, 0, NULL);
                 return;                  return;
         }          }
         if (read_whole_file(curp, fd, &blk, &with_mmap) == 0)          if (read_whole_file(curp, fd, &blk, &with_mmap) == 0)
Line 635  mparse_open(struct mparse *curp, const char *file)
Line 633  mparse_open(struct mparse *curp, const char *file)
   
         /* Neither worked, give up. */          /* Neither worked, give up. */
   
         mandoc_msg(MANDOCERR_FILE, curp, 0, 0, strerror(errno));          mandoc_msg(MANDOCERR_FILE, 0, 0, "%s", strerror(errno));
         return -1;          return -1;
 }  }
   

Legend:
Removed from v.1.205  
changed lines
  Added in v.1.206

CVSweb