From 04bbfabc2f442db91e4082cd1a5467df45286b74 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Fri, 27 Dec 2013 16:40:35 +0000 Subject: Write more than one mlink per mpage to the database. Not yet used by apropos(1). --- mandocdb.c | 19 +++++++++++-------- 1 file 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 * Copyright (c) 2011, 2012, 2013 Ingo Schwarze @@ -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)) { -- cgit v1.2.3-56-ge451