<namespace name="Foo">
<glib:boxed glib:name="BoxedType1" glib:type-name="boxed1" glib:get-type="boxed1_get_type" deprecated="1">
<field name="field1" readable="1" writable="1" offset="0">
- <type name="guint32" c:type="guint32"/>
+ <type name="uint32"/>
</field>
<field name="field2" readable="1" writable="1" offset="4">
- <type name="guint32" c:type="guint32"/>
+ <type name="uint32"/>
</field>
<field name="field3" readable="1" writable="1" offset="8">
- <type name="guint32" c:type="guint32"/>
+ <type name="uint32"/>
</field>
<method name="frob_boxed1" c:identifier="frob_boxed1">
<return-value>
- <!-- FIXME: name=void should be none -->
- <type name="void" c:type="void" />
+ <type name="none"/>
</return-value>
<parameters>
- <parameter name="box" transfer="full" direction="in">
- <type name="BoxedType1" c:type="boxed1*"/>
+ <parameter name="box" direction="in">
+ <type name="BoxedType1"/>
</parameter>
- <parameter name="w" transfer="full" direction="in">
- <!-- FIXME: put this in a sub node -->
- <!--
- <type name="sequence" c:type="GList*">
- <type name="boxed2" c:type="boxed2*"/>
- </type>
- -->
- <type name="GList<boxed2*>*" c:type="GList*"/>
+ <parameter name="w" direction="in">
+ <type name="GList<boxed2*>*"/>
</parameter>
<parameter name="t" transfer="full" direction="in">
- <!-- FIXME: put this in a sub node -->
- <!--
- <type name="mapping" c:type="GHashTable*">
- <type name="utf8" c:type="gchar*"/>
- <type name="int64" c:type="gint64"/>
- </type>
- -->
- <type name="GHashTable<utf8,gint64>*" c:type="GHashTable*"/>
+ <type name="GHashTable<utf8,int64>*"/>
</parameter>
<parameter name="e" transfer="full" direction="out">
- <type name="GError" c:type="GError**"/>
+ <type name="GError*"/>
</parameter>
</parameters>
</method>
<method name="lart" c:identifier="lart">
<return-value>
- <type name="boolean" c:type="gboolean"/>
+ <type name="boolean"/>
</return-value>
<parameters>
- <parameter name="box" transfer="full" direction="in">
- <type name="boxed2*" c:type="boxed2*"/>
+ <parameter name="box" direction="in">
+ <type name="boxed2*"/>
</parameter>
<parameter name="val" transfer="full" direction="inout">
- <type name="uint" c:type="guint*"/>
+ <type name="uint"/>
</parameter>
</parameters>
</method>
</glib:boxed>
<function name="freefunc" c:identifier="freefunc" deprecated="1">
- <return-value>
- <type name="boolean" c:type="gboolean"/>
+ <return-value>
+ <type name="boolean"/>
</return-value>
<parameters>
<parameter name="v1" direction="in">
- <type name="int" c:type="gint"/>
+ <type name="int"/>
</parameter>
<parameter name="val2" direction="in">
- <type name="int" c:type="gint"/>
+ <type name="int"/>
</parameter>
</parameters>
</function>
GITypeInfo *type;
const gchar* basic[] = {
- "void",
- "gboolean",
- "gint8",
- "guint8",
- "gint16",
- "guint16",
- "gint32",
- "guint32",
- "gint64",
- "guint64",
- "gint",
- "guint",
- "glong",
- "gulong",
- "gssize",
- "gsize",
- "gfloat",
- "gdouble",
+ "none",
+ "boolean",
+ "int8",
+ "uint8",
+ "int16",
+ "uint16",
+ "int32",
+ "uint32",
+ "int64",
+ "uint64",
+ "int",
+ "uint",
+ "long",
+ "ulong",
+ "ssize",
+ "size",
+ "float",
+ "double",
"utf8",
"filename"
};
offset = g_field_info_get_offset (info);
g_fprintf (file,
- " <field name=\"%s\" readable=\"%s\" writable=\"%s\" ",
+ " <field name=\"%s\" readable=\"%s\" writable=\"%s\"",
name,
flags & GI_FIELD_IS_READABLE ? "1" : "0",
flags & GI_FIELD_IS_WRITABLE ? "1" : "0");
if (size)
- g_fprintf (file, "bits=\"%d\" ", size);
- g_fprintf (file, "offset=\"%d\" ", offset);
+ g_fprintf (file, " bits=\"%d\"", size);
- g_fprintf (file, "type=\"");
+ g_fprintf (file, " offset=\"%d\"", offset);
type = g_field_info_get_type (info);
- write_type_info (namespace, type, file);
- g_base_info_unref ((GIBaseInfo *)type);
-
- g_fprintf (file, "\"");
if (branch)
{
g_fprintf (file, "\"");
}
- g_fprintf (file," />\n");
+ g_fprintf (file,">\n");
+
+ g_fprintf (file, " <type name=\"");
+
+ write_type_info (namespace, type, file);
+ g_base_info_unref ((GIBaseInfo *)type);
+
+ g_fprintf (file, "\"/>\n");
+
+ g_fprintf (file, " </field>\n");
+
}
static void
GITypeInfo *type;
gint i;
- g_fprintf (file, "%*s <return-type c:type=\"", indent, "");
+ g_fprintf (file, "%*s <return-value>\n", indent, "");
type = g_callable_info_get_return_type (info);
- write_type_info (namespace, type, file);
-
- g_fprintf (file, "\"");
if (g_type_info_is_pointer (type))
{
if (g_callable_info_may_return_null (info))
g_fprintf (file, " null-ok=\"1\"");
- g_fprintf (file, " />\n");
+ g_fprintf (file, "%*s <type name=\"", indent + 2, "");
+
+ write_type_info (namespace, type, file);
+
+ g_fprintf (file, "\"/>\n");
+
+ g_fprintf (file, "%*s </return-value>\n", indent, "");
- if (g_callable_info_get_n_args (info) > 0)
+ if (g_callable_info_get_n_args (info) <= 0)
+ return;
+
+ g_fprintf (file, "%*s <parameters>\n", indent, "");
+ for (i = 0; i < g_callable_info_get_n_args (info); i++)
{
- g_fprintf (file, "%*s <parameters>\n", indent, "");
- for (i = 0; i < g_callable_info_get_n_args (info); i++)
+ GIArgInfo *arg = g_callable_info_get_arg (info, i);
+
+ g_fprintf (file, "%*s <parameter name=\"%s\"",
+ indent, "", g_base_info_get_name ((GIBaseInfo *) arg));
+
+ if (g_type_info_is_pointer (type))
{
- GIArgInfo *arg = g_callable_info_get_arg (info, i);
-
- g_fprintf (file, "%*s <parameter name=\"%s\" c:type=\"",
- indent, "", g_base_info_get_name ((GIBaseInfo *) arg));
-
- type = g_arg_info_get_type (arg);
- write_type_info (namespace, type, file);
- g_fprintf (file, "\"");
-
- if (g_type_info_is_pointer (type))
- {
- switch (g_arg_info_get_ownership_transfer (arg))
- {
- case GI_TRANSFER_NOTHING:
- g_fprintf (file, " transfer=\"none\"");
- break;
- case GI_TRANSFER_CONTAINER:
- g_fprintf (file, " transfer=\"shallow\"");
- break;
- case GI_TRANSFER_EVERYTHING:
- g_fprintf (file, " transfer=\"full\"");
- break;
- default:
- g_assert_not_reached ();
- }
- }
- g_base_info_unref ((GIBaseInfo *)type);
-
- g_fprintf (file, " direction=\"");
- switch (g_arg_info_get_direction (arg))
+ switch (g_arg_info_get_ownership_transfer (arg))
{
- case GI_DIRECTION_IN:
- g_fprintf (file, "in");
+ case GI_TRANSFER_NOTHING:
+ g_fprintf (file, " transfer=\"none\"");
break;
- case GI_DIRECTION_OUT:
- g_fprintf (file, "out");
+ case GI_TRANSFER_CONTAINER:
+ g_fprintf (file, " transfer=\"shallow\"");
break;
- case GI_DIRECTION_INOUT:
- g_fprintf (file, "inout");
+ case GI_TRANSFER_EVERYTHING:
+ g_fprintf (file, " transfer=\"full\"");
break;
+ default:
+ g_assert_not_reached ();
}
- g_fprintf (file, "\"");
-
- if (g_arg_info_may_be_null (arg))
- g_fprintf (file, " null-ok=\"1\"");
-
- if (g_arg_info_is_dipper (arg))
- g_fprintf (file, " dipper=\"1\"");
-
- if (g_arg_info_is_return_value (arg))
- g_fprintf (file, " retval=\"1\"");
-
- if (g_arg_info_is_optional (arg))
- g_fprintf (file, " optional=\"1\"");
-
- g_fprintf (file, " />\n");
-
- g_base_info_unref ((GIBaseInfo *)arg);
+ }
+ g_base_info_unref ((GIBaseInfo *)type);
+
+ g_fprintf (file, " direction=\"");
+ switch (g_arg_info_get_direction (arg))
+ {
+ case GI_DIRECTION_IN:
+ g_fprintf (file, "in");
+ break;
+ case GI_DIRECTION_OUT:
+ g_fprintf (file, "out");
+ break;
+ case GI_DIRECTION_INOUT:
+ g_fprintf (file, "inout");
+ break;
}
-
- g_fprintf (file, "%*s </parameters>\n", indent, "");
+ g_fprintf (file, "\"");
+
+ if (g_arg_info_may_be_null (arg))
+ g_fprintf (file, " null-ok=\"1\"");
+
+ if (g_arg_info_is_dipper (arg))
+ g_fprintf (file, " dipper=\"1\"");
+
+ if (g_arg_info_is_return_value (arg))
+ g_fprintf (file, " retval=\"1\"");
+
+ if (g_arg_info_is_optional (arg))
+ g_fprintf (file, " optional=\"1\"");
+
+ g_fprintf (file, ">\n");
+
+ g_fprintf (file, "%*s <type name=\"", indent+2, "");
+
+ type = g_arg_info_get_type (arg);
+ write_type_info (namespace, type, file);
+
+ g_fprintf (file, "\"/>\n");
+
+ g_fprintf (file, "%*s </parameter>\n", indent, "");
+
+ g_base_info_unref ((GIBaseInfo *)arg);
}
+
+ g_fprintf (file, "%*s </parameters>\n", indent, "");
}
static void
type_name = g_registered_type_info_get_type_name ((GIRegisteredTypeInfo*)info);
type_init = g_registered_type_info_get_type_init ((GIRegisteredTypeInfo*)info);
- g_fprintf (file, " <boxed name=\"%s\" type-name=\"%s\" get-type=\"%s\"", name, type_name, type_init);
+ g_fprintf (file, " <glib:boxed glib:name=\"%s\" glib:type-name=\"%s\" glib:get-type=\"%s\"", name, type_name, type_init);
}
else
g_fprintf (file, " <struct name=\"%s\"", name);
}
if (g_base_info_get_type ((GIBaseInfo *)info) == GI_INFO_TYPE_BOXED)
- g_fprintf (file, " </boxed>\n");
+ g_fprintf (file, " </glib:boxed>\n");
else
g_fprintf (file, " </struct>\n");
}