diff --git a/src/libdivecomputer.symbols b/src/libdivecomputer.symbols index f6aa360..ac66f6d 100644 --- a/src/libdivecomputer.symbols +++ b/src/libdivecomputer.symbols @@ -1,4 +1,5 @@ dc_version +dc_version_check dc_buffer_new dc_buffer_free diff --git a/src/version.c b/src/version.c index 34bb111..452a470 100644 --- a/src/version.c +++ b/src/version.c @@ -33,3 +33,9 @@ dc_version (dc_version_t *version) return DC_VERSION; } + +int +dc_version_check (unsigned int major, unsigned int minor, unsigned int micro) +{ + return DC_VERSION_CHECK (major,minor,micro); +} diff --git a/src/version.h.in b/src/version.h.in index eab9543..48d96fe 100644 --- a/src/version.h.in +++ b/src/version.h.in @@ -32,6 +32,12 @@ extern "C" { #define DC_VERSION_MICRO @DC_VERSION_MICRO@ #define DC_VERSION_EXTRA "@DC_VERSION_EXTRA@" +#define DC_VERSION_CHECK(major,minor,micro) \ + (DC_VERSION_MAJOR > (major) || \ + (DC_VERSION_MAJOR == (major) && DC_VERSION_MINOR > (minor)) || \ + (DC_VERSION_MAJOR == (major) && DC_VERSION_MINOR == (minor) && \ + DC_VERSION_MICRO >= (micro))) + typedef struct dc_version_t { unsigned int major; unsigned int minor; @@ -42,6 +48,9 @@ typedef struct dc_version_t { const char * dc_version (dc_version_t *version); +int +dc_version_check (unsigned int major, unsigned int minor, unsigned int micro); + #ifdef __cplusplus } #endif /* __cplusplus */