Missing support for multi-dimensional arrays?
IBus has the following struct in ibus-1.0/ibuskeymap.h
:
/**
* IBusKeymap:
* @name: The name of the keymap, such as 'us', 'jp'.
* @keymap: Keymap table. IME developers normally don have to touch this.
*
* A keymap object in IBus.
*/
struct _IBusKeymap {
/*< private >*/
IBusObject parent;
/* members */
/*< public >*/
gchar *name;
guint keymap[256][7];
};
The GI scanner generates the following gir for the keymap
field:
<field name="keymap">
<doc xml:space="preserve">Keymap table. IME developers normally don have to touch this.</doc>
<array zero-terminated="0" c:type="guint" fixed-size="256">
<type name="guint" c:type="guint"/>
</array>
</field>
The second dimension of the array seems to be completely lost.
Shouldn't this be instead something like the following?
<field name="keymap">
<doc xml:space="preserve">Keymap table. IME developers normally don have to touch this.</doc>
<array zero-terminated="0" c:type="guint" fixed-size="256">
<array zero-terminated="0" c:type="guint" fixed-size="7">
<type name="guint" c:type="guint"/>
</array>
</array>
</field>
(this originally came up when trying to generate Rust bindings for IBus using the gtk-rs tooling: https://github.com/gtk-rs/gir/issues/682)