gobject-introspection r123 - in trunk: . tests/parser tools
- From: malureau svn gnome org
- To: svn-commits-list gnome org
- Subject: gobject-introspection r123 - in trunk: . tests/parser tools
- Date: Sat, 8 Mar 2008 22:48:30 +0000 (GMT)
Author: malureau
Date: Sat Mar 8 22:48:30 2008
New Revision: 123
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=123&view=rev
Log:
2008-03-08 Marc-Andre Lureau <marcandre lureau gmail com>
* tools/gidlwriter.c (enum_generate): added "type-name",
"get-type" and "deprecated" missing arguments.
* tests/parser/Foo-expected.gidl:
* tests/parser/foo-object.h: test enum type, and no type.
Modified:
trunk/ChangeLog
trunk/tests/parser/Foo-expected.gidl
trunk/tests/parser/foo-object.h
trunk/tools/gidlwriter.c
Modified: trunk/tests/parser/Foo-expected.gidl
==============================================================================
--- trunk/tests/parser/Foo-expected.gidl (original)
+++ trunk/tests/parser/Foo-expected.gidl Sat Mar 8 22:48:30 2008
@@ -15,12 +15,17 @@
<return-type type="FooBoxed*"/>
</constructor>
</boxed>
- <enum name="FooEnumType">
+ <enum name="FooEnumNoType">
+ <member name="FOO_ENUM_UN" value="1"/>
+ <member name="FOO_ENUM_DEUX" value="2"/>
+ <member name="FOO_ENUM_TROIS" value="3"/>
+ </enum>
+ <enum name="FooEnumType" type-name="FooEnumType" get-type="foo_enum_get_type">
<member name="FOO_ENUM_ALPHA" value="0"/>
<member name="FOO_ENUM_BETA" value="1"/>
<member name="FOO_ENUM_DELTA" value="2"/>
</enum>
- <flags name="FooFlagsType">
+ <flags name="FooFlagsType" type-name="FooFlagsType" get-type="foo_flags_get_type">
<member name="FOO_FLAGS_FIRST" value="1"/>
<member name="FOO_FLAGS_SECOND" value="2"/>
<member name="FOO_FLAGS_THIRD" value="4"/>
Modified: trunk/tests/parser/foo-object.h
==============================================================================
--- trunk/tests/parser/foo-object.h (original)
+++ trunk/tests/parser/foo-object.h Sat Mar 8 22:48:30 2008
@@ -77,6 +77,13 @@
FOO_FLAGS_THIRD = 1 << 2
} FooFlagsType;
+typedef enum
+{
+ FOO_ENUM_UN = 1,
+ FOO_ENUM_DEUX = 2,
+ FOO_ENUM_TROIS = 3,
+} FooEnumNoType;
+
GType foo_flags_get_type (void);
typedef struct _FooBoxed FooBoxed;
Modified: trunk/tools/gidlwriter.c
==============================================================================
--- trunk/tools/gidlwriter.c (original)
+++ trunk/tools/gidlwriter.c Sat Mar 8 22:48:30 2008
@@ -123,7 +123,7 @@
const char *tag_name;
GString *markup_s;
gchar *markup;
-
+
if (node->node.type == G_IDL_NODE_CALLBACK)
tag_name = "callback";
else if (node->is_constructor)
@@ -146,7 +146,7 @@
g_string_append_printf (markup_s, " deprecated=\"1\"");
g_string_append (markup_s, ">\n");
-
+
g_writer_write_indent (writer, markup_s->str);
g_string_free (markup_s, TRUE);
@@ -370,6 +370,7 @@
enum_generate (GIdlWriter * writer, GIdlNodeEnum * node)
{
GList *l;
+ GString *markup_s;
char *markup;
const char *tag_name = NULL;
@@ -381,10 +382,27 @@
{
tag_name = "flags";
}
- markup =
- g_markup_printf_escaped ("<%s name=\"%s\">\n", tag_name, node->node.name);
- g_writer_write_indent (writer, markup);
- g_free (markup);
+
+ markup_s = g_string_new ("<");
+ g_string_append_printf (markup_s,
+ "%s name=\"%s\"",
+ tag_name, node->node.name);
+
+ if (node->gtype_name != NULL)
+ g_string_append_printf (markup_s,
+ g_markup_printf_escaped (" type-name=\"%s\"", node->gtype_name));
+
+ if (node->gtype_init != NULL)
+ g_string_append_printf (markup_s,
+ g_markup_printf_escaped (" get-type=\"%s\"", node->gtype_init));
+
+ if (node->deprecated)
+ g_string_append_printf (markup_s, " deprecated=\"1\"");
+
+ g_string_append (markup_s, ">\n");
+
+ g_writer_write_indent (writer, markup_s->str);
+ g_string_free (markup_s, TRUE);
for (l = node->values; l != NULL; l = l->next)
{
@@ -467,12 +485,12 @@
GIdlWriter *writer;
writer = g_new0 (GIdlWriter, 1);
-
+
if (!filename)
writer->output = stdout;
else
writer->output = fopen (filename, "w");
-
+
g_writer_write (writer, "<?xml version=\"1.0\"?>\n");
g_writer_write_indent (writer, "<api version=\"1.0\">\n");
g_writer_write_module (writer, module);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]