[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.128 and 1.129

version 1.128, 2014/12/04 18:31:04 version 1.129, 2014/12/04 20:13:13
Line 94 
Line 94 
         char            *desc;    /* description from file content */          char            *desc;    /* description from file content */
         struct mlink    *mlinks;  /* singly linked list */          struct mlink    *mlinks;  /* singly linked list */
         int              form;    /* format from file content */          int              form;    /* format from file content */
           int              name_head_done;
 };  };
   
 struct  mlink {  struct  mlink {
Line 144 
Line 145 
 static  void     mpages_merge(struct mchars *, struct mparse *);  static  void     mpages_merge(struct mchars *, struct mparse *);
 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_meta *,
                           const struct man_node *);
 static  void     parse_mdoc(struct mpage *, const struct mdoc_meta *,  static  void     parse_mdoc(struct mpage *, const struct mdoc_meta *,
                         const struct mdoc_node *);                          const struct mdoc_node *);
 static  int      parse_mdoc_body(struct mpage *, const struct mdoc_meta *,  static  int      parse_mdoc_body(struct mpage *, const struct mdoc_meta *,
Line 1215 
Line 1217 
                         putkey(mpage, mlink->name, NAME_FILE);                          putkey(mpage, mlink->name, NAME_FILE);
                 }                  }
   
                 assert(NULL == mpage->desc);                  assert(mpage->desc == NULL);
                 if (NULL != mdoc) {                  if (mdoc != NULL)
                         if (NULL != (cp = mdoc_meta(mdoc)->name))  
                                 putkey(mpage, cp, NAME_HEAD);  
                         parse_mdoc(mpage, mdoc_meta(mdoc), mdoc_node(mdoc));                          parse_mdoc(mpage, mdoc_meta(mdoc), mdoc_node(mdoc));
                 } else if (NULL != man)                  else if (man != NULL)
                         parse_man(mpage, man_node(man));                          parse_man(mpage, man_meta(man), man_node(man));
                 else                  else
                         parse_cat(mpage, fd);                          parse_cat(mpage, fd);
                 if (NULL == mpage->desc)                  if (mpage->desc == NULL)
                         mpage->desc = mandoc_strdup(mpage->mlinks->name);                          mpage->desc = mandoc_strdup(mpage->mlinks->name);
   
                 if (warnings && !use_all)                  if (warnings && !use_all)
Line 1429 
Line 1429 
 }  }
   
 static void  static void
 parse_man(struct mpage *mpage, const struct man_node *n)  parse_man(struct mpage *mpage, const struct man_meta *meta,
           const struct man_node *n)
 {  {
         const struct man_node *head, *body;          const struct man_node *head, *body;
         char            *start, *title;          char            *start, *title;
Line 1495 
Line 1496 
                                         break;                                          break;
   
                                 putkey(mpage, start, NAME_TITLE);                                  putkey(mpage, start, NAME_TITLE);
                                   if ( ! (mpage->name_head_done ||
                                       strcasecmp(start, meta->title))) {
                                           putkey(mpage, start, NAME_HEAD);
                                           mpage->name_head_done = 1;
                                   }
   
                                 if (' ' == byte) {                                  if (' ' == byte) {
                                         start += sz + 1;                                          start += sz + 1;
Line 1509 
Line 1515 
   
                         if (start == title) {                          if (start == title) {
                                 putkey(mpage, start, NAME_TITLE);                                  putkey(mpage, start, NAME_TITLE);
                                   if ( ! (mpage->name_head_done ||
                                       strcasecmp(start, meta->title))) {
                                           putkey(mpage, start, NAME_HEAD);
                                           mpage->name_head_done = 1;
                                   }
                                 free(title);                                  free(title);
                                 return;                                  return;
                         }                          }
Line 1539 
Line 1550 
         for (n = n->child; n; n = n->next) {          for (n = n->child; n; n = n->next) {
                 if (NULL != mpage->desc)                  if (NULL != mpage->desc)
                         break;                          break;
                 parse_man(mpage, n);                  parse_man(mpage, meta, n);
         }          }
 }  }
   
Line 1709 
Line 1720 
                         putkey(mpage, meta->name, NAME_SYN);                          putkey(mpage, meta->name, NAME_SYN);
                 else                  else
                         putmdockey(mpage, n->child, NAME_SYN);                          putmdockey(mpage, n->child, NAME_SYN);
           }
           if ( ! (mpage->name_head_done ||
               n->child == NULL || n->child->string == NULL ||
               strcasecmp(n->child->string, meta->title))) {
                   putkey(mpage, n->child->string, NAME_HEAD);
                   mpage->name_head_done = 1;
         }          }
         return(0);          return(0);
 }  }

Legend:
Removed from v.1.128  
changed lines
  Added in v.1.129