diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2014-10-25 16:39:39 +0300 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2014-10-25 16:39:39 +0300 |
commit | b03cd1ea5329a0e7e2e435de827108c7d00265b5 (patch) | |
tree | deb501d382434c7ac556e3fc125f4ea730ca8a44 /lib | |
parent | 92b9044da84f524dcbfae7eef4092b6240986a27 (diff) | |
download | bemenu-b03cd1ea5329a0e7e2e435de827108c7d00265b5.tar.gz bemenu-b03cd1ea5329a0e7e2e435de827108c7d00265b5.tar.bz2 bemenu-b03cd1ea5329a0e7e2e435de827108c7d00265b5.zip |
Use BM_PLUGIN_VERSION for renderers.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/internal.h | 2 | ||||
-rw-r--r-- | lib/library.c | 12 | ||||
-rw-r--r-- | lib/renderers/curses/curses.c | 2 | ||||
-rw-r--r-- | lib/renderers/wayland/wayland.c | 2 | ||||
-rw-r--r-- | lib/version.h.in | 1 |
5 files changed, 12 insertions, 7 deletions
diff --git a/lib/internal.h b/lib/internal.h index fe392a1..6613cef 100644 --- a/lib/internal.h +++ b/lib/internal.h @@ -73,7 +73,7 @@ struct render_api { /** * Version of the plugin. - * Should match BM_VERSION or failure. + * Should match BM_PLUGIN_VERSION or failure. */ const char *version; diff --git a/lib/library.c b/lib/library.c index c7f5e60..7fca099 100644 --- a/lib/library.c +++ b/lib/library.c @@ -34,24 +34,28 @@ load(const char *file, struct bm_renderer *renderer) const char* (*regfun)(struct render_api*); if (!(regfun = chckDlLoadSymbol(handle, "register_renderer", &error))) - goto fail; + goto load_fail; const char *name; if (!(name = regfun(&renderer->api))) goto fail; - if (strcmp(renderer->api.version, BM_VERSION)) - goto fail; + if (strcmp(renderer->api.version, BM_PLUGIN_VERSION)) + goto mismatch_fail; renderer->handle = handle; renderer->name = bm_strdup(name); renderer->file = bm_strdup(file); return true; +load_fail: + fprintf(stderr, "%s\n", error); + goto fail; +mismatch_fail: + fprintf(stderr, "%s: version mismatch (%s != %s)\n", name, renderer->api.version, BM_PLUGIN_VERSION); fail: if (handle) chckDlUnload(handle); - fprintf(stderr, "%s\n", error); return false; } diff --git a/lib/renderers/curses/curses.c b/lib/renderers/curses/curses.c index 42212b6..c40e833 100644 --- a/lib/renderers/curses/curses.c +++ b/lib/renderers/curses/curses.c @@ -343,7 +343,7 @@ register_renderer(struct render_api *api) api->poll_key = poll_key; api->render = render; api->prioritory = BM_PRIO_TERMINAL; - api->version = BM_VERSION; + api->version = BM_PLUGIN_VERSION; return "curses"; } diff --git a/lib/renderers/wayland/wayland.c b/lib/renderers/wayland/wayland.c index 289fa5a..0d5fcde 100644 --- a/lib/renderers/wayland/wayland.c +++ b/lib/renderers/wayland/wayland.c @@ -144,7 +144,7 @@ register_renderer(struct render_api *api) api->poll_key = poll_key; api->render = render; api->prioritory = BM_PRIO_GUI; - api->version = BM_VERSION; + api->version = BM_PLUGIN_VERSION; return "wayland"; } diff --git a/lib/version.h.in b/lib/version.h.in index ad82a1a..a6b287c 100644 --- a/lib/version.h.in +++ b/lib/version.h.in @@ -1,4 +1,5 @@ #define INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" #define BM_VERSION "@BEMENU_VERSION@" +#define BM_PLUGIN_VERSION "@BEMENU_VERSION@-@GIT_SHA1@" /* vim: set ts=8 sw=4 tw=0 :*/ |