storopt = directive_groups['options']
for variablelist in t.iterfind('.//variablelist'):
klass = variablelist.attrib.get('class')
+ searchpath = variablelist.attrib.get('xpath','./varlistentry/term/varname')
storvar = directive_groups[klass or 'miscellaneous']
# <option>s go in OPTIONS, unless class is specified
- for xpath, stor in (('./varlistentry/term/varname', storvar),
+ for xpath, stor in ((searchpath, storvar),
('./varlistentry/term/option',
storvar if klass else storopt)):
for name in variablelist.iterfind(xpath):
text = re.sub(r'([= ]).*', r'\1', name.text).rstrip()
+ if text.startswith('-'):
+ # for options, merge options with and without mandatory arg
+ text = text.partition('=')[0]
stor[text].append((pagename, section))
if text not in formatting:
# use element as formatted display
- if name.text[-1] in '= ':
+ if name.text[-1] in "= '":
name.clear()
else:
name.tail = ''
for name in t.iterfind(xpath):
if absolute_only and not (name.text and name.text.startswith('/')):
continue
- if name.attrib.get('noindex'):
+ if name.attrib.get('index') == 'false':
continue
name.tail = ''
if name.text:
storfile = directive_groups['constants']
for name in t.iterfind('.//constant'):
- if name.attrib.get('noindex'):
+ if name.attrib.get('index') == 'false':
continue
name.tail = ''
if name.text.startswith('('): # a cast, strip it