diff options
author | Philip Chimento <philip.chimento@gmail.com> | 2016-02-09 22:24:15 -0800 |
---|---|---|
committer | rockon999 <rockon999@users.noreply.github.com> | 2018-08-06 02:53:46 -0500 |
commit | fc39530d66d921331ced5a0b6607e9106c8d1647 (patch) | |
tree | 3a352214ebe7ec4f0aa41c42ca04b72e148abe77 /giscanner | |
parent | 9d0c3e1551b1f92935efb02a15df4f6e54b537fd (diff) | |
download | gobject-introspection-fc39530d66d921331ced5a0b6607e9106c8d1647.tar.gz |
docwriter: Handle invalid nodes better
Cogl-2.0.gir has the following entry:
<bitfield name="BufferMapHint"
version="1.4"
stability="Unstable"
c:type="CoglBufferMapHint">
<doc xml:whitespace="preserve">...</doc>
<member name="" value="1"
c:identifier="COGL_BUFFER_MAP_HINT_DISCARD">
<doc xml:whitespace="preserve">...</doc>
</member>
<member name="_range"
value="2"
c:identifier="COGL_BUFFER_MAP_HINT_DISCARD_RANGE">
<doc xml:whitespace="preserve">...</doc>
</member>
</bitfield>
The prefix is not picked up correctly and so we get a member without a
name, which crashes the docwriter in to_underscore(). Change that
function to handle this case by giving it a dummy "anonymous member"
name.
Diffstat (limited to 'giscanner')
-rw-r--r-- | giscanner/docwriter.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/giscanner/docwriter.py b/giscanner/docwriter.py index e5a025ba..754787e3 100644 --- a/giscanner/docwriter.py +++ b/giscanner/docwriter.py @@ -28,6 +28,7 @@ from __future__ import unicode_literals import os import re +import sys import tempfile from xml.sax import saxutils @@ -1131,6 +1132,15 @@ class DevDocsFormatterGjs(DocFormatterGjs): link += "#" + anchor return "[{}]({}){}".format(display_name, link, 's' if pluralize else '') + def to_underscores(self, node): + try: + return super(DevDocsFormatterGjs, self).to_underscores(node) + except Exception as e: + if e.message == 'invalid node': + print('warning: invalid node in', node.parent.name, + file=sys.stderr) + return node.parent.name + '_invalid_node' + def make_anchor(self, node): style_class = get_node_kind(node) return "{}-{}".format(style_class, self.to_underscores(node)) |