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

Diff for /mandoc/mandocdb.c between version 1.133 and 1.136

version 1.133, 2014/04/10 02:46:21 version 1.136, 2014/04/16 18:59:43
Line 55  extern const char *const mansearch_keynames[];
Line 55  extern const char *const mansearch_keynames[];
   
 #define SQL_EXEC(_v) \  #define SQL_EXEC(_v) \
         if (SQLITE_OK != sqlite3_exec(db, (_v), NULL, NULL, NULL)) \          if (SQLITE_OK != sqlite3_exec(db, (_v), NULL, NULL, NULL)) \
                 fprintf(stderr, "%s\n", sqlite3_errmsg(db))                  say("", "%s: %s", (_v), sqlite3_errmsg(db))
 #define SQL_BIND_TEXT(_s, _i, _v) \  #define SQL_BIND_TEXT(_s, _i, _v) \
         if (SQLITE_OK != sqlite3_bind_text \          if (SQLITE_OK != sqlite3_bind_text \
                 ((_s), (_i)++, (_v), -1, SQLITE_STATIC)) \                  ((_s), (_i)++, (_v), -1, SQLITE_STATIC)) \
                 fprintf(stderr, "%s\n", sqlite3_errmsg(db))                  say(mlink->file, "%s", sqlite3_errmsg(db))
 #define SQL_BIND_INT(_s, _i, _v) \  #define SQL_BIND_INT(_s, _i, _v) \
         if (SQLITE_OK != sqlite3_bind_int \          if (SQLITE_OK != sqlite3_bind_int \
                 ((_s), (_i)++, (_v))) \                  ((_s), (_i)++, (_v))) \
                 fprintf(stderr, "%s\n", sqlite3_errmsg(db))                  say(mlink->file, "%s", sqlite3_errmsg(db))
 #define SQL_BIND_INT64(_s, _i, _v) \  #define SQL_BIND_INT64(_s, _i, _v) \
         if (SQLITE_OK != sqlite3_bind_int64 \          if (SQLITE_OK != sqlite3_bind_int64 \
                 ((_s), (_i)++, (_v))) \                  ((_s), (_i)++, (_v))) \
                 fprintf(stderr, "%s\n", sqlite3_errmsg(db))                  say(mlink->file, "%s", sqlite3_errmsg(db))
 #define SQL_STEP(_s) \  #define SQL_STEP(_s) \
         if (SQLITE_DONE != sqlite3_step((_s))) \          if (SQLITE_DONE != sqlite3_step((_s))) \
                 fprintf(stderr, "%s\n", sqlite3_errmsg(db))                  say(mlink->file, "%s", sqlite3_errmsg(db))
   
 enum    op {  enum    op {
         OP_DEFAULT = 0, /* new dbs from dir list or default config */          OP_DEFAULT = 0, /* new dbs from dir list or default config */
Line 1154  mpages_merge(struct mchars *mc, struct mparse *mp)
Line 1154  mpages_merge(struct mchars *mc, struct mparse *mp)
                         putkey(mpage, mlink->name, NAME_FILE);                          putkey(mpage, mlink->name, NAME_FILE);
                 }                  }
   
                   assert(NULL == mpage->desc);
                 if (NULL != mdoc) {                  if (NULL != mdoc) {
                         if (NULL != (cp = mdoc_meta(mdoc)->name))                          if (NULL != (cp = mdoc_meta(mdoc)->name))
                                 putkey(mpage, cp, NAME_HEAD);                                  putkey(mpage, cp, NAME_HEAD);
                         assert(NULL == mpage->desc);  
                         parse_mdoc(mpage, mdoc_node(mdoc));                          parse_mdoc(mpage, mdoc_node(mdoc));
                         if (NULL == mpage->desc)  
                                 mpage->desc = mandoc_strdup(  
                                     mpage->mlinks->name);  
                 } else if (NULL != man)                  } else if (NULL != man)
                         parse_man(mpage, man_node(man));                          parse_man(mpage, man_node(man));
                 else                  else
                         parse_cat(mpage, fd[0]);                          parse_cat(mpage, fd[0]);
                   if (NULL == mpage->desc)
                           mpage->desc = mandoc_strdup(mpage->mlinks->name);
   
                 if (warnings && !use_all)                  if (warnings && !use_all)
                         for (mlink = mpage->mlinks; mlink;                          for (mlink = mpage->mlinks; mlink;
Line 1205  names_check(void)
Line 1204  names_check(void)
 {  {
         sqlite3_stmt    *stmt;          sqlite3_stmt    *stmt;
         const char      *name, *sec, *arch, *key;          const char      *name, *sec, *arch, *key;
         size_t           i;  
         int              irc;          int              irc;
   
         sqlite3_prepare_v2(db,          sqlite3_prepare_v2(db,
Line 1221  names_check(void)
Line 1219  names_check(void)
           ") USING (pageid);",            ") USING (pageid);",
           -1, &stmt, NULL);            -1, &stmt, NULL);
   
         i = 1;          if (SQLITE_OK != sqlite3_bind_int64(stmt, 1, NAME_TITLE))
         SQL_BIND_INT64(stmt, i, NAME_TITLE);                  say("", "%s", sqlite3_errmsg(db));
   
         while (SQLITE_ROW == (irc = sqlite3_step(stmt))) {          while (SQLITE_ROW == (irc = sqlite3_step(stmt))) {
                 name = sqlite3_column_text(stmt, 0);                  name = sqlite3_column_text(stmt, 0);
Line 1303  parse_cat(struct mpage *mpage, int fd)
Line 1301  parse_cat(struct mpage *mpage, int fd)
                 if (warnings)                  if (warnings)
                         say(mpage->mlinks->file,                          say(mpage->mlinks->file,
                             "Cannot find NAME section");                              "Cannot find NAME section");
                 assert(NULL == mpage->desc);  
                 mpage->desc = mandoc_strdup(mpage->mlinks->name);  
                 fclose(stream);                  fclose(stream);
                 free(title);                  free(title);
                 return;                  return;
Line 1343  parse_cat(struct mpage *mpage, int fd)
Line 1339  parse_cat(struct mpage *mpage, int fd)
                 plen -= 2;                  plen -= 2;
         }          }
   
         assert(NULL == mpage->desc);  
         mpage->desc = mandoc_strdup(p);          mpage->desc = mandoc_strdup(p);
         fclose(stream);          fclose(stream);
         free(title);          free(title);
Line 1483  parse_man(struct mpage *mpage, const struct man_node *
Line 1478  parse_man(struct mpage *mpage, const struct man_node *
                         while (' ' == *start)                          while (' ' == *start)
                                 start++;                                  start++;
   
                         assert(NULL == mpage->desc);  
                         mpage->desc = mandoc_strdup(start);                          mpage->desc = mandoc_strdup(start);
                         free(title);                          free(title);
                         return;                          return;
Line 1957  dbadd(struct mpage *mpage, struct mchars *mc)
Line 1951  dbadd(struct mpage *mpage, struct mchars *mc)
                 dbadd_mlink(mlink);                  dbadd_mlink(mlink);
                 mlink = mlink->next;                  mlink = mlink->next;
         }          }
           mlink = mpage->mlinks;
   
         for (key = ohash_first(&names, &slot); NULL != key;          for (key = ohash_first(&names, &slot); NULL != key;
              key = ohash_next(&names, &slot)) {               key = ohash_next(&names, &slot)) {
Line 2187  create_tables:
Line 2182  create_tables:
               " \"pageid\" INTEGER NOT NULL REFERENCES mpages(id) "                " \"pageid\" INTEGER NOT NULL REFERENCES mpages(id) "
                 "ON DELETE CASCADE\n"                  "ON DELETE CASCADE\n"
               ");\n"                ");\n"
                 "CREATE INDEX mlinks_pageid_idx ON mlinks (pageid);\n"
               "\n"                "\n"
               "CREATE TABLE \"names\" (\n"                "CREATE TABLE \"names\" (\n"
               " \"bits\" INTEGER NOT NULL,\n"                " \"bits\" INTEGER NOT NULL,\n"
Line 2200  create_tables:
Line 2196  create_tables:
               " \"key\" TEXT NOT NULL,\n"                " \"key\" TEXT NOT NULL,\n"
               " \"pageid\" INTEGER NOT NULL REFERENCES mpages(id) "                " \"pageid\" INTEGER NOT NULL REFERENCES mpages(id) "
                 "ON DELETE CASCADE\n"                  "ON DELETE CASCADE\n"
               ");\n";                ");\n"
                 "CREATE INDEX keys_pageid_idx ON keys (pageid);\n";
   
         if (SQLITE_OK != sqlite3_exec(db, sql, NULL, NULL, NULL)) {          if (SQLITE_OK != sqlite3_exec(db, sql, NULL, NULL, NULL)) {
                 exitcode = (int)MANDOCLEVEL_SYSERR;                  exitcode = (int)MANDOCLEVEL_SYSERR;

Legend:
Removed from v.1.133  
changed lines
  Added in v.1.136

CVSweb