| version 1.10, 2016/05/18 12:47:42 | version 1.10.42.2, 2019/08/16 15:29:51 | 
| Line 12  terms: | Line 12  terms: | 
 | All of the documentation and software included in the ELWIX and AITNET | All of the documentation and software included in the ELWIX and AITNET | 
 | Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> | Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> | 
 |  |  | 
| Copyright 2004 - 2015 | Copyright 2004 - 2019 | 
 | by Michael Pounov <misho@elwix.org>.  All rights reserved. | by Michael Pounov <misho@elwix.org>.  All rights reserved. | 
 |  |  | 
 | Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | 
| Line 304  typedef struct __packed { | Line 304  typedef struct __packed { | 
 | AIT_SET_STR((_vl), \ | AIT_SET_STR((_vl), \ | 
 | AIT_GET_STR((_v))); \ | AIT_GET_STR((_v))); \ | 
 | break; \ | break; \ | 
 |  | case data: \ | 
 |  | AIT_SET_DATA((_vl), \ | 
 |  | AIT_GET_DATA((_v)), \ | 
 |  | AIT_LEN((_v))); \ | 
 |  | break; \ | 
 | default: \ | default: \ | 
 | break; \ | break; \ | 
 | } \ | } \ | 
 | } while (0) | } 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_VAL_INITIALIZER(_vl)        { .val_type = empty, { .val_opt = 0 }, \ | #define AIT_VAL_INITIALIZER(_vl)        { .val_type = empty, { .val_opt = 0 }, \ | 
 | .val_key = 0, .val_len = 0, \ | .val_key = 0, .val_len = 0, \ | 
| Line 331  typedef struct __packed { | Line 331  typedef struct __packed { | 
 | if (!__val->val_in && \ | if (!__val->val_in && \ | 
 | __val->val.buffer) \ | __val->val.buffer) \ | 
 | e_free(__val->val.buffer); \ | e_free(__val->val.buffer); \ | 
 | __val->val.buffer = NULL; \ |  | 
 | break; \ | break; \ | 
 | case string: \ | case string: \ | 
 | if (!__val->val_in && \ | if (!__val->val_in && \ | 
 | __val->val.string) \ | __val->val.string) \ | 
 | e_free(__val->val.string); \ | e_free(__val->val.string); \ | 
 | __val->val.string = NULL; \ |  | 
 | break; \ | break; \ | 
 |  | case data: \ | 
 |  | if (!__val->val_in) \ | 
 |  | memset(__val->val_data, 0, \ | 
 |  | AIT_LEN(__val)); \ | 
 |  | break; \ | 
 | default: \ | default: \ | 
 | break; \ | break; \ | 
 | } \ | } \ | 
 | __val->val_type = empty; \ | __val->val_type = empty; \ | 
 | __val->val_opt ^= __val->val_opt; \ | __val->val_opt ^= __val->val_opt; \ | 
 |  | __val->val.net ^= __val->val.net; \ | 
 | AIT_LEN(__val) = 0; \ | AIT_LEN(__val) = 0; \ | 
 | AIT_KEY(__val) = 0; \ | AIT_KEY(__val) = 0; \ | 
 | } while (0) | } while (0) |