Diff for /libelwix/src/str.c between versions 1.3 and 1.10

version 1.3, 2013/05/30 09:07:33 version 1.10, 2023/03/14 22:36:13
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013Copyright 2004 - 2023
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 230  str_Hex2Dig(const char *psLine) Line 230  str_Hex2Dig(const char *psLine)
 {  {
         register int i, j;          register int i, j;
         char *str, szWork[3] = { 0, 0, 0 };          char *str, szWork[3] = { 0, 0, 0 };
        ait_val_t *v, s;        ait_val_t *v, s = AIT_VAL_INIT;
         u_char *b;          u_char *b;
         int n;          int n;
   
Line 286  str_Dig2Hex(ait_val_t *digz) Line 286  str_Dig2Hex(ait_val_t *digz)
   
         for (i = 0, b = AIT_GET_BUF(digz); i < AIT_LEN(digz); i++) {          for (i = 0, b = AIT_GET_BUF(digz); i < AIT_LEN(digz); i++) {
                 snprintf(szWork, sizeof szWork, "%02hhX", b[i]);                  snprintf(szWork, sizeof szWork, "%02hhX", b[i]);
                strncat(str, szWork, 2);                strcat(str, szWork);
         }          }
   
         return str;          return str;
 }  }
   
 /*  /*
    * str_Dig2Hex2() - Convert from digit array to Hex string
    *
    * @digz = Digits array
    * @diglen = Array length
    * return: NULL nothing to do or error; 
    *              !=0 Allocated new converted string (must be e_free())
   */
   char *
   str_Dig2Hex2(u_char * __restrict digz, int diglen)
   {
           register int i;
           char szWork[3] = { 0, 0, 0 }, *str;
           u_char *b;
   
           if (!digz || !diglen)
                   return NULL;
   
           str = e_malloc(diglen * 2 + 1);
           if (!str)
                   return NULL;
           else
                   memset(str, 0, diglen * 2 + 1);
   
           for (i = 0, b = digz; i < diglen; i++) {
                   snprintf(szWork, sizeof szWork, "%02hhX", b[i]);
                   strcat(str, szWork);
           }
   
           return str;
   }
   
   /*
  * str_LTrim() - Remove left whitespaces from text string   * str_LTrim() - Remove left whitespaces from text string
  *   *
  * @psLine = Text string   * @psLine = Text string
Line 429  str_Lower(char * __restrict psLine) Line 461  str_Lower(char * __restrict psLine)
                 }                  }
   
         return cx;          return cx;
   }
   
   /*
    * str_getString() - Get NULL delimited string from data buffer
    *
    * @data = Const data buffer
    * @dlen = Data length
    * @next = Return next position after string if !=NULL
    * return: -1 error or size of string 
    */
   int
   str_getString(const u_char * __restrict data, int dlen, char ** __restrict next)
   {
           const u_char *pos;
   
           if (!data || !dlen)
                   return -1;
   
           for (pos = data; pos < data + dlen; pos++)
                   if (!*pos)
                           break;
           if (*pos) {
                   elwix_SetErr(ENOEXEC, "Not found null-terminated string");
                   return -1;
           }
   
           if (next)
                   *next = (char*) pos + 1;
           return pos - data + 1;
   }
   
   /*
    * str_getString2() - Get string from data buffer with delimiter
    *
    * @data = Data buffer
    * @dlen = Data length
    * @delim = Data delimiter
    * @next = Return next position after delimited string if !=NULL
    * return: -1 error or size of string 
    */
   int
   str_getString2(char * __restrict data, int dlen, char delim, char ** __restrict next)
   {
           char *pos;
   
           if (!data || !dlen)
                   return -1;
   
           for (pos = data; pos < data + dlen; pos++)
                   if (!*pos || *pos == (u_char) delim) {
                           *pos = 0;
                           break;
                   }
           if (*pos) {
                   elwix_SetErr(ENOEXEC, "Not found null-terminated string");
                   return -1;
           }
   
           if (next)
                   *next = (char*) pos + 1;
           return pos - data;
 }  }

Removed from v.1.3  
changed lines
  Added in v.1.10


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