--- libaitio/inc/aitio.h 2011/05/19 02:22:46 1.9.2.3 +++ libaitio/inc/aitio.h 2011/08/25 13:50:16 1.10.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.h,v 1.9.2.3 2011/05/19 02:22:46 misho Exp $ +* $Id: aitio.h,v 1.10.2.1 2011/08/25 13:50:16 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -232,6 +232,19 @@ inline void io_arrayDestroy(array_t ** __restrict parr */ inline void io_arrayFree(array_t * __restrict arr); /* + * io_arrayFrom() - Create and fill array from array with pointers + * @pargv = Array with pointers + * @argc = Number of Items, if 0 walk through argv and stop when reach NULL item + * return: NULL error, != NULL allocated new array + */ +inline array_t *io_arrayFrom(const char *** __restrict pargv, int argc); +/* + * io_arrayTo() - Create and fill array with pointers from dynamic array + * @arr = Array + * return: NULL error, != NULL allocated memory for array, NULL terminated + */ +inline char **io_arrayTo(array_t * __restrict arr); +/* * io_arrayLen() - Get last used element in dynamic array (array Length) * @arr = Array * return: -1 error, 0 empty or >0 position of last used element @@ -267,8 +280,10 @@ int io_arrayVacuum(array_t * __restrict arr, int fromW assert(_arr && _arr->arr_num > _d); \ *(_arr->arr_data + _d) = (void*) _ptr; \ } while (0) -#define io_arrayDel(_arr, _d) do { \ +#define io_arrayDel(_arr, _d, _fri) do { \ assert(_arr && _arr->arr_num > _d); \ + if (_fri) \ + free(*(_arr->arr_data + _d)); \ *(_arr->arr_data + _d) = NULL; \ } while (0) @@ -282,7 +297,7 @@ inline int io_arrayPush(array_t * __restrict arr, void /* * io_arrayPop() - Pop element from dynamic array like stack manner, last used position * @arr = Array - * @data = Element, if set NULL return only first empty position + * @data = Element, if set NULL return only last used position * @delAfter = Delete after Pop element, !=0 delete element from array after return data * return: -1 not found used position, array is empty!, >-1 return element position */