Sujet : Re: Help requested with P99-based macro to create Wayland listeners
De : tr.17687 (at) *nospam* z991.linuxsc.com (Tim Rentsch)
Groupes : comp.lang.cDate : 10. Apr 2024, 17:03:43
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <86plux19y8.fsf@linuxsc.com>
References : 1 2 3 4 5
User-Agent : Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Blue-Maned_Hawk <
bluemanedhawk@invalid.invalid> writes:
[request for example]
MAKE_LISTENER(wl_registry, global, global_remove);
>
?
>
static const struct wl_registry_listener wl_registry_listener = {
.global = callback_wl_registry_global,
.global_remove = callback_wl_registry_global_remove
};
>
?
>
MAKE_LISTENER(xdg_wm_base, configure, close, configure_bounds,
wm_capabilities);
>
?
>
static const struct xdg_wm_base_listener xdg_wm_base_listener = {
.configure = callback_xdg_wm_base_configure,
.close = callback_xdg_wm_base_close,
.configure_bounds = callback_xdg_wm_base_configure_bounds,
.wm_capabilities = callback_xdg_wm_base_wm_capabilities
};
I think it isn't too hard to write a macro to do what you
want. I'm pretty sure it's possible to define such a macro
using the P99 macros to do the iteration, but I don't see
an easy way to do it. If I were in need of such a macro,
probably I would ignore the P99 macros and just build a
simpler solution that works for the task at hand.