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

Diff for /mandoc/mandocdb.c between version 1.101 and 1.103

version 1.101, 2014/01/05 04:48:40 version 1.103, 2014/01/06 03:02:46
Line 167  static int  treescan(void);
Line 167  static int  treescan(void);
 static  size_t   utf8(unsigned int, char [7]);  static  size_t   utf8(unsigned int, char [7]);
   
 static  char            *progname;  static  char            *progname;
 static  int              use_all; /* use all found files */  
 static  int              nodb; /* no database changes */  static  int              nodb; /* no database changes */
   static  int              quick; /* abort the parse early */
   static  int              use_all; /* use all found files */
 static  int              verb; /* print what we're doing */  static  int              verb; /* print what we're doing */
 static  int              warnings; /* warn about crap */  static  int              warnings; /* warn about crap */
 static  int              write_utf8; /* write UTF-8 output; else ASCII */  static  int              write_utf8; /* write UTF-8 output; else ASCII */
Line 347  main(int argc, char *argv[])
Line 348  main(int argc, char *argv[])
         path_arg = NULL;          path_arg = NULL;
         op = OP_DEFAULT;          op = OP_DEFAULT;
   
         while (-1 != (ch = getopt(argc, argv, "aC:d:nT:tu:vW")))          while (-1 != (ch = getopt(argc, argv, "aC:d:nQT:tu:vW")))
                 switch (ch) {                  switch (ch) {
                 case ('a'):                  case ('a'):
                         use_all = 1;                          use_all = 1;
Line 365  main(int argc, char *argv[])
Line 366  main(int argc, char *argv[])
                 case ('n'):                  case ('n'):
                         nodb = 1;                          nodb = 1;
                         break;                          break;
                   case ('Q'):
                           quick = 1;
                           break;
                 case ('T'):                  case ('T'):
                         if (strcmp(optarg, "utf8")) {                          if (strcmp(optarg, "utf8")) {
                                 fprintf(stderr, "-T%s: Unsupported "                                  fprintf(stderr, "-T%s: Unsupported "
Line 404  main(int argc, char *argv[])
Line 408  main(int argc, char *argv[])
   
         exitcode = (int)MANDOCLEVEL_OK;          exitcode = (int)MANDOCLEVEL_OK;
         mp = mparse_alloc(MPARSE_AUTO,          mp = mparse_alloc(MPARSE_AUTO,
                 MANDOCLEVEL_FATAL, NULL, NULL, NULL);                  MANDOCLEVEL_FATAL, NULL, NULL, quick);
         mc = mchars_alloc();          mc = mchars_alloc();
   
         ohash_init(&mpages, 6, &mpages_info);          ohash_init(&mpages, 6, &mpages_info);
Line 494  out:
Line 498  out:
         ohash_delete(&mlinks);          ohash_delete(&mlinks);
         return(exitcode);          return(exitcode);
 usage:  usage:
         fprintf(stderr, "usage: %s [-anvW] [-C file] [-Tutf8]\n"          fprintf(stderr, "usage: %s [-anQvW] [-C file] [-Tutf8]\n"
                         "       %s [-anvW] [-Tutf8] dir ...\n"                          "       %s [-anQvW] [-Tutf8] dir ...\n"
                         "       %s [-nvW] [-Tutf8] -d dir [file ...]\n"                          "       %s [-nQvW] [-Tutf8] -d dir [file ...]\n"
                         "       %s [-nvW] -u dir [file ...]\n"                          "       %s [-nvW] -u dir [file ...]\n"
                         "       %s -t file ...\n",                          "       %s [-Q] -t file ...\n",
                        progname, progname, progname,                         progname, progname, progname,
                        progname, progname);                         progname, progname);
   
Line 1732  dbindex(const struct mpage *mpage, struct mchars *mc)
Line 1736  dbindex(const struct mpage *mpage, struct mchars *mc)
 {  {
         struct mlink    *mlink;          struct mlink    *mlink;
         struct str      *key;          struct str      *key;
         const char      *desc;  
         int64_t          recno;          int64_t          recno;
         size_t           i;          size_t           i;
         unsigned int     slot;          unsigned int     slot;
Line 1743  dbindex(const struct mpage *mpage, struct mchars *mc)
Line 1746  dbindex(const struct mpage *mpage, struct mchars *mc)
         if (nodb)          if (nodb)
                 return;                  return;
   
         desc = "";  
         if (NULL != mpage->desc && '\0' != *mpage->desc) {  
                 key = ohash_find(&strings,  
                         ohash_qlookup(&strings, mpage->desc));  
                 assert(NULL != key);  
                 if (NULL == key->rendered)  
                         render_key(mc, key);  
                 desc = key->rendered;  
         }  
   
         SQL_EXEC("BEGIN TRANSACTION");          SQL_EXEC("BEGIN TRANSACTION");
   
         i = 1;          i = 1;
         SQL_BIND_TEXT(stmts[STMT_INSERT_PAGE], i, desc);  
         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]);
         recno = sqlite3_last_insert_rowid(db);          recno = sqlite3_last_insert_rowid(db);
Line 1893  dbopen(int real)
Line 1885  dbopen(int real)
         }          }
   
         sql = "CREATE TABLE \"mpages\" (\n"          sql = "CREATE TABLE \"mpages\" (\n"
               " \"desc\" TEXT NOT NULL,\n"  
               " \"form\" INTEGER NOT NULL,\n"                " \"form\" INTEGER NOT NULL,\n"
               " \"id\" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL\n"                " \"id\" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL\n"
               ");\n"                ");\n"
Line 1929  prepare_statements:
Line 1920  prepare_statements:
         sql = "DELETE FROM mpages where file=?";          sql = "DELETE FROM mpages where file=?";
         sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_DELETE_PAGE], NULL);          sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_DELETE_PAGE], NULL);
         sql = "INSERT INTO mpages "          sql = "INSERT INTO mpages "
                 "(desc,form) VALUES (?,?)";                  "(form) VALUES (?)";
         sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_INSERT_PAGE], NULL);          sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_INSERT_PAGE], NULL);
         sql = "INSERT INTO mlinks "          sql = "INSERT INTO mlinks "
                 "(file,sec,arch,name,pageid) VALUES (?,?,?,?,?)";                  "(file,sec,arch,name,pageid) VALUES (?,?,?,?,?)";

Legend:
Removed from v.1.101  
changed lines
  Added in v.1.103

CVSweb