From 25e6c67eeaa48e1037ec398b2387603164152aab Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Mon, 28 Apr 2008 19:24:11 +0000 Subject: [PATCH] =?utf8?q?Move=20c:identifier=20from=20return-value=20to?= =?utf8?q?=20subchild=20type,=20as=20per=20J=C3=BCrgs?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2008-04-28 Johan Dahlin * giscanner/ast.py: * giscanner/girwriter.py: * giscanner/glibtransformer.py: * tests/parser/Foo-expected.gidl: * tests/parser/Makefile.am: Move c:identifier from return-value to subchild type, as per Jürgs suggestion svn path=/trunk/; revision=250 --- ChangeLog | 10 ++++ giscanner/ast.py | 2 +- giscanner/girwriter.py | 7 ++- giscanner/glibtransformer.py | 4 +- tests/parser/Foo-expected.gir | 124 +++++++++++++++++++++--------------------- tests/parser/Makefile.am | 2 +- 6 files changed, 80 insertions(+), 69 deletions(-) diff --git a/ChangeLog b/ChangeLog index b178556..9ade615 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-04-28 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * tests/parser/Foo-expected.gidl: + * tests/parser/Makefile.am: + Move c:identifier from return-value to subchild type, + as per Jürgs suggestion + 2008-04-28 Johan Dahlin * giscanner/girwriter.py: diff --git a/giscanner/ast.py b/giscanner/ast.py index 1d2e518..38f0313 100644 --- a/giscanner/ast.py +++ b/giscanner/ast.py @@ -44,6 +44,7 @@ class VFunction(Function): class Type(Node): def __init__(self, name): Node.__init__(self, name) + self.cidentifier = name def __repr__(self): return 'Type(%r)' % (self.name,) @@ -92,7 +93,6 @@ class Return(Node): Node.__init__(self) self.type = Type(type_name) self.transfer = 'none' - self.ctype = self.type def __repr__(self): return 'Return(%r)' % (self.type,) diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py index 1b0e49b..79367c8 100644 --- a/giscanner/girwriter.py +++ b/giscanner/girwriter.py @@ -76,8 +76,7 @@ class GIRWriter(XMLWriter): def _write_return_type(self, return_): if not return_: return - attrs = [('c:identifer', return_.type.name)] - with self.tagcontext('return-value', attrs): + with self.tagcontext('return-value'): if isinstance(return_.type, Sequence): self._write_sequence(return_.type) else: @@ -100,7 +99,9 @@ class GIRWriter(XMLWriter): self._write_type(parameter.type) def _write_type(self, type): - self.write_tag('type', [('name', type.name)]) + attrs = [('name', type.name), + ('c:identifier', type.cidentifier)] + self.write_tag('type', attrs) def _write_sequence(self, sequence): attrs = [('c:owner', sequence.cowner)] diff --git a/giscanner/glibtransformer.py b/giscanner/glibtransformer.py index 0635c58..305899f 100644 --- a/giscanner/glibtransformer.py +++ b/giscanner/glibtransformer.py @@ -341,8 +341,8 @@ class GLibTransformer(object): def _introspect_signals(self, node, type_id): for signal_info in cgobject.signal_list(type_id): - retval = Return(cgobject.type_name(signal_info.return_type)) - signal = GLibSignal(signal_info.signal_name, retval) + return_ = Return(cgobject.type_name(signal_info.return_type)) + signal = GLibSignal(signal_info.signal_name, return_) for i, parameter in enumerate(signal_info.get_params()): if i == 0: name = 'object' diff --git a/tests/parser/Foo-expected.gir b/tests/parser/Foo-expected.gir index aa6e4d8..0f7f8df 100644 --- a/tests/parser/Foo-expected.gir +++ b/tests/parser/Foo-expected.gir @@ -8,8 +8,8 @@ glib:get-type="foo_interface_get_type"> - - + + - - + + - - + + - + - - + + - + - - + + - + - + - - + + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - - + + @@ -191,12 +191,12 @@ - - + + - + @@ -216,34 +216,34 @@ glib:type-name="FooBoxed" glib:get-type="foo_boxed_get_type"> - - + + - - + + - + - - + + - + - + - + diff --git a/tests/parser/Makefile.am b/tests/parser/Makefile.am index 30a07f8..5cced68 100644 --- a/tests/parser/Makefile.am +++ b/tests/parser/Makefile.am @@ -31,7 +31,7 @@ utility.gir: libutility.la utility.h $(SCANNER) Foo.gir: libfoo.la foo-object.h $(SCANNER) @PYTHONPATH=$(top_builddir) $(SCANNER) -v \ --include=$(top_srcdir)/gir/gobject-2.0.gir \ - --include=$(builddir)/utility.gir \ + --include=$(top_builddir)/tests/parser/utility.gir \ --library=libfoo.la \ --namespace=Foo \ --pkg gobject-2.0 \ -- 2.7.4