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

Diff for /mandoc/mandocdb.c between version 1.171 and 1.172

version 1.171, 2014/11/27 01:58:21 version 1.172, 2014/12/04 17:36:00
Line 128  enum stmt {
Line 128  enum stmt {
         STMT__MAX          STMT__MAX
 };  };
   
 typedef int (*mdoc_fp)(struct mpage *, const struct mdoc_node *);  typedef int (*mdoc_fp)(struct mpage *, const struct mdoc_meta *,
                           const struct mdoc_node *);
   
 struct  mdoc_handler {  struct  mdoc_handler {
         mdoc_fp          fp; /* optional handler */          mdoc_fp          fp; /* optional handler */
Line 154  static void  mpages_merge(struct mchars *, struct mpar
Line 155  static void  mpages_merge(struct mchars *, struct mpar
 static  void     names_check(void);  static  void     names_check(void);
 static  void     parse_cat(struct mpage *, int);  static  void     parse_cat(struct mpage *, int);
 static  void     parse_man(struct mpage *, const struct man_node *);  static  void     parse_man(struct mpage *, const struct man_node *);
 static  void     parse_mdoc(struct mpage *, const struct mdoc_node *);  static  void     parse_mdoc(struct mpage *, const struct mdoc_meta *,
 static  int      parse_mdoc_body(struct mpage *, const struct mdoc_node *);                          const struct mdoc_node *);
 static  int      parse_mdoc_head(struct mpage *, const struct mdoc_node *);  static  int      parse_mdoc_body(struct mpage *, const struct mdoc_meta *,
 static  int      parse_mdoc_Fd(struct mpage *, const struct mdoc_node *);                          const struct mdoc_node *);
 static  int      parse_mdoc_Fn(struct mpage *, const struct mdoc_node *);  static  int      parse_mdoc_head(struct mpage *, const struct mdoc_meta *,
 static  int      parse_mdoc_Nd(struct mpage *, const struct mdoc_node *);                          const struct mdoc_node *);
 static  int      parse_mdoc_Nm(struct mpage *, const struct mdoc_node *);  static  int      parse_mdoc_Fd(struct mpage *, const struct mdoc_meta *,
 static  int      parse_mdoc_Sh(struct mpage *, const struct mdoc_node *);                          const struct mdoc_node *);
 static  int      parse_mdoc_Xr(struct mpage *, const struct mdoc_node *);  static  int      parse_mdoc_Fn(struct mpage *, const struct mdoc_meta *,
                           const struct mdoc_node *);
   static  int      parse_mdoc_Nd(struct mpage *, const struct mdoc_meta *,
                           const struct mdoc_node *);
   static  int      parse_mdoc_Nm(struct mpage *, const struct mdoc_meta *,
                           const struct mdoc_node *);
   static  int      parse_mdoc_Sh(struct mpage *, const struct mdoc_meta *,
                           const struct mdoc_node *);
   static  int      parse_mdoc_Xr(struct mpage *, const struct mdoc_meta *,
                           const struct mdoc_node *);
 static  void     putkey(const struct mpage *, char *, uint64_t);  static  void     putkey(const struct mpage *, char *, uint64_t);
 static  void     putkeys(const struct mpage *,  static  void     putkeys(const struct mpage *,
                         const char *, size_t, uint64_t);                          const char *, size_t, uint64_t);
Line 1217  mpages_merge(struct mchars *mc, struct mparse *mp)
Line 1227  mpages_merge(struct mchars *mc, struct mparse *mp)
                 if (NULL != mdoc) {                  if (NULL != mdoc) {
                         if (NULL != (cp = mdoc_meta(mdoc)->name))                          if (NULL != (cp = mdoc_meta(mdoc)->name))
                                 putkey(mpage, cp, NAME_HEAD);                                  putkey(mpage, cp, NAME_HEAD);
                         parse_mdoc(mpage, mdoc_node(mdoc));                          parse_mdoc(mpage, mdoc_meta(mdoc), mdoc_node(mdoc));
                 } else if (NULL != man)                  } else if (NULL != man)
                         parse_man(mpage, man_node(man));                          parse_man(mpage, man_node(man));
                 else                  else
Line 1542  parse_man(struct mpage *mpage, const struct man_node *
Line 1552  parse_man(struct mpage *mpage, const struct man_node *
 }  }
   
 static void  static void
 parse_mdoc(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
   
         assert(NULL != n);          assert(NULL != n);
Line 1558  parse_mdoc(struct mpage *mpage, const struct mdoc_node
Line 1569  parse_mdoc(struct mpage *mpage, const struct mdoc_node
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case MDOC_TAIL:                  case MDOC_TAIL:
                         if (NULL != mdocs[n->tok].fp)                          if (NULL != mdocs[n->tok].fp)
                                if (0 == (*mdocs[n->tok].fp)(mpage, n))                                 if (0 == (*mdocs[n->tok].fp)(mpage, meta, n))
                                        break;                                         break;
                         if (mdocs[n->tok].mask)                          if (mdocs[n->tok].mask)
                                 putmdockey(mpage, n->child,                                  putmdockey(mpage, n->child,
Line 1569  parse_mdoc(struct mpage *mpage, const struct mdoc_node
Line 1580  parse_mdoc(struct mpage *mpage, const struct mdoc_node
                         continue;                          continue;
                 }                  }
                 if (NULL != n->child)                  if (NULL != n->child)
                         parse_mdoc(mpage, n);                          parse_mdoc(mpage, meta, n);
         }          }
 }  }
   
 static int  static int
 parse_mdoc_Fd(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_Fd(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
         const char      *start, *end;          const char      *start, *end;
         size_t           sz;          size_t           sz;
Line 1617  parse_mdoc_Fd(struct mpage *mpage, const struct mdoc_n
Line 1629  parse_mdoc_Fd(struct mpage *mpage, const struct mdoc_n
 }  }
   
 static int  static int
 parse_mdoc_Fn(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_Fn(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
         char    *cp;          char    *cp;
   
Line 1650  parse_mdoc_Fn(struct mpage *mpage, const struct mdoc_n
Line 1663  parse_mdoc_Fn(struct mpage *mpage, const struct mdoc_n
 }  }
   
 static int  static int
 parse_mdoc_Xr(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_Xr(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
         char    *cp;          char    *cp;
   
Line 1669  parse_mdoc_Xr(struct mpage *mpage, const struct mdoc_n
Line 1683  parse_mdoc_Xr(struct mpage *mpage, const struct mdoc_n
 }  }
   
 static int  static int
 parse_mdoc_Nd(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_Nd(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
   
         if (MDOC_BODY == n->type)          if (MDOC_BODY == n->type)
Line 1678  parse_mdoc_Nd(struct mpage *mpage, const struct mdoc_n
Line 1693  parse_mdoc_Nd(struct mpage *mpage, const struct mdoc_n
 }  }
   
 static int  static int
 parse_mdoc_Nm(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_Nm(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
   
         if (SEC_NAME == n->sec)          if (SEC_NAME == n->sec)
                 putmdockey(mpage, n->child, NAME_TITLE);                  putmdockey(mpage, n->child, NAME_TITLE);
         else if (SEC_SYNOPSIS == n->sec && MDOC_HEAD == n->type)          else if (SEC_SYNOPSIS == n->sec && MDOC_HEAD == n->type) {
                 putmdockey(mpage, n->child, NAME_SYN);                  if (n->child == NULL)
                           putkey(mpage, meta->name, NAME_SYN);
                   else
                           putmdockey(mpage, n->child, NAME_SYN);
           }
         return(0);          return(0);
 }  }
   
 static int  static int
 parse_mdoc_Sh(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_Sh(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
   
         return(SEC_CUSTOM == n->sec && MDOC_HEAD == n->type);          return(SEC_CUSTOM == n->sec && MDOC_HEAD == n->type);
 }  }
   
 static int  static int
 parse_mdoc_head(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_head(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
   
         return(MDOC_HEAD == n->type);          return(MDOC_HEAD == n->type);
 }  }
   
 static int  static int
 parse_mdoc_body(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_body(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
 {  {
   
         return(MDOC_BODY == n->type);          return(MDOC_BODY == n->type);

Legend:
Removed from v.1.171  
changed lines
  Added in v.1.172

CVSweb