mirror of
https://gitee.com/openharmony/third_party_libnl
synced 2024-11-23 18:19:50 +00:00
940e5d5446
Newer versions of doxygen (on Fedora20) treat the documentation slightly different so that the following entires end up in libnl.dict: \=api/group__attr.html#ga769cc7bd882aab17c3740dd83329d7e6 »·······»·······NLA_PUT=api/group__attr.html#ga769cc7bd882aab17c3740dd83329d7e6 NLA_PUT=api/group__attr.html#ga769cc7bd882aab17c3740dd83329d7e6 Especially, replacing r'\' breaks the generated html documentation. Extend doxygen-link.py to strip whitespaces from the name and skip over r'\'. Also, when replacing the words in the output file, match them using word boundaries r'\b'. Also, don't print an additional newline after each processed line. Acked-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: Thomas Haller <thaller@redhat.com>
44 lines
897 B
Python
Executable File
44 lines
897 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
from __future__ import print_function
|
|
import fileinput
|
|
import re
|
|
import sys
|
|
|
|
|
|
rc_script = re.compile(r'\s*(.*\S)?\s*')
|
|
|
|
def parse_dict(filename):
|
|
links = {}
|
|
for line in open(filename, 'r'):
|
|
m = re.match('^([^=]+)=([^\n]+)$', line);
|
|
if not m:
|
|
continue
|
|
name = m.group(1)
|
|
value = m.group(2)
|
|
|
|
# strip leading and trailing whitespace
|
|
m = rc_script.match(name)
|
|
if m:
|
|
name = m.group(1)
|
|
|
|
# skip special names
|
|
if name == '':
|
|
continue
|
|
if name == '\\':
|
|
continue
|
|
|
|
links[name] = "<a href=\"" + value + "\" class=\"dg\">" + name + "</a>"
|
|
return links
|
|
|
|
links = parse_dict(sys.argv[1])
|
|
|
|
def translate(match):
|
|
return links[match.group(1)]
|
|
|
|
# match for all names, with word boundaries \b
|
|
rc = re.compile(r'\b(' + '|'.join(map(re.escape, sorted(links, reverse=True))) + r')\b')
|
|
|
|
for line in open(sys.argv[2], 'r'):
|
|
print(rc.sub(translate, line), end='')
|