Branch: refs/heads/master Author: Thomas Martitz kugel@rockbox.org Committer: Thomas Martitz kugel@rockbox.org Date: Fri, 24 Feb 2017 15:24:16 UTC Commit: 7b091809db5d03d6373e39183bd796a8b485e709 https://github.com/geany/geany/commit/7b091809db5d03d6373e39183bd796a8b485e7...
Log Message: ----------- api: new function geany_api_version
This allows plugins to detect the API version of Geany at runtime. This enables soft dependencies based on Geany's API version, perhaps using a new feature with a fallback for older API versions. Previously the only alternatives were hard-depending on a more recent Geany version or ignoring new features.
Modified Paths: -------------- src/plugindata.h src/pluginutils.c src/pluginutils.h
Modified: src/plugindata.h 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -59,7 +59,7 @@ G_BEGIN_DECLS * @warning You should not test for values below 200 as previously * @c GEANY_API_VERSION was defined as an enum value, not a macro. */ -#define GEANY_API_VERSION 230 +#define GEANY_API_VERSION 231
/* hack to have a different ABI when built with GTK3 because loading GTK2-linked plugins * with GTK3-linked Geany leads to crash */
Modified: src/pluginutils.c 16 lines changed, 16 insertions(+), 0 deletions(-) =================================================================== @@ -52,6 +52,22 @@ typedef struct PluginDocDataProxy;
+/** Returns the runtime API version Geany was compiled with. + * + * Unlike @ref GEANY_API_VERSION this version is the value of that + * define at the time when Geany itself was compiled. This allows to + * establish soft dependencies which are resolved at runtime depending + * on Geany's API version. + * + * @return Geany's API version + * @since 1.30 (API 231) + **/ +GEANY_API_SYMBOL +gint geany_api_version(void) +{ + return GEANY_API_VERSION; +} + /** Inserts a toolbar item before the Quit button, or after the previous plugin toolbar item. * A separator is added on the first call to this function, and will be shown when @a item is * shown; hidden when @a item is hidden.
Modified: src/pluginutils.h 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -35,6 +35,7 @@ G_BEGIN_DECLS struct GeanyPlugin; struct GeanyDocument;
+gint geany_api_version(void);
void plugin_add_toolbar_item(struct GeanyPlugin *plugin, GtkToolItem *item);
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).