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

Diff for /mandoc/mandocdb.c between version 1.126 and 1.129

version 1.126, 2014/04/03 16:27:28 version 1.129, 2014/04/04 15:55:19
Line 224  static const struct mdoc_handler mdocs[MDOC_MAX] = {
Line 224  static const struct mdoc_handler mdocs[MDOC_MAX] = {
         { NULL, TYPE_In },  /* In */          { NULL, TYPE_In },  /* In */
         { NULL, TYPE_Li },  /* Li */          { NULL, TYPE_Li },  /* Li */
         { parse_mdoc_Nd, TYPE_Nd },  /* Nd */          { parse_mdoc_Nd, TYPE_Nd },  /* Nd */
         { parse_mdoc_Nm, TYPE_Nm },  /* Nm */          { parse_mdoc_Nm, 0 },  /* Nm */
         { NULL, 0 },  /* Op */          { NULL, 0 },  /* Op */
         { NULL, 0 },  /* Ot */          { NULL, 0 },  /* Ot */
         { NULL, TYPE_Pa },  /* Pa */          { NULL, TYPE_Pa },  /* Pa */
Line 462  main(int argc, char *argv[])
Line 462  main(int argc, char *argv[])
                 } else                  } else
                         manpath_parse(&dirs, path_arg, NULL, NULL);                          manpath_parse(&dirs, path_arg, NULL, NULL);
   
                   if (0 == dirs.sz) {
                           exitcode = (int)MANDOCLEVEL_BADARG;
                           say("", "Empty manpath");
                   }
   
                 /*                  /*
                  * First scan the tree rooted at a base directory, then                   * First scan the tree rooted at a base directory, then
                  * build a new database and finally move it into place.                   * build a new database and finally move it into place.
Line 1392  parse_man(struct mpage *mpage, const struct man_node *
Line 1397  parse_man(struct mpage *mpage, const struct man_node *
                                     ('\\' == start[0] && '-' == start[1]))                                      ('\\' == start[0] && '-' == start[1]))
                                         break;                                          break;
   
                                 putkey(mpage, start, TYPE_Nm);                                  putkey(mpage, start, TYPE_NAME | TYPE_Nm);
   
                                 if (' ' == byte) {                                  if (' ' == byte) {
                                         start += sz + 1;                                          start += sz + 1;
Line 1406  parse_man(struct mpage *mpage, const struct man_node *
Line 1411  parse_man(struct mpage *mpage, const struct man_node *
                         }                          }
   
                         if (start == title) {                          if (start == title) {
                                 putkey(mpage, start, TYPE_Nm);                                  putkey(mpage, start, TYPE_NAME | TYPE_Nm);
                                 free(title);                                  free(title);
                                 return;                                  return;
                         }                          }
Line 1583  static int
Line 1588  static int
 parse_mdoc_Nm(struct mpage *mpage, const struct mdoc_node *n)  parse_mdoc_Nm(struct mpage *mpage, const struct mdoc_node *n)
 {  {
   
         return(SEC_NAME == n->sec ||          if (SEC_NAME == n->sec)
             (SEC_SYNOPSIS == n->sec && MDOC_HEAD == n->type));                  putmdockey(mpage, n->child, TYPE_NAME | TYPE_Nm);
           else if (SEC_SYNOPSIS == n->sec && MDOC_HEAD == n->type)
                   putmdockey(mpage, n->child, TYPE_Nm);
           return(0);
 }  }
   
 static int  static int
Line 1853  dbadd(struct mpage *mpage, struct mchars *mc)
Line 1861  dbadd(struct mpage *mpage, struct mchars *mc)
         size_t           i;          size_t           i;
         unsigned int     slot;          unsigned int     slot;
   
         if (debug)          mlink = mpage->mlinks;
                 say(mpage->mlinks->file, "Adding to database");  
   
         if (nodb)          if (nodb) {
                   while (NULL != mlink) {
                           fputs(mlink->name, stdout);
                           if (NULL == mlink->next ||
                               strcmp(mlink->dsec, mlink->next->dsec) ||
                               strcmp(mlink->fsec, mlink->next->fsec) ||
                               strcmp(mlink->arch, mlink->next->arch)) {
                                   putchar('(');
                                   if ('\0' == *mlink->dsec)
                                           fputs(mlink->fsec, stdout);
                                   else
                                           fputs(mlink->dsec, stdout);
                                   if ('\0' != *mlink->arch)
                                           printf("/%s", mlink->arch);
                                   putchar(')');
                           }
                           mlink = mlink->next;
                           if (NULL != mlink)
                                   fputs(", ", stdout);
                   }
                   for (key = ohash_first(&strings, &slot); NULL != key;
                        key = ohash_next(&strings, &slot)) {
                           if (TYPE_Nd & key->mask) {
                                   if (NULL == key->rendered)
                                           render_key(mc, key);
                                   printf(" - %s", key->rendered);
                                   break;
                           }
                   }
                   putchar('\n');
                 return;                  return;
           }
   
           if (debug)
                   say(mlink->file, "Adding to database");
   
         i = 1;          i = 1;
         SQL_BIND_INT(stmts[STMT_INSERT_PAGE], i, FORM_SRC == mpage->form);          SQL_BIND_INT(stmts[STMT_INSERT_PAGE], i, FORM_SRC == mpage->form);
         SQL_STEP(stmts[STMT_INSERT_PAGE]);          SQL_STEP(stmts[STMT_INSERT_PAGE]);
         mpage->recno = sqlite3_last_insert_rowid(db);          mpage->recno = sqlite3_last_insert_rowid(db);
         sqlite3_reset(stmts[STMT_INSERT_PAGE]);          sqlite3_reset(stmts[STMT_INSERT_PAGE]);
   
         for (mlink = mpage->mlinks; mlink; mlink = mlink->next)          while (NULL != mlink) {
                 dbadd_mlink(mlink);                  dbadd_mlink(mlink);
                   mlink = mlink->next;
           }
   
         for (key = ohash_first(&strings, &slot); NULL != key;          for (key = ohash_first(&strings, &slot); NULL != key;
              key = ohash_next(&strings, &slot)) {               key = ohash_next(&strings, &slot)) {

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

CVSweb