GNOME Bugzilla – Bug 326846
expose goption parsing hook in GnomeModuleInfo?
Last modified: 2006-01-17 00:25:31 UTC
With bug 307312 and bug 326237, we now make use of the "gpointer expansion1" expansion slot in the GnomeModuleInfo structure. It is however not used as a gpointer, but as a function pointer of type GOptionGroup *(*func)(void). The question is now if we should instead typedef GOptionGroup * (* GnomeModuleGetOptionGroupFunc) (void); and replace gpointer expansion1; with GnomeModuleGetOptionGroupFunc get_option_group; in the GnomeModuleInfo structure. I think this does not change the struct size and should therefore not be ABI-incompatible; and the API change doesn't matter since the expansion1 slot was reserved before.
We need to decide this before API freeze.
I think this should probably be asked on d-d-l instead to be sure that the right people to comment are reached.
http://mail.gnome.org/archives/desktop-devel-list/2006-January/msg00232.html
Patches for this bug, including the patch from bug 317545: http://www.gnome.org/~chpe/patches/326846-libgnome.diff http://www.gnome.org/~chpe/patches/326846-libbonoboui.diff http://www.gnome.org/~chpe/patches/326846-libgnomeui.diff
it surely does not break the ABI (we use this very same method elsewhere). It breaks the API, but is like an addition, since the gpointer was reserved for future expansion. I've applied all three patches, with a slight change in libgnome - I've removed the conditional inclusion of popt.h, otherwise we broke every user of gnome-program.h that didn't include popt.h itself *before* any libgnome header.