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

Diff for /mandoc/main.c between version 1.29 and 1.30

version 1.29, 2009/06/16 19:13:28 version 1.30, 2009/06/16 20:22:23
Line 101  static int    merr(void *, int, int, const char *);
Line 101  static int    merr(void *, int, int, const char *);
 static  int               manwarn(void *, int, int, const char *);  static  int               manwarn(void *, int, int, const char *);
 static  int               mdocwarn(void *, int, int,  static  int               mdocwarn(void *, int, int,
                                 enum mdoc_warn, const char *);                                  enum mdoc_warn, const char *);
 static  int               fstdin(struct buf *, struct buf *,  
                                 struct curparse *);  
 static  int               ffile(struct buf *, struct buf *,  static  int               ffile(struct buf *, struct buf *,
                                 const char *, struct curparse *);                                  const char *, struct curparse *);
 static  int               fdesc(struct buf *, struct buf *,  static  int               fdesc(struct buf *, struct buf *,
Line 159  main(int argc, char *argv[])
Line 157  main(int argc, char *argv[])
         argc -= optind;          argc -= optind;
         argv += optind;          argv += optind;
   
         /* Configure buffers. */  
   
         bzero(&ln, sizeof(struct buf));          bzero(&ln, sizeof(struct buf));
         bzero(&blk, sizeof(struct buf));          bzero(&blk, sizeof(struct buf));
   
         rc = 1;          rc = 1;
   
         if (NULL == *argv)          if (NULL == *argv) {
                 if ( ! fstdin(&blk, &ln, &curp))                  curp.file = "<stdin>";
                   curp.fd = STDIN_FILENO;
                   if ( ! fdesc(&blk, &ln, &curp))
                         rc = 0;                          rc = 0;
           }
   
         while (rc && *argv) {          while (rc && *argv) {
                 if ( ! ffile(&blk, &ln, *argv, &curp))                  if ( ! ffile(&blk, &ln, *argv, &curp))
Line 190  main(int argc, char *argv[])
Line 189  main(int argc, char *argv[])
                 free(blk.buf);                  free(blk.buf);
         if (ln.buf)          if (ln.buf)
                 free(ln.buf);                  free(ln.buf);
   
         /* TODO: have a curp_free routine. */  
         if (curp.outfree)          if (curp.outfree)
                 (*curp.outfree)(curp.outdata);                  (*curp.outfree)(curp.outdata);
         if (curp.mdoc)          if (curp.mdoc)
Line 233  man_init(struct curparse *curp)
Line 230  man_init(struct curparse *curp)
         mancb.man_err = merr;          mancb.man_err = merr;
         mancb.man_warn = manwarn;          mancb.man_warn = manwarn;
   
         /*          /* Defaults from mandoc.1. */
          * Default behaviour is to ignore unknown macros.  This is  
          * specified in mandoc.1.  
          */  
   
         pflags = MAN_IGN_MACRO;          pflags = MAN_IGN_MACRO;
   
         /* Override default behaviour... */  
   
         if (curp->fflags & NO_IGN_MACRO)          if (curp->fflags & NO_IGN_MACRO)
                 pflags &= ~MAN_IGN_MACRO;                  pflags &= ~MAN_IGN_MACRO;
   
Line 262  mdoc_init(struct curparse *curp)
Line 254  mdoc_init(struct curparse *curp)
         mdoccb.mdoc_err = merr;          mdoccb.mdoc_err = merr;
         mdoccb.mdoc_warn = mdocwarn;          mdoccb.mdoc_warn = mdocwarn;
   
         /*          /* Defaults from mandoc.1. */
          * Default behaviour is to ignore unknown macros, escape  
          * sequences and characters (very liberal).  This is specified  
          * in mandoc.1.  
          */  
   
         pflags = MDOC_IGN_MACRO | MDOC_IGN_ESCAPE | MDOC_IGN_CHARS;          pflags = MDOC_IGN_MACRO | MDOC_IGN_ESCAPE | MDOC_IGN_CHARS;
   
         /* Override default behaviour... */  
   
         if (curp->fflags & IGN_SCOPE)          if (curp->fflags & IGN_SCOPE)
                 pflags |= MDOC_IGN_SCOPE;                  pflags |= MDOC_IGN_SCOPE;
         if (curp->fflags & NO_IGN_ESCAPE)          if (curp->fflags & NO_IGN_ESCAPE)
Line 289  mdoc_init(struct curparse *curp)
Line 275  mdoc_init(struct curparse *curp)
   
   
 static int  static int
 fstdin(struct buf *blk, struct buf *ln, struct curparse *curp)  
 {  
   
         curp->file = "<stdin>";  
         curp->fd = STDIN_FILENO;  
         return(fdesc(blk, ln, curp));  
 }  
   
   
 static int  
 ffile(struct buf *blk, struct buf *ln,  ffile(struct buf *blk, struct buf *ln,
                 const char *file, struct curparse *curp)                  const char *file, struct curparse *curp)
 {  {
Line 421  fdesc(struct buf *blk, struct buf *ln, struct curparse
Line 397  fdesc(struct buf *blk, struct buf *ln, struct curparse
   
                         pos = comment = 0;                          pos = comment = 0;
   
                           /* Pass down into parsers. */
   
                         if (man && ! man_parseln(man, lnn, ln->buf))                          if (man && ! man_parseln(man, lnn, ln->buf))
                                 return(0);                                  return(0);
                         if (mdoc && ! mdoc_parseln(mdoc, lnn, ln->buf))                          if (mdoc && ! mdoc_parseln(mdoc, lnn, ln->buf))
Line 482  pset(const char *buf, int pos, struct curparse *curp,
Line 460  pset(const char *buf, int pos, struct curparse *curp,
          * Try to intuit which kind of manual parser should be used.  If           * Try to intuit which kind of manual parser should be used.  If
          * passed in by command-line (-man, -mdoc), then use that           * passed in by command-line (-man, -mdoc), then use that
          * explicitly.  If passed as -mandoc, then try to guess from the           * explicitly.  If passed as -mandoc, then try to guess from the
          * line: either skip comments, use -mdoc when finding `.Dt', or           * line: either skip dot-lines, use -mdoc when finding `.Dt', or
          * default to -man, which is more lenient.           * default to -man, which is more lenient.
          */           */
   
Line 569  toptions(enum outt *tflags, char *arg)
Line 547  toptions(enum outt *tflags, char *arg)
 }  }
   
   
 /*  
  * Parse out the options for [-fopt...] setting compiler options.  These  
  * can be comma-delimited or called again.  
  */  
 static int  static int
 foptions(int *fflags, char *arg)  foptions(int *fflags, char *arg)
 {  {
Line 613  foptions(int *fflags, char *arg)
Line 587  foptions(int *fflags, char *arg)
 }  }
   
   
 /*  
  * Parse out the options for [-Werr...], which sets warning modes.  
  * These can be comma-delimited or called again.  
  */  
 static int  static int
 woptions(int *wflags, char *arg)  woptions(int *wflags, char *arg)
 {  {
Line 662  merr(void *arg, int line, int col, const char *msg)
Line 632  merr(void *arg, int line, int col, const char *msg)
         warnx("%s:%d: error: %s (column %d)",          warnx("%s:%d: error: %s (column %d)",
                         curp->file, line, msg, col);                          curp->file, line, msg, col);
   
         /* Always exit on errors... */  
         return(0);          return(0);
 }  }
   
Line 697  mdocwarn(void *arg, int line, int col, 
Line 666  mdocwarn(void *arg, int line, int col, 
         if ( ! (curp->wflags & WARN_WERR))          if ( ! (curp->wflags & WARN_WERR))
                 return(1);                  return(1);
   
         /*          warnx("considering warnings as errors");
          * If the -Werror flag is passed in, as in gcc, then all  
          * warnings are considered as errors.  
          */  
   
         warnx("%s: considering warnings as errors",  
                         __progname);  
         return(0);          return(0);
 }  }
   
Line 724  manwarn(void *arg, int line, int col, const char *msg)
Line 687  manwarn(void *arg, int line, int col, const char *msg)
         if ( ! (curp->wflags & WARN_WERR))          if ( ! (curp->wflags & WARN_WERR))
                 return(1);                  return(1);
   
         /*          warnx("considering warnings as errors");
          * If the -Werror flag is passed in, as in gcc, then all  
          * warnings are considered as errors.  
          */  
   
         warnx("%s: considering warnings as errors",  
                         __progname);  
         return(0);          return(0);
 }  }

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30

CVSweb