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

Diff for /mandoc/Attic/makewhatis.c between version 1.13 and 1.14

version 1.13, 2011/07/01 10:17:24 version 1.14, 2011/07/01 10:46:32
Line 76  struct buf {
Line 76  struct buf {
                           const struct mdoc_meta *m                            const struct mdoc_meta *m
   
 static  void              buf_appendmdoc(struct buf *,  static  void              buf_appendmdoc(struct buf *,
                                 const struct mdoc_node *);                                  const struct mdoc_node *, int);
 static  void              buf_append(struct buf *, const char *);  static  void              buf_append(struct buf *, const char *);
 static  void              buf_appendb(struct buf *,  static  void              buf_appendb(struct buf *,
                                 const void *, size_t);                                  const void *, size_t);
Line 531  buf_append(struct buf *buf, const char *cp)
Line 531  buf_append(struct buf *buf, const char *cp)
  * This is optimised for general mdoc nodes in this context, which do   * This is optimised for general mdoc nodes in this context, which do
  * not consist of subexpressions and having a recursive call for n->next   * not consist of subexpressions and having a recursive call for n->next
  * would be wasteful.   * would be wasteful.
    * The "f" variable should be 0 unless called from pmdoc_Nd for the
    * description buffer, which does not start at the beginning of the
    * buffer.
  */   */
 static void  static void
 buf_appendmdoc(struct buf *buf, const struct mdoc_node *n)  buf_appendmdoc(struct buf *buf, const struct mdoc_node *n, int f)
 {  {
   
         for ( ; n; n = n->next) {          for ( ; n; n = n->next) {
                 if (n->child)                  if (n->child)
                         buf_appendmdoc(buf, n->child);                          buf_appendmdoc(buf, n->child, f);
                 if (MDOC_TEXT == n->type)  
                   if (MDOC_TEXT == n->type && f) {
                           f = 0;
                           buf_appendb(buf, n->string,
                                           strlen(n->string) + 1);
                   } else if (MDOC_TEXT == n->type)
                         buf_append(buf, n->string);                          buf_append(buf, n->string);
   
         }          }
 }  }
   
Line 552  pmdoc_An(MDOC_ARGS)
Line 561  pmdoc_An(MDOC_ARGS)
         if (SEC_AUTHORS != n->sec)          if (SEC_AUTHORS != n->sec)
                 return;                  return;
   
         buf_appendmdoc(buf, n->child);          buf_appendmdoc(buf, n->child, 0);
         hash_put(hash, buf, TYPE_AUTHOR);          hash_put(hash, buf, TYPE_AUTHOR);
 }  }
   
Line 610  pmdoc_Cd(MDOC_ARGS)
Line 619  pmdoc_Cd(MDOC_ARGS)
         if (SEC_SYNOPSIS != n->sec)          if (SEC_SYNOPSIS != n->sec)
                 return;                  return;
   
         buf_appendmdoc(buf, n->child);          buf_appendmdoc(buf, n->child, 0);
         hash_put(hash, buf, TYPE_CONFIG);          hash_put(hash, buf, TYPE_CONFIG);
 }  }
   
Line 743  pmdoc_Fo(MDOC_ARGS)
Line 752  pmdoc_Fo(MDOC_ARGS)
 static void  static void
 pmdoc_Nd(MDOC_ARGS)  pmdoc_Nd(MDOC_ARGS)
 {  {
         size_t           sz;  
   
         if (MDOC_BODY != n->type)          if (MDOC_BODY != n->type)
                 return;                  return;
         else if (NULL == (n = n->child))  
                 return;  
   
         /* FIXME: don't assume this. */          buf_appendmdoc(dbuf, n->child, 1);
         assert(MDOC_TEXT == n->type);          buf_appendmdoc(buf, n->child, 0);
   
         sz = strlen(n->string) + 1;  
         buf_appendb(dbuf, n->string, sz);  
         buf_appendb(buf, n->string, sz);  
   
         buf_appendmdoc(dbuf, n->next);  
         buf_appendmdoc(buf, n->next);  
   
         hash_put(hash, buf, TYPE_DESC);          hash_put(hash, buf, TYPE_DESC);
 }  }
   
Line 771  pmdoc_Pa(MDOC_ARGS)
Line 770  pmdoc_Pa(MDOC_ARGS)
         if (SEC_FILES != n->sec)          if (SEC_FILES != n->sec)
                 return;                  return;
   
         buf_appendmdoc(buf, n->child);          buf_appendmdoc(buf, n->child, 0);
         hash_put(hash, buf, TYPE_PATH);          hash_put(hash, buf, TYPE_PATH);
 }  }
   
Line 781  pmdoc_Nm(MDOC_ARGS)
Line 780  pmdoc_Nm(MDOC_ARGS)
 {  {
   
         if (SEC_NAME == n->sec) {          if (SEC_NAME == n->sec) {
                 buf_appendmdoc(buf, n->child);                  buf_appendmdoc(buf, n->child, 0);
                 hash_put(hash, buf, TYPE_NAME);                  hash_put(hash, buf, TYPE_NAME);
                 return;                  return;
         } else if (SEC_SYNOPSIS != n->sec || MDOC_HEAD != n->type)          } else if (SEC_SYNOPSIS != n->sec || MDOC_HEAD != n->type)
Line 790  pmdoc_Nm(MDOC_ARGS)
Line 789  pmdoc_Nm(MDOC_ARGS)
         if (NULL == n->child)          if (NULL == n->child)
                 buf_append(buf, m->name);                  buf_append(buf, m->name);
   
         buf_appendmdoc(buf, n->child);          buf_appendmdoc(buf, n->child, 0);
         hash_put(hash, buf, TYPE_UTILITY);          hash_put(hash, buf, TYPE_UTILITY);
 }  }
   

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

CVSweb