Commit 75543b212ec7419a2ecb873b688df6f4d4f8bc43

Authored by Giovanni Frigo
Committed by Stéphane Raimbault
1 parent 00e068eb

Fix LIBMODBUS_VERSION_HEX encoding (closes #345)

The result of LIBMODBUS_VERSION_HEX is left-shifted by an extra
factor of 8 bits.

For example, current implementation for version 1.2.3 would be
encoded like 0x01020300 instead of 0x010203.
src/modbus-version.h.in
@@ -35,10 +35,10 @@ @@ -35,10 +35,10 @@
35 */ 35 */
36 #define LIBMODBUS_VERSION_STRING "@LIBMODBUS_VERSION@" 36 #define LIBMODBUS_VERSION_STRING "@LIBMODBUS_VERSION@"
37 37
38 -/* Numerically encoded version, like 0x010203 */  
39 -#define LIBMODBUS_VERSION_HEX ((LIBMODBUS_VERSION_MAJOR << 24) | \  
40 - (LIBMODBUS_VERSION_MINOR << 16) | \  
41 - (LIBMODBUS_VERSION_MICRO << 8)) 38 +/* Numerically encoded version, eg. v1.2.3 is 0x010203 */
  39 +#define LIBMODBUS_VERSION_HEX ((LIBMODBUS_VERSION_MAJOR << 16) | \
  40 + (LIBMODBUS_VERSION_MINOR << 8) | \
  41 + (LIBMODBUS_VERSION_MICRO << 0))
42 42
43 /* Evaluates to True if the version is greater than @major, @minor and @micro 43 /* Evaluates to True if the version is greater than @major, @minor and @micro
44 */ 44 */
tests/version.c
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 9
10 int main(void) 10 int main(void)
11 { 11 {
12 - printf("Compiled with libmodbus version %s (%08X)\n", LIBMODBUS_VERSION_STRING, LIBMODBUS_VERSION_HEX); 12 + printf("Compiled with libmodbus version %s (%06X)\n", LIBMODBUS_VERSION_STRING, LIBMODBUS_VERSION_HEX);
13 printf("Linked with libmodbus version %d.%d.%d\n", 13 printf("Linked with libmodbus version %d.%d.%d\n",
14 libmodbus_version_major, libmodbus_version_minor, libmodbus_version_micro); 14 libmodbus_version_major, libmodbus_version_minor, libmodbus_version_micro);
15 15