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

Diff for /mandoc/read.c between version 1.35 and 1.36

version 1.35, 2013/05/30 03:52:59 version 1.36, 2013/06/01 22:57:35
Line 71  struct mparse {
Line 71  struct mparse {
   
 static  void      resize_buf(struct buf *, size_t);  static  void      resize_buf(struct buf *, size_t);
 static  void      mparse_buf_r(struct mparse *, struct buf, int);  static  void      mparse_buf_r(struct mparse *, struct buf, int);
 static  void      mparse_readfd_r(struct mparse *, int, const char *, int);  
 static  void      pset(const char *, int, struct mparse *);  static  void      pset(const char *, int, struct mparse *);
 static  int       read_whole_file(const char *, int, struct buf *, int *);  static  int       read_whole_file(const char *, int, struct buf *, int *);
 static  void      mparse_end(struct mparse *);  static  void      mparse_end(struct mparse *);
Line 490  rerun:
Line 489  rerun:
                          */                           */
                         if (curp->secondary)                          if (curp->secondary)
                                 curp->secondary->sz -= pos + 1;                                  curp->secondary->sz -= pos + 1;
                         mparse_readfd_r(curp, -1, ln.buf + of, 1);                          mparse_readfd(curp, -1, ln.buf + of);
                         if (MANDOCLEVEL_FATAL <= curp->file_status)                          if (MANDOCLEVEL_FATAL <= curp->file_status)
                                 break;                                  break;
                         pos = 0;                          pos = 0;
Line 664  mparse_end(struct mparse *curp)
Line 663  mparse_end(struct mparse *curp)
 }  }
   
 static void  static void
 mparse_parse_buffer(struct mparse *curp, struct buf blk, const char *file,  mparse_parse_buffer(struct mparse *curp, struct buf blk, const char *file)
                 int re)  
 {  {
         const char      *svfile;          const char      *svfile;
           static int       recursion_depth;
   
           if (64 < recursion_depth) {
                   mandoc_msg(MANDOCERR_ROFFLOOP, curp, curp->line, 0, NULL);
                   return;
           }
   
         /* Line number is per-file. */          /* Line number is per-file. */
         svfile = curp->file;          svfile = curp->file;
         curp->file = file;          curp->file = file;
         curp->line = 1;          curp->line = 1;
           recursion_depth++;
   
         mparse_buf_r(curp, blk, 1);          mparse_buf_r(curp, blk, 1);
   
         if (0 == re && MANDOCLEVEL_FATAL > curp->file_status)          if (0 == --recursion_depth && MANDOCLEVEL_FATAL > curp->file_status)
                 mparse_end(curp);                  mparse_end(curp);
   
         curp->file = svfile;          curp->file = svfile;
Line 691  mparse_readmem(struct mparse *curp, const void *buf, s
Line 696  mparse_readmem(struct mparse *curp, const void *buf, s
         blk.buf = UNCONST(buf);          blk.buf = UNCONST(buf);
         blk.sz = len;          blk.sz = len;
   
         mparse_parse_buffer(curp, blk, file, 0);          mparse_parse_buffer(curp, blk, file);
         return(curp->file_status);          return(curp->file_status);
 }  }
   
 static void  enum mandoclevel
 mparse_readfd_r(struct mparse *curp, int fd, const char *file, int re)  mparse_readfd(struct mparse *curp, int fd, const char *file)
 {  {
         struct buf       blk;          struct buf       blk;
         int              with_mmap;          int              with_mmap;
Line 705  mparse_readfd_r(struct mparse *curp, int fd, const cha
Line 710  mparse_readfd_r(struct mparse *curp, int fd, const cha
                 if (-1 == (fd = open(file, O_RDONLY, 0))) {                  if (-1 == (fd = open(file, O_RDONLY, 0))) {
                         perror(file);                          perror(file);
                         curp->file_status = MANDOCLEVEL_SYSERR;                          curp->file_status = MANDOCLEVEL_SYSERR;
                         return;                          goto out;
                 }                  }
         /*          /*
          * Run for each opened file; may be called more than once for           * Run for each opened file; may be called more than once for
Line 716  mparse_readfd_r(struct mparse *curp, int fd, const cha
Line 721  mparse_readfd_r(struct mparse *curp, int fd, const cha
   
         if ( ! read_whole_file(file, fd, &blk, &with_mmap)) {          if ( ! read_whole_file(file, fd, &blk, &with_mmap)) {
                 curp->file_status = MANDOCLEVEL_SYSERR;                  curp->file_status = MANDOCLEVEL_SYSERR;
                 return;                  goto out;
         }          }
   
         mparse_parse_buffer(curp, blk, file, re);          mparse_parse_buffer(curp, blk, file);
   
 #ifdef  HAVE_MMAP  #ifdef  HAVE_MMAP
         if (with_mmap)          if (with_mmap)
Line 730  mparse_readfd_r(struct mparse *curp, int fd, const cha
Line 735  mparse_readfd_r(struct mparse *curp, int fd, const cha
   
         if (STDIN_FILENO != fd && -1 == close(fd))          if (STDIN_FILENO != fd && -1 == close(fd))
                 perror(file);                  perror(file);
 }  out:
   
 enum mandoclevel  
 mparse_readfd(struct mparse *curp, int fd, const char *file)  
 {  
   
         mparse_readfd_r(curp, fd, file, 0);  
         return(curp->file_status);          return(curp->file_status);
 }  }
   

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

CVSweb