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

Diff for /mandoc/read.c between version 1.150.2.7 and 1.158

version 1.150.2.7, 2017/02/03 18:22:30 version 1.158, 2017/01/28 23:30:08
Line 19 
Line 19 
 #include "config.h"  #include "config.h"
   
 #include <sys/types.h>  #include <sys/types.h>
 #if HAVE_MMAP  
 #include <sys/mman.h>  #include <sys/mman.h>
 #include <sys/stat.h>  #include <sys/stat.h>
 #endif  
   
 #include <assert.h>  #include <assert.h>
 #include <ctype.h>  #include <ctype.h>
Line 50 
Line 48 
 #define REPARSE_LIMIT   1000  #define REPARSE_LIMIT   1000
   
 struct  mparse {  struct  mparse {
         struct roff      *roff; /* roff parser (!NULL) */  
         struct roff_man  *man; /* man parser */          struct roff_man  *man; /* man parser */
           struct roff      *roff; /* roff parser (!NULL) */
         char             *sodest; /* filename pointed to by .so */          char             *sodest; /* filename pointed to by .so */
         const char       *file; /* filename of current input file */          const char       *file; /* filename of current input file */
         struct buf       *primary; /* buffer currently being parsed */          struct buf       *primary; /* buffer currently being parsed */
Line 609  read_whole_file(struct mparse *curp, const char *file,
Line 607  read_whole_file(struct mparse *curp, const char *file,
         size_t           off;          size_t           off;
         ssize_t          ssz;          ssize_t          ssz;
   
 #if HAVE_MMAP  
         struct stat      st;          struct stat      st;
   
         if (fstat(fd, &st) == -1)          if (fstat(fd, &st) == -1)
Line 633  read_whole_file(struct mparse *curp, const char *file,
Line 630  read_whole_file(struct mparse *curp, const char *file,
                 if (fb->buf != MAP_FAILED)                  if (fb->buf != MAP_FAILED)
                         return 1;                          return 1;
         }          }
 #endif  
   
         if (curp->gzip) {          if (curp->gzip) {
                 if ((gz = gzdopen(fd, "rb")) == NULL)                  if ((gz = gzdopen(fd, "rb")) == NULL)
Line 758  mparse_readfd(struct mparse *curp, int fd, const char 
Line 754  mparse_readfd(struct mparse *curp, int fd, const char 
                     (MPARSE_UTF8 | MPARSE_LATIN1);                      (MPARSE_UTF8 | MPARSE_LATIN1);
                 mparse_parse_buffer(curp, blk, file);                  mparse_parse_buffer(curp, blk, file);
                 curp->filenc = save_filenc;                  curp->filenc = save_filenc;
 #if HAVE_MMAP  
                 if (with_mmap)                  if (with_mmap)
                         munmap(blk.buf, blk.sz);                          munmap(blk.buf, blk.sz);
                 else                  else
 #endif  
                         free(blk.buf);                          free(blk.buf);
         }          }
         return curp->file_status;          return curp->file_status;
Line 836  mparse_reset(struct mparse *curp)
Line 830  mparse_reset(struct mparse *curp)
 {  {
         roff_reset(curp->roff);          roff_reset(curp->roff);
         roff_man_reset(curp->man);          roff_man_reset(curp->man);
   
         free(curp->sodest);  
         curp->sodest = NULL;  
   
         if (curp->secondary)          if (curp->secondary)
                 curp->secondary->sz = 0;                  curp->secondary->sz = 0;
   
         curp->file_status = MANDOCLEVEL_OK;          curp->file_status = MANDOCLEVEL_OK;
         curp->gzip = 0;  
           free(curp->sodest);
           curp->sodest = NULL;
 }  }
   
 void  void
Line 852  mparse_free(struct mparse *curp)
Line 844  mparse_free(struct mparse *curp)
 {  {
   
         roff_man_free(curp->man);          roff_man_free(curp->man);
         roff_free(curp->roff);          if (curp->roff)
                   roff_free(curp->roff);
         if (curp->secondary)          if (curp->secondary)
                 free(curp->secondary->buf);                  free(curp->secondary->buf);
   

Legend:
Removed from v.1.150.2.7  
changed lines
  Added in v.1.158

CVSweb