--- libaitio/inc/aitio.h 2011/05/03 15:41:00 1.9 +++ libaitio/inc/aitio.h 2011/05/19 02:22:46 1.9.2.3 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.h,v 1.9 2011/05/03 15:41:00 misho Exp $ +* $Id: aitio.h,v 1.9.2.3 2011/05/19 02:22:46 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -219,13 +219,13 @@ inline char *io_Hex2Ch(unsigned char *psLine, int line */ inline array_t *io_arrayInit(int numItems); /* - * io_arrayDestroy() - Free all data in dynamic array and Destroy dynamic array + * io_arrayDestroy() - Free and destroy dynamic array * @parr = Array * return: none */ inline void io_arrayDestroy(array_t ** __restrict parr); /* - * io_arrayFree() - Free all data in dynamic array + * io_arrayFree() - Free all data in dynamic array items * (WARNING! If assign static array dont use this!!!) * @arr = Array * return: none @@ -238,6 +238,13 @@ inline void io_arrayFree(array_t * __restrict arr); */ inline int io_arrayLen(array_t * __restrict arr); /* + * io_arrayConcat() Concat source array to destination array + * @dest = Destination array + * @src = Source array + * return: -1 error; >0 new count of destination array + */ +int io_arrayConcat(array_t * __restrict dest, array_t * __restrict src); +/* * io_arrayGrow() - Grow/Shrink dynamic array, Use with care when it shrink!!! * @arr = Array * @newNumItems = Number of Items @@ -366,6 +373,26 @@ void *io_sarrGet2(sarr_t * __restrict arr, unsigned in inline void *io_sarrSet(sarr_t * __restrict arr, unsigned int idx, void *data); #define io_sarrDel(_arr, _idx) io_sarrSet(_arr, _idx, NULL) #define io_sarr(_arr, _idx, _type) (_type)io_sarrGet(_arr, _idx) + +/* + * io_CopyEnv() Copy environment to new environment array; + * @oldenv = Environment array + * return: NULL error; !=NULL Allocated new environment array(must be free) +*/ +char **io_CopyEnv(const char **oldenv); +/* + * io_ExecArgs() Build exec arguments from other array + * @psProg = Program name for execute + * @oldarg = Arguments array + * return: NULL error; !=NULL Allocated execution array(must be free) +*/ +char **io_ExecArgs(const char *psProg, const char **oldarg); +/* + * io_FreeNullTerm() Free dynamic allocated null terminated array with strings + * @arr = Pointer to array for free + * return: none +*/ +inline void io_FreeNullTerm(char *** __restrict arr); /* * ioURLGet() Parse and get data from input URL