[BACK]Return to read.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mandoc

Diff for /src/usr.bin/mandoc/read.c between version 1.22 and 1.23

version 1.22, 2014/03/19 21:50:59 version 1.23, 2014/03/19 22:20:36
Line 51 
Line 51 
         struct man       *man; /* man parser */          struct man       *man; /* man parser */
         struct mdoc      *mdoc; /* mdoc parser */          struct mdoc      *mdoc; /* mdoc parser */
         struct roff      *roff; /* roff parser (!NULL) */          struct roff      *roff; /* roff parser (!NULL) */
           char             *sodest; /* filename pointed to by .so */
         int               reparse_count; /* finite interp. stack */          int               reparse_count; /* finite interp. stack */
         mandocmsg         mmsg; /* warning/error message handler */          mandocmsg         mmsg; /* warning/error message handler */
         const char       *file;          const char       *file;
Line 482 
Line 483 
                         assert(MANDOCLEVEL_FATAL <= curp->file_status);                          assert(MANDOCLEVEL_FATAL <= curp->file_status);
                         break;                          break;
                 case (ROFF_SO):                  case (ROFF_SO):
                           if (0 == (MPARSE_SO & curp->options) &&
                               (i >= (int)blk.sz || '\0' == blk.buf[i])) {
                                   curp->sodest = mandoc_strdup(ln.buf + of);
                                   free(ln.buf);
                                   return;
                           }
                         /*                          /*
                          * We remove `so' clauses from our lookaside                           * We remove `so' clauses from our lookaside
                          * buffer because we're going to descend into                           * buffer because we're going to descend into
Line 666 
Line 673 
                 return;                  return;
         }          }
   
         if ( ! (curp->man || curp->mdoc)) {          if ( ! (curp->mdoc || curp->man || curp->sodest)) {
                 mandoc_msg(MANDOCERR_NOTMANUAL, curp, 1, 0, NULL);                  mandoc_msg(MANDOCERR_NOTMANUAL, curp, 1, 0, NULL);
                 curp->file_status = MANDOCLEVEL_FATAL;                  curp->file_status = MANDOCLEVEL_FATAL;
                 return;                  return;
Line 773 
Line 780 
         curp->file_status = MANDOCLEVEL_OK;          curp->file_status = MANDOCLEVEL_OK;
         curp->mdoc = NULL;          curp->mdoc = NULL;
         curp->man = NULL;          curp->man = NULL;
   
           free(curp->sodest);
           curp->sodest = NULL;
 }  }
   
 void  void
Line 789 
Line 799 
                 free(curp->secondary->buf);                  free(curp->secondary->buf);
   
         free(curp->secondary);          free(curp->secondary);
           free(curp->sodest);
         free(curp);          free(curp);
 }  }
   
 void  void
 mparse_result(struct mparse *curp, struct mdoc **mdoc, struct man **man)  mparse_result(struct mparse *curp,
           struct mdoc **mdoc, struct man **man, char **sodest)
 {  {
   
           if (sodest && NULL != (*sodest = curp->sodest)) {
                   *mdoc = NULL;
                   *man = NULL;
                   return;
           }
         if (mdoc)          if (mdoc)
                 *mdoc = curp->mdoc;                  *mdoc = curp->mdoc;
         if (man)          if (man)

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23