sub-field or sub-collection of the collection is changed). Some collections may provide even
more lifetime guarantees but this guarantee should be met by all collection wrappers.
- \important Parser lifetime has to be tightly checked when working with collection parsers since
+ \warning Parser lifetime has to be tightly checked when working with collection parsers since
\e every change of the collections size will invalidate \e all parsers and iterators referencing
the \e complete packet chain. Collection wrappers do \e not invalidate if the change is \e after
the collection.
#!/usr/bin/python
+#
+# This tool will hack the doxygen generated documentation to fix link
+# errors produced by doxygen.
+#
+# This works because most anchors doxygen generates are unique 32 char
+# hash values. To speed up the operation, the tool will not check all
+# the files itself but will let 'linklint' do the grunt
+# work. fix-links.py reads the 'errorX.txt' and 'errorAX.txt' files
+# generated by linklint. These files list links to missing files
+# (errorX.html) and links to missing anchors
+# (errorAX.html). fix-links.py works in the following way:
+#
+# - Build a complete index of all unique anchors found in any html
+# file. The index will only include *unique* anchors. Anchors found
+# multiple times are removed from the index
+#
+# - The index is extended to include all unique names of html files
+#
+# - Scn the linklint result and check the bad links against the
+# index. If the file or anchor is found in the index, an accoringly
+# corrected link is generated otherwise the link is removed.
+#
+# One additional twak is, that fix-links.py will successively remove
+# initial 'g' charachters from anchors until the link is found in the
+# index. Doxygen seems to create links with the wrong number of 'g'
+# charachters in front sometimes.
import sys,os.path,fnmatch, HTMLParser, getopt, re
if verbose:
sys.stderr.write("\nRemoved links:\n")
for (anchor, label), files in removed.items():
- sys.stdout.write("%-36.36s %-48.48s %s\n"
+ sys.stderr.write("%-36.36s %-48.48s %s\n"
% ( anchor,
"(%s)" % label[:46],
" ".join(files.keys())) )