aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2013-12-27 16:40:35 +0000
committerIngo Schwarze <schwarze@openbsd.org>2013-12-27 16:40:35 +0000
commit04bbfabc2f442db91e4082cd1a5467df45286b74 (patch)
treea562186ed79f9d530091436830b342d975d706c9
parent0084e46dc2dc6ff8aea335a3f4089e8bae15abb6 (diff)
downloadmandoc-04bbfabc2f442db91e4082cd1a5467df45286b74.tar.gz
mandoc-04bbfabc2f442db91e4082cd1a5467df45286b74.tar.zst
mandoc-04bbfabc2f442db91e4082cd1a5467df45286b74.zip
Write more than one mlink per mpage to the database.
Not yet used by apropos(1).
-rw-r--r--mandocdb.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/mandocdb.c b/mandocdb.c
index 1d81944b..aee91d71 100644
--- a/mandocdb.c
+++ b/mandocdb.c
@@ -1,4 +1,4 @@
-/* $Id: mandocdb.c,v 1.86 2013/12/27 16:17:32 schwarze Exp $ */
+/* $Id: mandocdb.c,v 1.87 2013/12/27 16:40:35 schwarze Exp $ */
/*
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
@@ -1764,6 +1764,7 @@ utf8key(struct mchars *mc, struct str *key)
static void
dbindex(const struct mpage *mpage, struct mchars *mc)
{
+ struct mlink *mlink;
struct str *key;
const char *desc;
int64_t recno;
@@ -1803,13 +1804,15 @@ dbindex(const struct mpage *mpage, struct mchars *mc)
recno = sqlite3_last_insert_rowid(db);
sqlite3_reset(stmts[STMT_INSERT_PAGE]);
- i = 1;
- SQL_BIND_TEXT(stmts[STMT_INSERT_LINK], i, mpage->mlinks->dsec);
- SQL_BIND_TEXT(stmts[STMT_INSERT_LINK], i, mpage->mlinks->arch);
- SQL_BIND_TEXT(stmts[STMT_INSERT_LINK], i, mpage->mlinks->file);
- SQL_BIND_INT64(stmts[STMT_INSERT_LINK], i, recno);
- SQL_STEP(stmts[STMT_INSERT_LINK]);
- sqlite3_reset(stmts[STMT_INSERT_LINK]);
+ for (mlink = mpage->mlinks; mlink; mlink = mlink->next) {
+ i = 1;
+ SQL_BIND_TEXT(stmts[STMT_INSERT_LINK], i, mlink->dsec);
+ SQL_BIND_TEXT(stmts[STMT_INSERT_LINK], i, mlink->arch);
+ SQL_BIND_TEXT(stmts[STMT_INSERT_LINK], i, mlink->file);
+ SQL_BIND_INT64(stmts[STMT_INSERT_LINK], i, recno);
+ SQL_STEP(stmts[STMT_INSERT_LINK]);
+ sqlite3_reset(stmts[STMT_INSERT_LINK]);
+ }
for (key = ohash_first(&strings, &slot); NULL != key;
key = ohash_next(&strings, &slot)) {