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

Diff for /mandoc/main.c between version 1.10 and 1.14

version 1.10, 2009/03/23 14:22:11 version 1.14, 2009/03/25 15:17:49
Line 34  extern int    getsubopt(char **, char * const *, char 
Line 34  extern int    getsubopt(char **, char * const *, char 
 # ifndef __dead  # ifndef __dead
 #  define __dead __attribute__((__noreturn__))  #  define __dead __attribute__((__noreturn__))
 # endif  # endif
 #elif defined(__FreeBSD__)  #elif defined(__dead2)
 # ifndef __dead  # ifndef __dead
 #  define __dead __dead2  #  define __dead __dead2
 # endif  # endif
Line 67  enum outt {
Line 67  enum outt {
         OUTT_LINT          OUTT_LINT
 };  };
   
 typedef int             (*out_run)(void *, const struct mdoc *);  typedef int             (*out_run)(void *, const struct man *,
                                   const struct mdoc *);
 typedef void            (*out_free)(void *);  typedef void            (*out_free)(void *);
   
 extern  char             *__progname;  extern  char             *__progname;
Line 75  extern char   *__progname;
Line 76  extern char   *__progname;
 extern  void             *ascii_alloc(void);  extern  void             *ascii_alloc(void);
 extern  void             *latin1_alloc(void);  extern  void             *latin1_alloc(void);
 extern  void             *utf8_alloc(void);  extern  void             *utf8_alloc(void);
 extern  int               terminal_run(void *, const struct mdoc *);  extern  int               terminal_run(void *, const struct man *,
 extern  int               tree_run(void *, const struct mdoc *);                                  const struct mdoc *);
   extern  int               tree_run(void *, const struct man *,
                                   const struct mdoc *);
 extern  void              terminal_free(void *);  extern  void              terminal_free(void *);
   
 static  int               foptions(int *, char *);  static  int               foptions(int *, char *);
Line 84  static int    toptions(enum outt *, char *);
Line 87  static int    toptions(enum outt *, char *);
 static  int               moptions(enum intt *, char *);  static  int               moptions(enum intt *, char *);
 static  int               woptions(int *, char *);  static  int               woptions(int *, char *);
 static  int               merr(void *, int, int, const char *);  static  int               merr(void *, int, int, const char *);
 static  int               mwarn(void *, int, int,  static  int               manwarn(void *, int, int, const char *);
   static  int               mdocwarn(void *, int, int,
                                 enum mdoc_warn, const char *);                                  enum mdoc_warn, const char *);
 static  int               file(struct buf *, struct buf *,  static  int               file(struct buf *, struct buf *,
                                 const char *,                                  const char *,
Line 101  int
Line 105  int
 main(int argc, char *argv[])  main(int argc, char *argv[])
 {  {
         int              c, rc, fflags;          int              c, rc, fflags;
         struct mdoc_cb   cb;          struct mdoc_cb   mdoccb;
           struct man_cb    mancb;
         struct man      *man;          struct man      *man;
         struct mdoc     *mdoc;          struct mdoc     *mdoc;
         void            *outdata;          void            *outdata;
Line 188  main(int argc, char *argv[])
Line 193  main(int argc, char *argv[])
          * screen.  XXX - for now, no path for debugging messages.           * screen.  XXX - for now, no path for debugging messages.
          */           */
   
         cb.mdoc_msg = NULL;          mdoccb.mdoc_msg = NULL;
         cb.mdoc_err = merr;          mdoccb.mdoc_err = merr;
         cb.mdoc_warn = mwarn;          mdoccb.mdoc_warn = mdocwarn;
   
           mancb.man_err = merr;
           mancb.man_warn = manwarn;
   
         bzero(&ln, sizeof(struct buf));          bzero(&ln, sizeof(struct buf));
         bzero(&blk, sizeof(struct buf));          bzero(&blk, sizeof(struct buf));
   
Line 200  main(int argc, char *argv[])
Line 208  main(int argc, char *argv[])
   
         switch (inttype) {          switch (inttype) {
         case (INTT_MAN):          case (INTT_MAN):
                 man = man_alloc();                  man = man_alloc(&curp, &mancb);
                 break;                  break;
         default:          default:
                 mdoc = mdoc_alloc(&curp, fflags, &cb);                  mdoc = mdoc_alloc(&curp, fflags, &mdoccb);
                 break;                  break;
         }          }
   
Line 219  main(int argc, char *argv[])
Line 227  main(int argc, char *argv[])
   
                 if (c && NULL == outrun)                  if (c && NULL == outrun)
                         rc = 1;                          rc = 1;
 #if 0                  else if (c && outrun && (*outrun)(outdata, man, mdoc))
                 else if (c && outrun && (*outrun)(outdata, mdoc))  
                         rc = 1;                          rc = 1;
 #endif  
         } else {          } else {
                 while (*argv) {                  while (*argv) {
                         curp.file = *argv;                          curp.file = *argv;
                         c = file(&blk, &ln, *argv, man, mdoc);                          c = file(&blk, &ln, *argv, man, mdoc);
                         if ( ! c)                          if ( ! c)
                                 break;                                  break;
 #if 0                          if (outrun && ! (*outrun)(outdata, man, mdoc))
                         if (outrun && ! (*outrun)(outdata, mdoc))  
                                 break;                                  break;
 #endif  
                         if (man)                          if (man)
                                 man_reset(man);                                  man_reset(man);
                         if (mdoc)                          if (mdoc)
Line 272  __dead static void
Line 276  __dead static void
 usage(void)  usage(void)
 {  {
   
         (void)fprintf(stderr, "usage: %s\n", __progname);          (void)fprintf(stderr, "usage: %s [-V] [-foption...] "
                           "[-mformat] [-Toutput] [-Werr...]\n",
                           __progname);
         exit(1);          exit(1);
         /* NOTREACHED */          /* NOTREACHED */
 }  }
Line 514  merr(void *arg, int line, int col, const char *msg)
Line 520  merr(void *arg, int line, int col, const char *msg)
   
   
 static int  static int
 mwarn(void *arg, int line, int col,  mdocwarn(void *arg, int line, int col,
                 enum mdoc_warn type, const char *msg)                  enum mdoc_warn type, const char *msg)
 {  {
         struct curparse *curp;          struct curparse *curp;
Line 549  mwarn(void *arg, int line, int col, 
Line 555  mwarn(void *arg, int line, int col, 
 }  }
   
   
   static int
   manwarn(void *arg, int line, int col, const char *msg)
   {
           struct curparse *curp;
   
           curp = (struct curparse *)arg;
   
           if ( ! (curp->wflags & WARN_WSYNTAX))
                   return(1);
   
           warnx("%s:%d: syntax warning: %s (column %d)",
                           curp->file, line, msg, col);
   
           if ( ! (curp->wflags & WARN_WERR))
                   return(1);
   
           warnx("%s: considering warnings as errors",
                           __progname);
           return(0);
   }

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.14

CVSweb