--- libaitio/inc/aitio.h 2012/03/29 09:37:19 1.16.2.1 +++ libaitio/inc/aitio.h 2012/03/29 12:23:00 1.16.2.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.h,v 1.16.2.1 2012/03/29 09:37:19 misho Exp $ +* $Id: aitio.h,v 1.16.2.2 2012/03/29 12:23:00 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -122,7 +122,7 @@ typedef struct { #define AIT_BLOB_CHUNKS(_vl, _n) (assert((_vl)), AIT_LEN((_vl)) / _n + (AIT_LEN((_vl)) % _n) ? 1 : 0) #define AIT_ISEMPTY(_vl) (assert((_vl)), AIT_TYPE((_vl)) == empty) -#define AIT_GET_LIKE(_vl, _type) (assert((_vl)), (_type) (_vl)->val.ptr) +#define AIT_GET_LIKE(_vl, _type) ((_type) ((_vl) ? (_vl)->val.ptr : NULL)) #define AIT_GET_PTR(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == ptr), (_vl)->val.ptr) #define AIT_GET_DATA(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == data), (_vl)->val_data) @@ -376,7 +376,7 @@ inline int io_clrVars(array_t * __restrict vars); */ inline void io_freeVars(array_t ** __restrict vars); /* - * io_sortVars() - Sorting array with variables + * io_sortVars() Sorting array with variables * * @vars = Variable array * @order = Sort order. If =0 ascend ot !=0 descend @@ -385,6 +385,14 @@ inline void io_freeVars(array_t ** __restrict vars); */ inline void io_sortVars(array_t * __restrict vars, int order, int (*cmp)(const void*, const void*)); +/* + * io_findKeyVars() Find variable by key from array + * + * @vars = Variables + * @key = Search key + * return: NULL error or not found, !=NULL valid element + */ +ait_val_t *io_findKeyVars(array_t * __restrict vars, u_short key); /*