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

Diff for /mandoc/Attic/mdocml.c between version 1.52 and 1.54

version 1.52, 2009/02/20 11:04:23 version 1.54, 2009/02/21 15:34:46
Line 32 
Line 32 
   
 #define MD_LINE_SZ      (256)           /* Max input line size. */  #define MD_LINE_SZ      (256)           /* Max input line size. */
   
   typedef int             (*md_print)(const struct mdoc_node *,
                                   const struct mdoc_meta *);
   
 struct  md_parse {  struct  md_parse {
         int               warn;         /* Warning flags. */          int               warn;         /* Warning flags. */
 #define MD_WARN_SYNTAX   (1 << 0)       /* Show syntax warnings. */  #define MD_WARN_SYNTAX   (1 << 0)       /* Show syntax warnings. */
Line 44  struct md_parse {
Line 47  struct md_parse {
         u_long            bufsz;        /* Input buffer size. */          u_long            bufsz;        /* Input buffer size. */
         char             *in;           /* Input file name. */          char             *in;           /* Input file name. */
         int               fdin;         /* Input file desc. */          int               fdin;         /* Input file desc. */
           md_print          fp;
 };  };
   
 extern  char             *__progname;  extern  char             *__progname;
Line 144  parse_opts(struct md_parse *p, int argc, char *argv[])
Line 148  parse_opts(struct md_parse *p, int argc, char *argv[])
         extern char     *optarg;          extern char     *optarg;
         extern int       optind;          extern int       optind;
   
           extern int termprint(const struct mdoc_node *,
                           const struct mdoc_meta *);
           extern int treeprint(const struct mdoc_node *,
                           const struct mdoc_meta *);
   
         p->in = "-";          p->in = "-";
   
         while (-1 != (c = getopt(argc, argv, "vW:")))          while (-1 != (c = getopt(argc, argv, "f:vW:")))
                 switch (c) {                  switch (c) {
                   case ('f'):
                           if (0 == strcmp(optarg, "tree")) {
                                   p->fp = treeprint;
                                   break;
                           } else if (0 == strcmp(optarg, "term")) {
                                   p->fp = termprint;
                                   break;
                           }
                           warnx("unknown filter: %s", optarg);
                           return(0);
                 case ('v'):                  case ('v'):
                         p->dbg++;                          p->dbg++;
                         break;                          break;
Line 224  buf_begin(struct md_parse *p)
Line 243  buf_begin(struct md_parse *p)
 static int  static int
 parse_leave(struct md_parse *p, int code)  parse_leave(struct md_parse *p, int code)
 {  {
         extern int termprint(const struct mdoc_node *,          md_print         fp;
                         const struct mdoc_meta *);  
   
         if (NULL == p->mdoc)          if (NULL == p->mdoc)
                 return(code);                  return(code);
Line 233  parse_leave(struct md_parse *p, int code)
Line 251  parse_leave(struct md_parse *p, int code)
         if ( ! mdoc_endparse(p->mdoc))          if ( ! mdoc_endparse(p->mdoc))
                 code = 0;                  code = 0;
   
         /* TODO */          if (code && (fp = p->fp)) {
         if (code && ! termprint(mdoc_node(p->mdoc), mdoc_meta(p->mdoc)))                  if ( ! (*fp)(mdoc_node(p->mdoc), mdoc_meta(p->mdoc)))
                 code = 0;                          code = 0;
           }
   
         mdoc_free(p->mdoc);          mdoc_free(p->mdoc);
         return(code);          return(code);
Line 360  static void
Line 379  static void
 usage(void)  usage(void)
 {  {
   
         warnx("usage: %s [-v] [-Wwarn...] [infile]", __progname);          warnx("usage: %s [-ffilter] [-v] [-Wwarn...] [infile]",
                           __progname);
 }  }
   

Legend:
Removed from v.1.52  
changed lines
  Added in v.1.54

CVSweb