[BACK]Return to mandocdb.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mandoc

Diff for /src/usr.bin/mandoc/mandocdb.c between version 1.132 and 1.133

version 1.132, 2014/12/05 15:16:25 version 1.133, 2014/12/05 16:17:56
Line 155 
Line 155 
                         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 1630 
Line 1631 
         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 1674 
Line 1677 
         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.132  
changed lines
  Added in v.1.133