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

Diff for /mandoc/Attic/mdocml.c between version 1.47 and 1.48

version 1.47, 2009/01/16 15:58:50 version 1.48, 2009/01/17 14:04:25
Line 31 
Line 31 
 #include "mdoc.h"  #include "mdoc.h"
   
 #define xfprintf        (void)fprintf  #define xfprintf        (void)fprintf
 #define xprintf         (void)printf  
 #define xvfprintf       (void)fvprintf  
   
 #define MD_LINE_SZ      (256)           /* Max input line size. */  #define MD_LINE_SZ      (256)           /* Max input line size. */
   
   /*
    * Put this into a mdoctrans.h, which has:
    *
    * struct mdoc_trans; (opaque)
    *
    * struct mdoc_trans *mdoc_trans_alloc(const char *filter);
    *
    * mdoc_trans_free(struct mdoc_trans *);
    *
    * int mdoc_trans_getopt(struct mdoc_trans *, char *);
    *
    * int mdoc_trans_print(struct mdoc_trans *, const struct mdoc_node *);
    */
   
   typedef int             (*mdocprint)(const struct mdoc_node *);
   
   
 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 49  struct md_parse {
Line 63  struct md_parse {
         u_long            bufsz;        /* Input buffer size. */          u_long            bufsz;        /* Input buffer size. */
         char             *name;         /* Input file name. */          char             *name;         /* Input file name. */
         int               fd;           /* Input file desc. */          int               fd;           /* Input file desc. */
         int             (*fp)(const struct mdoc_node *, const char *);          mdocprint         print;        /* Node-print function. */
 };  };
   
 extern  char             *__progname;  extern  char             *__progname;
   
 extern  int  extern  int               treeprint(const struct mdoc_node *);
   
 static  void              usage(void);  static  void              usage(void);
   
Line 79  main(int argc, char *argv[])
Line 93  main(int argc, char *argv[])
 {  {
         int              c;          int              c;
         struct md_parse  parser;          struct md_parse  parser;
         char            *opts, *v, *filter, *output;          char            *opts, *v, *filter;
 #define ALL              0  #define ALL              0
 #define COMPAT           1  #define COMPAT           1
 #define SYNTAX           2  #define SYNTAX           2
Line 90  main(int argc, char *argv[])
Line 104  main(int argc, char *argv[])
         extern char     *optarg;          extern char     *optarg;
         extern int       optind;          extern int       optind;
   
         output = filter = NULL;          filter = NULL;
   
         (void)memset(&parser, 0, sizeof(struct md_parse));          (void)memset(&parser, 0, sizeof(struct md_parse));
   
         while (-1 != (c = getopt(argc, argv, "f:vW:o:")))          while (-1 != (c = getopt(argc, argv, "f:vW:")))
                 switch (c) {                  switch (c) {
                 case ('f'):                  case ('f'):
                         filter = optarg;                          filter = optarg;
                         break;                          break;
                 case ('o'):  
                         output = optarg;  
                         break;  
                 case ('v'):                  case ('v'):
                         parser.dbg++;                          parser.dbg++;
                         break;                          break;
Line 138  main(int argc, char *argv[])
Line 149  main(int argc, char *argv[])
         if (1 == argc)          if (1 == argc)
                 parser.name = *argv++;                  parser.name = *argv++;
   
           if (filter) {
                   if (0 == strcmp(filter, "tree"))
                           parser.print = treeprint;
           }
   
         if ( ! io_begin(&parser))          if ( ! io_begin(&parser))
                 return(EXIT_FAILURE);                  return(EXIT_FAILURE);
   
Line 216  parse_leave(struct md_parse *p, int code)
Line 232  parse_leave(struct md_parse *p, int code)
   
         if ( ! mdoc_endparse(p->mdoc))          if ( ! mdoc_endparse(p->mdoc))
                 code = 0;                  code = 0;
         if (p->fp && (n = mdoc_result(p->mdoc)))          if (p->print && (n = mdoc_result(p->mdoc)))
                 (*p->fp)(n, NULL);                  (*p->print)(n);
   
         mdoc_free(p->mdoc);          mdoc_free(p->mdoc);
   
Line 336  usage(void)
Line 352  usage(void)
 {  {
   
         xfprintf(stderr, "usage: %s [-v] [-Wwarn...] [-ffilter] "          xfprintf(stderr, "usage: %s [-v] [-Wwarn...] [-ffilter] "
                         "[-o outfile] [infile]\n", __progname);                          "[infile]\n", __progname);
 }  }
   

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.48

CVSweb