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

Diff for /mandoc/read.c between version 1.3 and 1.6

version 1.3, 2011/03/20 16:02:05 version 1.6, 2011/03/22 10:35:26
Line 31 
Line 31 
 #include "libmandoc.h"  #include "libmandoc.h"
 #include "mdoc.h"  #include "mdoc.h"
 #include "man.h"  #include "man.h"
 #include "roff.h"  
   
 #ifndef MAP_FILE  #ifndef MAP_FILE
 #define MAP_FILE        0  #define MAP_FILE        0
Line 58  struct mparse {
Line 57  struct mparse {
         int               reparse_count; /* finite interp. stack */          int               reparse_count; /* finite interp. stack */
         mandocmsg         mmsg; /* warning/error message handler */          mandocmsg         mmsg; /* warning/error message handler */
         void             *arg; /* argument to mmsg */          void             *arg; /* argument to mmsg */
         mevt_open         evt_open; /* file-open event */  
         mevt_close        evt_close; /* file-close event */  
         const char       *file;          const char       *file;
 };  };
   
Line 499  mparse_end(struct mparse *curp)
Line 496  mparse_end(struct mparse *curp)
                 return;                  return;
         }          }
   
 #if 0  
         /* FIXME: NOTE a parser may not have been assigned, yet. */  
   
         if ( ! (curp->man || curp->mdoc)) {          if ( ! (curp->man || curp->mdoc)) {
                 /* FIXME: make into an mandoc.h error. */                  mandoc_msg(MANDOCERR_NOTMANUAL, curp, 1, 0, NULL);
                 fprintf(stderr, "%s: Not a manual\n", curp->file);  
                 curp->file_status = MANDOCLEVEL_FATAL;                  curp->file_status = MANDOCLEVEL_FATAL;
                 goto cleanup;                  return;
         }          }
 #endif  
   
         roff_endparse(curp->roff);          roff_endparse(curp->roff);
 }  }
Line 518  mparse_readfd_r(struct mparse *curp, int fd, const cha
Line 510  mparse_readfd_r(struct mparse *curp, int fd, const cha
 {  {
         const char      *svfile;          const char      *svfile;
   
         if ( ! (*curp->evt_open)(curp->arg, file)) {  
                 curp->file_status = MANDOCLEVEL_SYSERR;  
                 return;  
         }  
   
         if (-1 == fd)          if (-1 == fd)
                 if (-1 == (fd = open(file, O_RDONLY, 0))) {                  if (-1 == (fd = open(file, O_RDONLY, 0))) {
                         perror(file);                          perror(file);
Line 541  mparse_readfd_r(struct mparse *curp, int fd, const cha
Line 528  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);
   
         (*curp->evt_close)(curp->arg, file);  
         curp->file = svfile;          curp->file = svfile;
 }  }
   
Line 554  mparse_readfd(struct mparse *curp, int fd, const char 
Line 540  mparse_readfd(struct mparse *curp, int fd, const char 
 }  }
   
 struct mparse *  struct mparse *
 mparse_alloc(enum mparset inttype, mevt_open eopen,  mparse_alloc(enum mparset inttype, enum mandoclevel wlevel, mandocmsg mmsg, void *arg)
                 mevt_close eclose, enum mandoclevel wlevel, mandocmsg mmsg, void *arg)  
 {  {
         struct mparse   *curp;          struct mparse   *curp;
   
Line 565  mparse_alloc(enum mparset inttype, mevt_open eopen, 
Line 550  mparse_alloc(enum mparset inttype, mevt_open eopen, 
         curp->mmsg = mmsg;          curp->mmsg = mmsg;
         curp->arg = arg;          curp->arg = arg;
         curp->inttype = inttype;          curp->inttype = inttype;
         curp->evt_open = eopen;  
         curp->evt_close = eclose;  
   
         curp->roff = roff_alloc(&curp->regs, curp);          curp->roff = roff_alloc(&curp->regs, curp);
         return(curp);          return(curp);

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.6

CVSweb