diff options
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 :*/  | 
