Diff for /libaitio/src/Attic/tools.c between versions 1.4 and 1.5

version 1.4, 2011/04/20 22:56:32 version 1.5, 2011/06/07 11:49:39
Line 52  SUCH DAMAGE. Line 52  SUCH DAMAGE.
  * @psLine = Text string   * @psLine = Text string
  * return: 0 nothing to do; !=0 Removed bytes   * return: 0 nothing to do; !=0 Removed bytes
 */  */
inline int io_LTrimStr(u_char * __restrict psLine)inline int
 io_LTrimStr(u_char * __restrict psLine)
 {  {
         int pos = 0;          int pos = 0;
         u_char *s;          u_char *s;
Line 72  inline int io_LTrimStr(u_char * __restrict psLine) Line 73  inline int io_LTrimStr(u_char * __restrict psLine)
  * @psLine = Text string   * @psLine = Text string
  * return: 0 nothing to do; !=0 Removed bytes   * return: 0 nothing to do; !=0 Removed bytes
 */  */
inline int io_RTrimStr(u_char * __restrict psLine)inline int
 io_RTrimStr(u_char * __restrict psLine)
 {  {
         u_char *t, *pos;          u_char *t, *pos;
   
Line 91  inline int io_RTrimStr(u_char * __restrict psLine) Line 93  inline int io_RTrimStr(u_char * __restrict psLine)
  * @psLine = Text string   * @psLine = Text string
  * return: 0 nothing to do; !=0 Removed bytes   * return: 0 nothing to do; !=0 Removed bytes
 */  */
inline int io_TrimStr(u_char * __restrict psLine)inline int
 io_TrimStr(u_char * __restrict psLine)
 {  {
         int ret = 0;          int ret = 0;
   
Line 106  inline int io_TrimStr(u_char * __restrict psLine) Line 109  inline int io_TrimStr(u_char * __restrict psLine)
  * @psLine = Text string   * @psLine = Text string
  * return: 0 nothing to do; 1 successful unquoted string   * return: 0 nothing to do; 1 successful unquoted string
 */  */
inline int io_UnquotStr(u_char * __restrict psLine)inline int
 io_UnquotStr(u_char * __restrict psLine)
 {  {
         char *pos, *str = NULL;          char *pos, *str = NULL;
         int flg;          int flg;
Line 139  inline int io_UnquotStr(u_char * __restrict psLine) Line 143  inline int io_UnquotStr(u_char * __restrict psLine)
  * @lineLen = Length of Text string   * @lineLen = Length of Text string
  * return: NULL nothing to do or error; !=0 Allocated new converted data without term\0 (must be free)   * return: NULL nothing to do or error; !=0 Allocated new converted data without term\0 (must be free)
 */  */
inline u_char *io_Ch2Hex(u_char *psLine, int lineLen)inline u_char *
 io_Ch2Hex(u_char *psLine, int lineLen)
 {  {
         register int i;          register int i;
         char szWork[3];          char szWork[3];
Line 170  inline u_char *io_Ch2Hex(u_char *psLine, int lineLen) Line 175  inline u_char *io_Ch2Hex(u_char *psLine, int lineLen)
  * @lineLen = Length of Text string   * @lineLen = Length of Text string
  * return: NULL nothing to do or error; !=0 Allocated new converted string(must be free)   * return: NULL nothing to do or error; !=0 Allocated new converted string(must be free)
 */  */
inline char *io_Hex2Ch(u_char *psLine, int lineLen)inline char *
 io_Hex2Ch(u_char *psLine, int lineLen)
 {  {
         register int i;          register int i;
         char szWork[3], *str;          char szWork[3], *str;
Line 192  inline char *io_Hex2Ch(u_char *psLine, int lineLen) Line 198  inline char *io_Hex2Ch(u_char *psLine, int lineLen)
         }          }
   
         return str;          return str;
   }
   
   /*
    * 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)
   {
           char **newenv, **el;
           register int i, num;
   
           if (!oldenv)
                   return NULL;
           else
                   newenv = el = NULL;
   
           /* count items environment */
           for (i = num = 0; oldenv[i]; i++)
                   if (*strchr(oldenv[i], '='))
                           num++;
   
           /* create and copy new environment */
           newenv = calloc(num + 1, sizeof(char*));
           if (!newenv) {
                   LOGERR;
                   return NULL;
           } else
                   el = newenv;
   
           for (i = 0; oldenv[i]; i++)
                   if (*strchr(oldenv[i], '=')) {
                           *el = strdup(oldenv[i]);
                           el++;
                   }
           *el = NULL;
   
           return newenv;
   }
   
   /*
    * 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)
   {
           char **newarg, **el;
           register int i, num;
   
           if (!psProg || !oldarg)
                   return NULL;
           else
                   newarg = el = NULL;
   
           /* count items arguments */
           for (num = 0; oldarg[num]; num++);
   
           /* create and copy new arguments */
           newarg = calloc(num + 2, sizeof(char*));
           if (!newarg) {
                   LOGERR;
                   return NULL;
           } else
                   el = newarg;
   
           *el = strdup(psProg);
           el++;
   
           for (i = 0; oldarg[i]; i++, el++)
                   *el = strdup(oldarg[i]);
           *el = NULL;
   
           return newarg;
   }
   
   /*
    * 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)
   {
           char **a;
   
           if (arr && *arr) {
                   a = *arr;
                   while (a && *a)
                           free(*a++);
                   free(*arr);
                   *arr = NULL;
           }
 }  }

Removed from v.1.4  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>