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 35 */
36 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 43 /* Evaluates to True if the version is greater than @major, @minor and @micro
44 44 */
... ...
tests/version.c
... ... @@ -9,7 +9,7 @@
9 9  
10 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 13 printf("Linked with libmodbus version %d.%d.%d\n",
14 14 libmodbus_version_major, libmodbus_version_minor, libmodbus_version_micro);
15 15  
... ...