[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.15

version 1.13, 2011/07/01 10:17:24 version 1.15, 2011/07/01 12:02:44
Line 56 
Line 56 
 #define TYPE_DESC         0x100  #define TYPE_DESC         0x100
 #define TYPE_XREF         0x200  #define TYPE_XREF         0x200
 #define TYPE_PATH         0x400  #define TYPE_PATH         0x400
   #define TYPE_ENV          0x800
   
 /* Buffer for storing growable data. */  /* Buffer for storing growable data. */
   
Line 76  struct buf {
Line 77  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 86  static int    pman_node(MAN_ARGS);
Line 87  static int    pman_node(MAN_ARGS);
 static  void              pmdoc_node(MDOC_ARGS);  static  void              pmdoc_node(MDOC_ARGS);
 static  void              pmdoc_An(MDOC_ARGS);  static  void              pmdoc_An(MDOC_ARGS);
 static  void              pmdoc_Cd(MDOC_ARGS);  static  void              pmdoc_Cd(MDOC_ARGS);
   static  void              pmdoc_Ev(MDOC_ARGS);
 static  void              pmdoc_Fd(MDOC_ARGS);  static  void              pmdoc_Fd(MDOC_ARGS);
 static  void              pmdoc_In(MDOC_ARGS);  static  void              pmdoc_In(MDOC_ARGS);
 static  void              pmdoc_Fn(MDOC_ARGS);  static  void              pmdoc_Fn(MDOC_ARGS);
Line 122  static const pmdoc_nf   mdocs[MDOC_MAX] = {
Line 124  static const pmdoc_nf   mdocs[MDOC_MAX] = {
         NULL, /* Cm */          NULL, /* Cm */
         NULL, /* Dv */          NULL, /* Dv */
         NULL, /* Er */          NULL, /* Er */
         NULL, /* Ev */          pmdoc_Ev, /* Ev */
         NULL, /* Ex */          NULL, /* Ex */
         NULL, /* Fa */          NULL, /* Fa */
         pmdoc_Fd, /* Fd */          pmdoc_Fd, /* Fd */
Line 531  buf_append(struct buf *buf, const char *cp)
Line 533  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 563  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 621  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 754  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);
 }  }
   
 /* ARGSUSED */  /* ARGSUSED */
 static void  static void
   pmdoc_Ev(MDOC_ARGS)
   {
   
           if (SEC_ENVIRONMENT != n->sec)
                   return;
   
           buf_appendmdoc(buf, n->child, 0);
           hash_put(hash, buf, TYPE_ENV);
   }
   
   /* ARGSUSED */
   static void
 pmdoc_Pa(MDOC_ARGS)  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 794  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 803  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.15

CVSweb