diff --git a/src/common_define.h b/src/common_define.h index 7dea6ed..69d2a4d 100644 --- a/src/common_define.h +++ b/src/common_define.h @@ -372,6 +372,16 @@ typedef void* (*MallocFunc)(size_t size); #define FC_SET_CHAIN_TAIL_NEXT(chain, type, ptr) \ ((type *)(chain).tail)->next = ptr +#define FC_VERSION_TO_INT(major, minor, patch) \ + (major * 1000 * 1000 + minor * 1000 + patch) + +#define FC_VERSION_TO_INT1(version) \ + FC_VERSION_TO_INT((version).major, \ + (version).minor, (version).patch) + +#define FC_COMPARE_INT_VERSIONS_TO_OPERATOR_STR(v1, v2) \ + (v1 < v2 ? "<" : (v1 == v2 ? "==" : ">")) + #ifdef WIN32 #define strcasecmp _stricmp #endif diff --git a/src/fc_version.c b/src/fc_version.c index 676e570..143e043 100644 --- a/src/fc_version.c +++ b/src/fc_version.c @@ -15,9 +15,10 @@ #include "fc_version.h" -void fc_version(Version *version) +int fc_version(Version *version) { version->major = FC_MAJOR_VERSION; version->minor = FC_MINOR_VERSION; version->patch = FC_PATCH_VERSION; + return FC_VERSION_TO_INT1(*version); } diff --git a/src/fc_version.h b/src/fc_version.h index 87bdec5..8549ef5 100644 --- a/src/fc_version.h +++ b/src/fc_version.h @@ -24,11 +24,14 @@ #define FC_MINOR_VERSION 0 #define FC_PATCH_VERSION 85 +#define FC_VERSION_INT FC_VERSION_TO_INT(FC_MAJOR_VERSION, \ + FC_MINOR_VERSION, FC_PATCH_VERSION) + #ifdef __cplusplus extern "C" { #endif - void fc_version(Version *version); + int fc_version(Version *version); #ifdef __cplusplus }