diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/reflist.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/reflist.cpp b/src/reflist.cpp index e551743..7ae4c80 100644 --- a/src/reflist.cpp +++ b/src/reflist.cpp @@ -131,7 +131,15 @@ void RefList::insertIntoList(const char *key,RefItem *item) { if (ri!=item) { - ri->extraItems.append(item); + // We also have to check if the item is not already in the "extra" list + QListIterator<RefItem> li(ri->extraItems); + RefItem *extraItem; + bool doubleItem = false; + for (li.toFirst();(extraItem=li.current());++li) + { + if (item == extraItem) doubleItem = true; + } + if (!doubleItem) ri->extraItems.append(item); } } } @@ -148,8 +156,6 @@ void RefList::generatePage() for (it.toFirst();(item=it.current());++it) { doc += " <dt>"; - doc += "\\anchor "; - doc += item->listAnchor; doc += "\n"; if (item->scope) { @@ -174,13 +180,18 @@ void RefList::generatePage() // escape \'s in argument list (see issue #6533) doc += substitute(substitute(item->args,"@","@@"),"\\","\\\\"); } - doc += "</dt><dd> "; + doc += "</dt><dd> \\anchor "; + doc += item->listAnchor; + doc += " "; doc += item->text; QListIterator<RefItem> li(item->extraItems); RefItem *extraItem; for (li.toFirst();(extraItem=li.current());++li) { - doc += "<p>" + extraItem->text; + doc += "<p> \\anchor "; + doc += extraItem->listAnchor; + doc += " "; + doc += extraItem->text; } doc += "</dd>"; } |