=================================================================== RCS file: /cvs/mandoc/mandocdb.c,v retrieving revision 1.86 retrieving revision 1.88 diff -u -p -r1.86 -r1.88 --- mandoc/mandocdb.c 2013/12/27 16:17:32 1.86 +++ mandoc/mandocdb.c 2013/12/27 18:42:25 1.88 @@ -1,4 +1,4 @@ -/* $Id: mandocdb.c,v 1.86 2013/12/27 16:17:32 schwarze Exp $ */ +/* $Id: mandocdb.c,v 1.88 2013/12/27 18:42:25 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,16 @@ 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->file); + 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->name); + 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)) { @@ -1945,6 +1949,7 @@ dbopen(int real) ");\n" "\n" "CREATE TABLE \"mlinks\" (\n" + " \"file\" TEXT NOT NULL,\n" " \"sec\" TEXT NOT NULL,\n" " \"arch\" TEXT NOT NULL,\n" " \"name\" TEXT NOT NULL,\n" @@ -1977,7 +1982,7 @@ prepare_statements: "(file,sec,arch,desc,form) VALUES (?,?,?,?,?)"; sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_INSERT_PAGE], NULL); sql = "INSERT INTO mlinks " - "(sec,arch,name,pageid) VALUES (?,?,?,?)"; + "(file,sec,arch,name,pageid) VALUES (?,?,?,?,?)"; sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_INSERT_LINK], NULL); sql = "INSERT INTO keys " "(bits,key,pageid) VALUES (?,?,?)";