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

Diff for /mandoc/read.c between version 1.213 and 1.214

version 1.213, 2019/06/03 19:58:02 version 1.214, 2019/07/10 19:39:01
Line 431  read_whole_file(struct mparse *curp, int fd, struct bu
Line 431  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_msg(MANDOCERR_FILE, 0, 0,                  mandoc_msg(MANDOCERR_FSTAT, 0, 0, "%s", strerror(errno));
                     "fstat: %s", strerror(errno));                  return -1;
                 return 0;  
         }          }
   
         /*          /*
Line 446  read_whole_file(struct mparse *curp, int fd, struct bu
Line 445  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, 0, 0, NULL);                          mandoc_msg(MANDOCERR_TOOLARGE, 0, 0, NULL);
                         return 0;                          return -1;
                 }                  }
                 *with_mmap = 1;                  *with_mmap = 1;
                 fb->sz = (size_t)st.st_size;                  fb->sz = (size_t)st.st_size;
                 fb->buf = mmap(NULL, fb->sz, PROT_READ, MAP_SHARED, fd, 0);                  fb->buf = mmap(NULL, fb->sz, PROT_READ, MAP_SHARED, fd, 0);
                 if (fb->buf != MAP_FAILED)                  if (fb->buf != MAP_FAILED)
                         return 1;                          return 0;
         }          }
   
         if (curp->gzip) {          if (curp->gzip) {
Line 464  read_whole_file(struct mparse *curp, int fd, struct bu
Line 463  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_msg(MANDOCERR_FILE, 0, 0,                          mandoc_msg(MANDOCERR_DUP, 0, 0,
                             "dup: %s", strerror(errno));                              "%s", strerror(errno));
                         return 0;                          return -1;
                 }                  }
                 if ((gz = gzdopen(fd, "rb")) == NULL) {                  if ((gz = gzdopen(fd, "rb")) == NULL) {
                         mandoc_msg(MANDOCERR_FILE, 0, 0,                          mandoc_msg(MANDOCERR_GZDOPEN, 0, 0,
                             "gzdopen: %s", strerror(errno));                              "%s", strerror(errno));
                         close(fd);                          close(fd);
                         return 0;                          return -1;
                 }                  }
         } else          } else
                 gz = NULL;                  gz = NULL;
Line 484  read_whole_file(struct mparse *curp, int fd, struct bu
Line 483  read_whole_file(struct mparse *curp, int fd, struct bu
   
         *with_mmap = 0;          *with_mmap = 0;
         off = 0;          off = 0;
         retval = 0;          retval = -1;
         fb->sz = 0;          fb->sz = 0;
         fb->buf = NULL;          fb->buf = NULL;
         for (;;) {          for (;;) {
Line 500  read_whole_file(struct mparse *curp, int fd, struct bu
Line 499  read_whole_file(struct mparse *curp, int fd, struct bu
                     read(fd, fb->buf + (int)off, fb->sz - off);                      read(fd, fb->buf + (int)off, fb->sz - off);
                 if (ssz == 0) {                  if (ssz == 0) {
                         fb->sz = off;                          fb->sz = off;
                         retval = 1;                          retval = 0;
                         break;                          break;
                 }                  }
                 if (ssz == -1) {                  if (ssz == -1) {
                         if (curp->gzip)                          if (curp->gzip)
                                 (void)gzerror(gz, &gzerrnum);                                  (void)gzerror(gz, &gzerrnum);
                         mandoc_msg(MANDOCERR_FILE, 0, 0, "read: %s",                          mandoc_msg(MANDOCERR_READ, 0, 0, "%s",
                             curp->gzip && gzerrnum != Z_ERRNO ?                              curp->gzip && gzerrnum != Z_ERRNO ?
                             zError(gzerrnum) : strerror(errno));                              zError(gzerrnum) : strerror(errno));
                         break;                          break;
Line 515  read_whole_file(struct mparse *curp, int fd, struct bu
Line 514  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_msg(MANDOCERR_FILE, 0, 0, "gzclose: %s",                  mandoc_msg(MANDOCERR_GZCLOSE, 0, 0, "%s",
                     gzerrnum == Z_ERRNO ? strerror(errno) :                      gzerrnum == Z_ERRNO ? strerror(errno) :
                     zError(gzerrnum));                      zError(gzerrnum));
         if (retval == 0) {          if (retval == -1) {
                 free(fb->buf);                  free(fb->buf);
                 fb->buf = NULL;                  fb->buf = NULL;
         }          }
Line 557  mparse_readfd(struct mparse *curp, int fd, const char 
Line 556  mparse_readfd(struct mparse *curp, int fd, const char 
                 mandoc_msg(MANDOCERR_ROFFLOOP, 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) == -1)
                 return;                  return;
   
         /*          /*

Legend:
Removed from v.1.213  
changed lines
  Added in v.1.214

CVSweb