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

Diff for /mandoc/mandocdb.c between version 1.143 and 1.147

version 1.143, 2014/04/23 19:09:16 version 1.147, 2014/05/07 15:10:36
Line 471  main(int argc, char *argv[])
Line 471  main(int argc, char *argv[])
                  * manpath_parse() wants to do it.                   * manpath_parse() wants to do it.
                  */                   */
                 if (argc > 0) {                  if (argc > 0) {
                         dirs.paths = mandoc_calloc(argc,                          dirs.paths = mandoc_reallocarray(NULL,
                             sizeof(char *));                              argc, sizeof(char *));
                         dirs.sz = (size_t)argc;                          dirs.sz = (size_t)argc;
                         for (i = 0; i < argc; i++)                          for (i = 0; i < argc; i++)
                                 dirs.paths[i] = mandoc_strdup(argv[i]);                                  dirs.paths[i] = mandoc_strdup(argv[i]);
Line 512  main(int argc, char *argv[])
Line 512  main(int argc, char *argv[])
                                 goto out;                                  goto out;
   
                         mpages_merge(mc, mp);                          mpages_merge(mc, mp);
                         if (warnings &&                          if (warnings && !nodb &&
                             ! (MPARSE_QUICK & mparse_options))                              ! (MPARSE_QUICK & mparse_options))
                                 names_check();                                  names_check();
                         dbclose(0);                          dbclose(0);
Line 1784  putkeys(const struct mpage *mpage,
Line 1784  putkeys(const struct mpage *mpage,
                 s->mask |= v;                  s->mask |= v;
                 return;                  return;
         } else if (NULL == s) {          } else if (NULL == s) {
                 s = mandoc_calloc(sizeof(struct str) + sz + 1, 1);                  s = mandoc_calloc(1, sizeof(struct str) + sz + 1);
                 memcpy(s->key, cp, sz);                  memcpy(s->key, cp, sz);
                 ohash_insert(htab, slot, s);                  ohash_insert(htab, slot, s);
         }          }
Line 1996  dbadd(struct mpage *mpage, struct mchars *mc)
Line 1996  dbadd(struct mpage *mpage, struct mchars *mc)
         mlink = mpage->mlinks;          mlink = mpage->mlinks;
   
         if (nodb) {          if (nodb) {
                   for (key = ohash_first(&names, &slot); NULL != key;
                        key = ohash_next(&names, &slot)) {
                           if (key->rendered != key->key)
                                   free(key->rendered);
                           free(key);
                   }
                   for (key = ohash_first(&strings, &slot); NULL != key;
                        key = ohash_next(&strings, &slot)) {
                           if (key->rendered != key->key)
                                   free(key->rendered);
                           free(key);
                   }
                   if (0 == debug)
                           return;
                 while (NULL != mlink) {                  while (NULL != mlink) {
                         fputs(mlink->name, stdout);                          fputs(mlink->name, stdout);
                         if (NULL == mlink->next ||                          if (NULL == mlink->next ||
Line 2207  dbopen(int real)
Line 2221  dbopen(int real)
                 rc = sqlite3_open_v2(MANDOC_DB, &db, ofl, NULL);                  rc = sqlite3_open_v2(MANDOC_DB, &db, ofl, NULL);
                 if (SQLITE_OK != rc) {                  if (SQLITE_OK != rc) {
                         exitcode = (int)MANDOCLEVEL_SYSERR;                          exitcode = (int)MANDOCLEVEL_SYSERR;
                         say(MANDOC_DB, "%s", sqlite3_errmsg(db));                          say(MANDOC_DB, "%s", sqlite3_errstr(rc));
                         return(0);                          return(0);
                 }                  }
                 goto prepare_statements;                  goto prepare_statements;
Line 2221  dbopen(int real)
Line 2235  dbopen(int real)
                 goto create_tables;                  goto create_tables;
         if (MPARSE_QUICK & mparse_options) {          if (MPARSE_QUICK & mparse_options) {
                 exitcode = (int)MANDOCLEVEL_SYSERR;                  exitcode = (int)MANDOCLEVEL_SYSERR;
                 say(MANDOC_DB "~", "%s", sqlite3_errmsg(db));                  say(MANDOC_DB "~", "%s", sqlite3_errstr(rc));
                 return(0);                  return(0);
         }          }
   
Line 2237  dbopen(int real)
Line 2251  dbopen(int real)
         rc = sqlite3_open_v2(tempfilename, &db, ofl, NULL);          rc = sqlite3_open_v2(tempfilename, &db, ofl, NULL);
         if (SQLITE_OK != rc) {          if (SQLITE_OK != rc) {
                 exitcode = (int)MANDOCLEVEL_SYSERR;                  exitcode = (int)MANDOCLEVEL_SYSERR;
                 say("", "%s: %s", tempfilename, sqlite3_errmsg(db));                  say("", "%s: %s", tempfilename, sqlite3_errstr(rc));
                 return(0);                  return(0);
         }          }
   
Line 2275  create_tables:
Line 2289  create_tables:
         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;
                 say(MANDOC_DB, "%s", sqlite3_errmsg(db));                  say(MANDOC_DB, "%s", sqlite3_errmsg(db));
                   sqlite3_close(db);
                 return(0);                  return(0);
         }          }
   
 prepare_statements:  prepare_statements:
         SQL_EXEC("PRAGMA foreign_keys = ON");          if (SQLITE_OK != sqlite3_exec(db,
               "PRAGMA foreign_keys = ON", NULL, NULL, NULL)) {
                   exitcode = (int)MANDOCLEVEL_SYSERR;
                   say(MANDOC_DB, "PRAGMA foreign_keys: %s",
                       sqlite3_errmsg(db));
                   sqlite3_close(db);
                   return(0);
           }
   
         sql = "DELETE FROM mpages WHERE pageid IN "          sql = "DELETE FROM mpages WHERE pageid IN "
                 "(SELECT pageid FROM mlinks WHERE "                  "(SELECT pageid FROM mlinks WHERE "
                 "sec=? AND arch=? AND name=?)";                  "sec=? AND arch=? AND name=?)";
Line 2303  prepare_statements:
Line 2326  prepare_statements:
          * synchronous mode for much better performance.           * synchronous mode for much better performance.
          */           */
   
         if (real)          if (real && SQLITE_OK != sqlite3_exec(db,
                 SQL_EXEC("PRAGMA synchronous = OFF");              "PRAGMA synchronous = OFF", NULL, NULL, NULL)) {
                   exitcode = (int)MANDOCLEVEL_SYSERR;
                   say(MANDOC_DB, "PRAGMA synchronous: %s",
                   sqlite3_errmsg(db));
                   sqlite3_close(db);
                   return(0);
           }
 #endif  #endif
   
         return(1);          return(1);
Line 2314  static void *
Line 2343  static void *
 hash_halloc(size_t sz, void *arg)  hash_halloc(size_t sz, void *arg)
 {  {
   
         return(mandoc_calloc(sz, 1));          return(mandoc_calloc(1, sz));
 }  }
   
 static void *  static void *

Legend:
Removed from v.1.143  
changed lines
  Added in v.1.147

CVSweb