mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-28 21:26:01 +01:00
Display plugin version in debug mode.
This commit is contained in:
parent
eec5f61926
commit
1e1b55de57
3 changed files with 27 additions and 11 deletions
10
plugin-api.h
10
plugin-api.h
|
@ -45,11 +45,11 @@ void zathura_plugin_add_mimetype(zathura_plugin_t* plugin, const char* mime_type
|
|||
* @param mimetypes a char array of mime types supported by the plugin
|
||||
*/
|
||||
#define ZATHURA_PLUGIN_REGISTER(plugin_name, major, minor, rev, register_functions, mimetypes) \
|
||||
unsigned int zathura_plugin_version_major() { return major; } \
|
||||
unsigned int zathura_plugin_version_minor() { return minor; } \
|
||||
unsigned int zathura_plugin_version_revision() { return rev; } \
|
||||
unsigned int zathura_plugin_api_version() { return ZATHURA_API_VERSION; } \
|
||||
unsigned int zathura_plugin_abi_version() { return ZATHURA_ABI_VERSION; } \
|
||||
unsigned int zathura_plugin_version_major(void) { return major; } \
|
||||
unsigned int zathura_plugin_version_minor(void) { return minor; } \
|
||||
unsigned int zathura_plugin_version_revision(void) { return rev; } \
|
||||
unsigned int zathura_plugin_api_version(void) { return ZATHURA_API_VERSION; } \
|
||||
unsigned int zathura_plugin_abi_version(void) { return ZATHURA_ABI_VERSION; } \
|
||||
\
|
||||
void zathura_plugin_register(zathura_plugin_t* plugin) \
|
||||
{ \
|
||||
|
|
19
plugin.c
19
plugin.c
|
@ -11,6 +11,8 @@
|
|||
#include <girara/session.h>
|
||||
#include <girara/settings.h>
|
||||
|
||||
typedef unsigned int (*zathura_plugin_version_t)(void);
|
||||
|
||||
/**
|
||||
* Plugin manager
|
||||
*/
|
||||
|
@ -92,7 +94,8 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
|
|||
|
||||
/* resolve symbols and check API and ABI version*/
|
||||
zathura_plugin_api_version_t api_version = NULL;
|
||||
if (g_module_symbol(handle, PLUGIN_API_VERSION_FUNCTION, (gpointer*) &api_version) == FALSE || !api_version)
|
||||
if (g_module_symbol(handle, PLUGIN_API_VERSION_FUNCTION, (gpointer*) &api_version) == FALSE ||
|
||||
api_version == NULL)
|
||||
{
|
||||
girara_error("could not find '%s' function in plugin %s", PLUGIN_API_VERSION_FUNCTION, path);
|
||||
g_free(path);
|
||||
|
@ -109,7 +112,8 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
|
|||
}
|
||||
|
||||
zathura_plugin_abi_version_t abi_version = NULL;
|
||||
if (g_module_symbol(handle, PLUGIN_ABI_VERSION_FUNCTION, (gpointer*) &abi_version) == FALSE || !abi_version)
|
||||
if (g_module_symbol(handle, PLUGIN_ABI_VERSION_FUNCTION, (gpointer*) &abi_version) == FALSE ||
|
||||
abi_version == NULL)
|
||||
{
|
||||
girara_error("could not find '%s' function in plugin %s", PLUGIN_ABI_VERSION_FUNCTION, path);
|
||||
g_free(path);
|
||||
|
@ -126,7 +130,8 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
|
|||
}
|
||||
|
||||
zathura_plugin_register_service_t register_service = NULL;
|
||||
if (g_module_symbol(handle, PLUGIN_REGISTER_FUNCTION, (gpointer*) ®ister_service) == FALSE || !register_service)
|
||||
if (g_module_symbol(handle, PLUGIN_REGISTER_FUNCTION, (gpointer*) ®ister_service) == FALSE ||
|
||||
register_service == NULL)
|
||||
{
|
||||
girara_error("could not find '%s' function in plugin %s", PLUGIN_REGISTER_FUNCTION, path);
|
||||
g_free(path);
|
||||
|
@ -156,6 +161,14 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
|
|||
zathura_plugin_free(plugin);
|
||||
} else {
|
||||
girara_info("successfully loaded plugin %s", path);
|
||||
|
||||
zathura_plugin_version_t major = NULL, minor = NULL, rev = NULL;
|
||||
g_module_symbol(handle, PLUGIN_VERSION_MAJOR_FUNCTION, (gpointer*) &major);
|
||||
g_module_symbol(handle, PLUGIN_VERSION_MINOR_FUNCTION, (gpointer*) &minor);
|
||||
g_module_symbol(handle, PLUGIN_VERSION_REVISION_FUNCTION, (gpointer*) &rev);
|
||||
if (major != NULL && minor != NULL && rev != NULL) {
|
||||
girara_debug("plugin '%s': version %u.%u.%u", path, major(), minor(), rev());
|
||||
}
|
||||
}
|
||||
|
||||
g_free(path);
|
||||
|
|
9
plugin.h
9
plugin.h
|
@ -11,9 +11,12 @@
|
|||
#include "version.h"
|
||||
#include "zathura.h"
|
||||
|
||||
#define PLUGIN_REGISTER_FUNCTION "zathura_plugin_register"
|
||||
#define PLUGIN_API_VERSION_FUNCTION "zathura_plugin_api_version"
|
||||
#define PLUGIN_ABI_VERSION_FUNCTION "zathura_plugin_abi_version"
|
||||
#define PLUGIN_REGISTER_FUNCTION "zathura_plugin_register"
|
||||
#define PLUGIN_API_VERSION_FUNCTION "zathura_plugin_api_version"
|
||||
#define PLUGIN_ABI_VERSION_FUNCTION "zathura_plugin_abi_version"
|
||||
#define PLUGIN_VERSION_MAJOR_FUNCTION "zathura_plugin_version_major"
|
||||
#define PLUGIN_VERSION_MINOR_FUNCTION "zathura_plugin_version_minor"
|
||||
#define PLUGIN_VERSION_REVISION_FUNCTION "zathura_plugin_version_revision"
|
||||
|
||||
/**
|
||||
* Document plugin structure
|
||||
|
|
Loading…
Reference in a new issue