# HG changeset patch # User etisserant # Date 1185969014 -7200 # Node ID 3d24cc85bb3ce2b06b3ec0679a28319b9379ac1b # Parent 017efb738d952f5ae280463d6a08d7f995f313a7 Fixed some problems win 32 bits GCC and Long Long literals diff -r 017efb738d95 -r 3d24cc85bb3c lib/iec_std_lib.h --- a/lib/iec_std_lib.h Thu Jul 26 17:18:36 2007 +0200 +++ b/lib/iec_std_lib.h Wed Aug 01 13:50:14 2007 +0200 @@ -676,23 +676,25 @@ return res; } /* BCD */ +#define __bcd_digit(fac) static inline ULINT __bcd_to_uint(LWORD IN){ return IN & 0xf + - ((IN >>= 4) & 0xf) * 10 + - ((IN >>= 4) & 0xf) * 100 + - ((IN >>= 4) & 0xf) * 1000 + - ((IN >>= 4) & 0xf) * 10000 + - ((IN >>= 4) & 0xf) * 100000 + - ((IN >>= 4) & 0xf) * 1000000 + - ((IN >>= 4) & 0xf) * 10000000 + - ((IN >>= 4) & 0xf) * 100000000 + - ((IN >>= 4) & 0xf) * 1000000000 + - ((IN >>= 4) & 0xf) * 10000000000 + - ((IN >>= 4) & 0xf) * 100000000000 + - ((IN >>= 4) & 0xf) * 1000000000000 + - ((IN >>= 4) & 0xf) * 10000000000000 + - ((IN >>= 4) & 0xf) * 100000000000000 + - ((IN >>= 4) & 0xf) * 1000000000000000; + !(IN >>= 4) ? 0 : IN & 0xf * 10ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 100ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 1000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 10000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 100000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 1000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 10000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 100000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 1000000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 10000000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 100000000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 1000000000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 10000000000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 100000000000000ULL + + !(IN >>= 4) ? 0 : IN & 0xf * 1000000000000000ULL; + } static inline LWORD __uint_to_bcd(ULINT IN){ return (IN - (IN /= 10))|