diff options
author | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2008-12-09 00:07:08 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2008-12-09 00:07:08 +0000 |
commit | c1eb0a1670b41ffaa254310284a025ddc25c11a1 (patch) | |
tree | 559da38d33d7d84a649f39d3b9f6625d239846b4 /giscanner/girwriter.py | |
parent | 076bf783f0a4e1362f08cbc2dd986f85a8afaf5f (diff) | |
download | gobject-introspection-c1eb0a1670b41ffaa254310284a025ddc25c11a1.tar.gz |
Bug 563742 – introspection should record the introduced version of
2008-12-08 Tristan Van Berkom <tristan.van.berkom@gmail.com>
Bug 563742 – introspection should record the introduced version of
symbols marked with the "Since:" tag
reviewed by: Johan
* giscanner/ast.py:
* giscanner/girwriter.py:
* giscanner/scannerlexer.l:
* giscanner/transformer.py:
* tests/scanner/annotation-1.0-expected.gir:
* tests/scanner/annotation-1.0-expected.tgir:
* tests/scanner/annotation.c (annotation_versioned):
* tests/scanner/annotation.h:
svn path=/trunk/; revision=988
Diffstat (limited to 'giscanner/girwriter.py')
-rw-r--r-- | giscanner/girwriter.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py index 23d3a927..4468e25b 100644 --- a/giscanner/girwriter.py +++ b/giscanner/girwriter.py @@ -92,6 +92,10 @@ class GIRWriter(XMLWriter): else: print 'WRITER: Unhandled node', node + def _append_version(self, node, attrs): + if node.version: + attrs.append(('version', node.version)) + def _append_deprecated(self, node, attrs): if node.deprecated: attrs.append(('deprecated', node.deprecated)) @@ -112,6 +116,7 @@ class GIRWriter(XMLWriter): def _write_function(self, func, tag_name='function'): attrs = [('name', func.name), ('c:identifier', func.symbol)] + self._append_version(func, attrs) self._append_deprecated(func, attrs) self._append_throws(func, attrs) with self.tagcontext(tag_name, attrs): @@ -208,6 +213,7 @@ class GIRWriter(XMLWriter): def _write_enum(self, enum): attrs = [('name', enum.name)] + self._append_version(enum, attrs) self._append_deprecated(enum, attrs) if isinstance(enum, GLibFlags): tag_name = 'bitfield' @@ -240,6 +246,7 @@ class GIRWriter(XMLWriter): def _write_class(self, node): attrs = [('name', node.name), ('c:type', node.ctype)] + self._append_version(node, attrs) self._append_deprecated(node, attrs) if isinstance(node, Class): tag_name = 'class' @@ -283,6 +290,8 @@ class GIRWriter(XMLWriter): def _write_property(self, prop): attrs = [('name', prop.name)] + self._append_version(prop, attrs) + self._append_deprecated(prop, attrs) # Properties are assumed to be readable (see also generate.c) if not prop.readable: attrs.append(('readable', '0')) @@ -298,6 +307,7 @@ class GIRWriter(XMLWriter): def _write_callback(self, callback): # FIXME: reuse _write_function attrs = [('name', callback.name), ('c:type', callback.ctype)] + self._append_version(callback, attrs) self._append_deprecated(callback, attrs) self._append_throws(callback, attrs) with self.tagcontext('callback', attrs): @@ -319,6 +329,7 @@ class GIRWriter(XMLWriter): ('c:type', record.symbol)] if record.disguised: attrs.append(('disguised', '1')) + self._append_version(record, attrs) self._append_deprecated(record, attrs) if isinstance(record, GLibBoxed): attrs.extend(self._boxed_attrs(record)) @@ -332,6 +343,7 @@ class GIRWriter(XMLWriter): def _write_union(self, union): attrs = [('name', union.name), ('c:type', union.symbol)] + self._append_version(union, attrs) self._append_deprecated(union, attrs) if isinstance(union, GLibBoxed): attrs.extend(self._boxed_attrs(union)) @@ -365,6 +377,8 @@ class GIRWriter(XMLWriter): def _write_signal(self, signal): attrs = [('name', signal.name)] + self._append_version(signal, attrs) + self._append_deprecated(signal, attrs) with self.tagcontext('glib:signal', attrs): self._write_return_type(signal.retval) self._write_parameters(signal.parameters) |