--- libaitio/inc/aitio.h 2012/07/31 16:42:38 1.22.2.16 +++ libaitio/inc/aitio.h 2012/08/01 09:37:20 1.23.2.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.h,v 1.22.2.16 2012/07/31 16:42:38 misho Exp $ +* $Id: aitio.h,v 1.23.2.2 2012/08/01 09:37:20 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -50,6 +50,7 @@ SUCH DAMAGE. #define COMPAT_43TTY #include +#include #include #include #include @@ -310,26 +311,26 @@ typedef struct { __val->val_type = f64; __val->val.f64 = _n; \ AIT_LEN(__val) = sizeof(double); } while (0) -#define AIT_COPY_VAL(_vl, _v) do { ait_val_t *__val = (_vl); assert(__val); \ - memcpy(__val, (_v), sizeof(ait_val_t)); \ - switch (AIT_TYPE(__val)) { \ +#define AIT_COPY_VAL(_vl, _v) do { assert((_vl)); assert((_v)); \ + memcpy((_vl), (_v), sizeof(ait_val_t)); \ + switch (AIT_TYPE((_vl))) { \ case buffer: \ - AIT_SET_BUF(__val, \ + AIT_SET_BUF((_vl), \ AIT_GET_BUF((_v)), \ AIT_LEN((_v))); \ break; \ case string: \ - AIT_SET_STR(__val, \ + AIT_SET_STR((_vl), \ AIT_GET_STR((_v))); \ break; \ - case data: \ - AIT_SET_DATA(__val, \ - AIT_GET_DATA((_v)), \ - AIT_LEN((_v))); \ - break; \ default: \ break; \ } \ + } while (0) +#define AIT_COPY_DATA(_vl, _v) do { AIT_COPY_VAL((_vl), (_v)); \ + if (AIT_TYPE((_vl)) == data) \ + AIT_SET_DATA((_vl), AIT_GET_DATA((_v)), \ + AIT_LEN((_v))); \ } while (0) #define AIT_INIT_VAL(_vl) (memset((_vl), 0, sizeof(ait_val_t)))