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

Diff for /mandoc/mandocdb.c between version 1.177 and 1.178

version 1.177, 2014/12/05 15:16:54 version 1.178, 2014/12/05 16:18:14
Line 165  static int  parse_mdoc_head(struct mpage *, const stru
Line 165  static int  parse_mdoc_head(struct mpage *, const stru
                         const struct mdoc_node *);                          const struct mdoc_node *);
 static  int      parse_mdoc_Fd(struct mpage *, const struct mdoc_meta *,  static  int      parse_mdoc_Fd(struct mpage *, const struct mdoc_meta *,
                         const struct mdoc_node *);                          const struct mdoc_node *);
   static  void     parse_mdoc_fname(struct mpage *, const struct mdoc_node *);
 static  int      parse_mdoc_Fn(struct mpage *, const struct mdoc_meta *,  static  int      parse_mdoc_Fn(struct mpage *, const struct mdoc_meta *,
                         const struct mdoc_node *);                          const struct mdoc_node *);
 static  int      parse_mdoc_Fo(struct mpage *, const struct mdoc_meta *,  static  int      parse_mdoc_Fo(struct mpage *, const struct mdoc_meta *,
Line 1640  parse_mdoc_Fd(struct mpage *mpage, const struct mdoc_m
Line 1641  parse_mdoc_Fd(struct mpage *mpage, const struct mdoc_m
         return(0);          return(0);
 }  }
   
 static int  static void
 parse_mdoc_Fn(struct mpage *mpage, const struct mdoc_meta *meta,  parse_mdoc_fname(struct mpage *mpage, const struct mdoc_node *n)
         const struct mdoc_node *n)  
 {  {
         char    *cp;          char    *cp;
           size_t   sz;
   
         if (NULL == (n = n->child) || MDOC_TEXT != n->type)          if (n->type != MDOC_TEXT)
                 return(0);                  return;
   
         /*          /* Skip function pointer punctuation. */
          * Parse: .Fn "struct type *name" "char *arg".  
          * First strip away pointer symbol.  
          * Then store the function name, then type.  
          * Finally, store the arguments.  
          */  
   
         if (NULL == (cp = strrchr(n->string, ' ')))          cp = n->string;
                 cp = n->string;          while (*cp == '(' || *cp == '*')
   
         while ('*' == *cp)  
                 cp++;                  cp++;
           sz = strcspn(cp, "()");
   
         putkey(mpage, cp, TYPE_Fn);          putkeys(mpage, cp, sz, TYPE_Fn);
         if (n->sec == SEC_SYNOPSIS)          if (n->sec == SEC_SYNOPSIS)
                 putkey(mpage, cp, NAME_SYN);                  putkeys(mpage, cp, sz, NAME_SYN);
   }
   
         if (n->string < cp)  static int
                 putkeys(mpage, n->string, cp - n->string, TYPE_Ft);  parse_mdoc_Fn(struct mpage *mpage, const struct mdoc_meta *meta,
           const struct mdoc_node *n)
   {
   
         for (n = n->next; NULL != n; n = n->next)          if (n->child == NULL)
                 if (MDOC_TEXT == n->type)                  return(0);
   
           parse_mdoc_fname(mpage, n->child);
   
           for (n = n->child->next; n != NULL; n = n->next)
                   if (n->type == MDOC_TEXT)
                         putkey(mpage, n->string, TYPE_Fa);                          putkey(mpage, n->string, TYPE_Fa);
   
         return(0);          return(0);
Line 1684  parse_mdoc_Fo(struct mpage *mpage, const struct mdoc_m
Line 1687  parse_mdoc_Fo(struct mpage *mpage, const struct mdoc_m
         if (n->type != MDOC_HEAD)          if (n->type != MDOC_HEAD)
                 return(1);                  return(1);
   
         putmdockey(mpage, n->child, TYPE_Fn);          if (n->child != NULL)
         if (n->sec == SEC_SYNOPSIS)                  parse_mdoc_fname(mpage, n->child);
                 putmdockey(mpage, n->child, NAME_SYN);  
         return(0);          return(0);
 }  }
   

Legend:
Removed from v.1.177  
changed lines
  Added in v.1.178

CVSweb