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

version 1.3.8.1, 2011/04/19 22:32:16 version 1.5, 2011/06/07 11:49:39
Line 27  are met: Line 27  are met:
    must display the following acknowledgement:     must display the following acknowledgement:
 This product includes software developed by Michael Pounov <misho@elwix.org>  This product includes software developed by Michael Pounov <misho@elwix.org>
 ELWIX - Embedded LightWeight unIX and its contributors.  ELWIX - Embedded LightWeight unIX and its contributors.
4. Neither the name of the University nor the names of its contributors4. Neither the name of AITNET nor the names of its contributors
    may be used to endorse or promote products derived from this software     may be used to endorse or promote products derived from this software
    without specific prior written permission.     without specific prior written permission.
   
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' ANDTHIS SOFTWARE IS PROVIDED BY AITNET AND CONTRIBUTORS ``AS IS'' AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE  ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
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.3.8.1  
changed lines
  Added in v.1.5


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