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

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

version 1.129, 2014/04/04 15:55:19 version 1.130, 2014/04/04 16:43:16
Line 152  static void  mlink_free(struct mlink *);
Line 152  static void  mlink_free(struct mlink *);
 static  void     mlinks_undupe(struct mpage *);  static  void     mlinks_undupe(struct mpage *);
 static  void     mpages_free(void);  static  void     mpages_free(void);
 static  void     mpages_merge(struct mchars *, struct mparse *);  static  void     mpages_merge(struct mchars *, struct mparse *);
   static  void     names_check(void);
 static  void     parse_cat(struct mpage *, int);  static  void     parse_cat(struct mpage *, int);
 static  void     parse_man(struct mpage *, const struct man_node *);  static  void     parse_man(struct mpage *, const struct man_node *);
 static  void     parse_mdoc(struct mpage *, const struct mdoc_node *);  static  void     parse_mdoc(struct mpage *, const struct mdoc_node *);
Line 495  main(int argc, char *argv[])
Line 496  main(int argc, char *argv[])
                                 goto out;                                  goto out;
   
                         mpages_merge(mc, mp);                          mpages_merge(mc, mp);
                           if (warnings &&
                               ! (MPARSE_QUICK & mparse_options))
                                   names_check();
                         dbclose(0);                          dbclose(0);
   
                         if (j + 1 < dirs.sz) {                          if (j + 1 < dirs.sz) {
Line 1182  nextpage:
Line 1186  nextpage:
   
         if (0 == nodb)          if (0 == nodb)
                 SQL_EXEC("END TRANSACTION");                  SQL_EXEC("END TRANSACTION");
   }
   
   static void
   names_check(void)
   {
           sqlite3_stmt    *stmt;
           const char      *name, *sec, *arch, *key;
           size_t           i;
           int              irc;
   
           sqlite3_prepare_v2(db,
             "SELECT name, sec, arch, key FROM ("
               "SELECT key, pageid FROM keys "
               "WHERE bits & ? AND NOT EXISTS ("
                 "SELECT pageid FROM mlinks "
                 "WHERE mlinks.pageid == keys.pageid "
                 "AND mlinks.name == keys.key"
               ")"
             ") JOIN ("
               "SELECT * FROM mlinks GROUP BY pageid"
             ") USING (pageid);",
             -1, &stmt, NULL);
   
           i = 1;
           SQL_BIND_INT64(stmt, i, TYPE_NAME);
   
           while (SQLITE_ROW == (irc = sqlite3_step(stmt))) {
                   name = sqlite3_column_text(stmt, 0);
                   sec  = sqlite3_column_text(stmt, 1);
                   arch = sqlite3_column_text(stmt, 2);
                   key  = sqlite3_column_text(stmt, 3);
                   say("", "%s(%s%s%s) lacks mlink \"%s\"", name, sec,
                       '\0' == *arch ? "" : "/",
                       '\0' == *arch ? "" : arch, key);
           }
           sqlite3_finalize(stmt);
 }  }
   
 static void  static void

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

CVSweb