diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2013-01-31 19:10:11 -0500 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2013-02-01 19:47:41 -0500 |
commit | b4ce0aec3b74adbe996ea0489d9dd5dfe91ba11d (patch) | |
tree | f5fcbc34f53b6d7622c76df2420c6da714ed00ba /giscanner | |
parent | ae6f1592d4e423abc749e8d9f9a27191bcb1b85b (diff) | |
download | gobject-introspection-b4ce0aec3b74adbe996ea0489d9dd5dfe91ba11d.tar.gz |
mallardwriter: Use xmlwriter for xrefs
Diffstat (limited to 'giscanner')
-rw-r--r-- | giscanner/mallardwriter.py | 6 | ||||
-rwxr-xr-x | giscanner/xmlwriter.py | 34 |
2 files changed, 23 insertions, 17 deletions
diff --git a/giscanner/mallardwriter.py b/giscanner/mallardwriter.py index bb5f8936..6526a4a8 100644 --- a/giscanner/mallardwriter.py +++ b/giscanner/mallardwriter.py @@ -28,7 +28,7 @@ import tempfile from xml.sax import saxutils from mako.lookup import TemplateLookup -from . import ast +from . import ast, xmlwriter from .utils import to_underscores def make_page_id(node): @@ -319,7 +319,9 @@ class MallardFormatter(object): # Enum/BitField members are linked to the main enum page. return self.format_xref(node.parent) + '.' + node.name else: - return '<link xref="%s">%s</link>' % (make_page_id(node), self.format_page_name(node)) + return xmlwriter.build_xml_tag('link', + [('xref', make_page_id(node))], + self.format_page_name(node)) def format_property_flags(self, property_, construct_only=False): flags = [] diff --git a/giscanner/xmlwriter.py b/giscanner/xmlwriter.py index fb34adf1..11f84859 100755 --- a/giscanner/xmlwriter.py +++ b/giscanner/xmlwriter.py @@ -68,6 +68,23 @@ def collect_attributes(tag_name, attributes, self_indent, first = False return attr_value +def build_xml_tag(tag_name, attributes=None, data=None, self_indent=0, + self_indent_char=' '): + if attributes is None: + attributes = [] + prefix = u'<%s' % (tag_name, ) + if data is not None: + if isinstance(data, str): + data = data.decode('UTF-8') + suffix = u'>%s</%s>' % (escape(data), tag_name) + else: + suffix = u'/>' + attrs = collect_attributes( + tag_name, attributes, + self_indent, + self_indent_char, + len(prefix) + len(suffix)) + return prefix + attrs + suffix with LibtoolImporter(None, None): if 'UNINSTALLED_INTROSPECTION_SRCDIR' in os.environ: @@ -131,21 +148,8 @@ class XMLWriter(object): self.write_line('<!-- %s -->' % (text, )) def write_tag(self, tag_name, attributes, data=None): - if attributes is None: - attributes = [] - prefix = u'<%s' % (tag_name, ) - if data is not None: - if isinstance(data, str): - data = data.decode('UTF-8') - suffix = u'>%s</%s>' % (escape(data), tag_name) - else: - suffix = u'/>' - attrs = collect_attributes( - tag_name, attributes, - self._indent, - self._indent_char, - len(prefix) + len(suffix)) - self.write_line(prefix + attrs + suffix) + self.write_line(build_xml_tag(tag_name, attributes, data, + self._indent, self._indent_char)) def push_tag(self, tag_name, attributes=None): if attributes is None: |