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

Diff for /mandoc/Attic/mandoc-db.c between version 1.11 and 1.13

version 1.11, 2011/04/11 22:56:25 version 1.13, 2011/04/28 10:44:02
Line 48  enum type {
Line 48  enum type {
         MANDOC_FUNCTION,          MANDOC_FUNCTION,
         MANDOC_UTILITY,          MANDOC_UTILITY,
         MANDOC_INCLUDES,          MANDOC_INCLUDES,
         MANDOC_VARIABLE          MANDOC_VARIABLE,
           MANDOC_STANDARD
 };  };
   
 #define MAN_ARGS          DB *db, \  #define MAN_ARGS          DB *db, \
Line 82  static void    pmdoc_Fn(MDOC_ARGS);
Line 83  static void    pmdoc_Fn(MDOC_ARGS);
 static  void              pmdoc_Fo(MDOC_ARGS);  static  void              pmdoc_Fo(MDOC_ARGS);
 static  void              pmdoc_Nd(MDOC_ARGS);  static  void              pmdoc_Nd(MDOC_ARGS);
 static  void              pmdoc_Nm(MDOC_ARGS);  static  void              pmdoc_Nm(MDOC_ARGS);
   static  void              pmdoc_St(MDOC_ARGS);
 static  void              pmdoc_Vt(MDOC_ARGS);  static  void              pmdoc_Vt(MDOC_ARGS);
   
 typedef void            (*pmdoc_nf)(MDOC_ARGS);  typedef void            (*pmdoc_nf)(MDOC_ARGS);
Line 126  static const pmdoc_nf   mdocs[MDOC_MAX] = {
Line 128  static const pmdoc_nf   mdocs[MDOC_MAX] = {
         NULL, /* Ot */          NULL, /* Ot */
         NULL, /* Pa */          NULL, /* Pa */
         NULL, /* Rv */          NULL, /* Rv */
         NULL, /* St */          pmdoc_St, /* St */
         pmdoc_Vt, /* Va */          pmdoc_Vt, /* Va */
         pmdoc_Vt, /* Vt */          pmdoc_Vt, /* Vt */
         NULL, /* Xr */          NULL, /* Xr */
Line 569  pmdoc_Fn(MDOC_ARGS)
Line 571  pmdoc_Fn(MDOC_ARGS)
   
 /* ARGSUSED */  /* ARGSUSED */
 static void  static void
   pmdoc_St(MDOC_ARGS)
   {
           uint32_t         fl;
   
           if (SEC_STANDARDS != n->sec)
                   return;
           if (NULL == n->child || MDOC_TEXT != n->child->type)
                   return;
   
           dbt_append(key, ksz, n->child->string);
           fl = MANDOC_STANDARD;
           memcpy(val->data, &fl, 4);
   }
   
   /* ARGSUSED */
   static void
 pmdoc_Vt(MDOC_ARGS)  pmdoc_Vt(MDOC_ARGS)
 {  {
         uint32_t         fl;          uint32_t         fl;
Line 731  static int
Line 749  static int
 pman_node(MAN_ARGS)  pman_node(MAN_ARGS)
 {  {
         const struct man_node *head, *body;          const struct man_node *head, *body;
         const char      *start;          const char      *start, *sv;
         const char       nil = '\0';          const char       nil = '\0';
         size_t           sz;          size_t           sz;
         uint32_t         fl;          uint32_t         fl;
Line 760  pman_node(MAN_ARGS)
Line 778  pman_node(MAN_ARGS)
                         fl = MANDOC_NAME;                          fl = MANDOC_NAME;
                         memcpy(val->data, &fl, 4);                          memcpy(val->data, &fl, 4);
   
                         start = body->string;                          assert(body->string);
                           start = sv = body->string;
   
                         /*                          /*
                          * Go through a special heuristic dance here.                           * Go through a special heuristic dance here.
Line 771  pman_node(MAN_ARGS)
Line 790  pman_node(MAN_ARGS)
                          * the name parts here.                           * the name parts here.
                          */                           */
   
                         while (start) {                          for ( ;; ) {
                                 sz = strcspn(start, " ,");                                  sz = strcspn(start, " ,");
                                 if ('\0' == start[(int)sz])                                  if ('\0' == start[(int)sz])
                                         break;                                          break;
Line 782  pman_node(MAN_ARGS)
Line 801  pman_node(MAN_ARGS)
   
                                 dbt_put(db, dbn, key, val);                                  dbt_put(db, dbn, key, val);
   
                                 if (' ' == start[(int)sz])                                  if (' ' == start[(int)sz]) {
                                           start += (int)sz + 1;
                                         break;                                          break;
                                   }
   
                                 assert(',' == start[(int)sz]);                                  assert(',' == start[(int)sz]);
                                 start += (int)sz + 1;                                  start += (int)sz + 1;
Line 791  pman_node(MAN_ARGS)
Line 812  pman_node(MAN_ARGS)
                                         start++;                                          start++;
                         }                          }
   
                         return(1);                          if (sv == start) {
                                   dbt_init(key, ksz);
                                   dbt_append(key, ksz, start);
                                   return(1);
                           }
   
                           while (' ' == *start)
                                   start++;
   
                           if ('\\' == *start && '-' == *(start + 1))
                                   start += 2;
                           else if ('-' == *start)
                                   start++;
   
                           while (' ' == *start)
                                   start++;
   
                           dbt_appendb(rval, rsz, start, strlen(start) + 1);
                 }                  }
         }          }
   

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

CVSweb