Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, October 16, 2026

Diff for libcfg+/src/platon/str/strdyn.c between version 1.6 and 1.7

version 1.6, 2001/10/21 16:44:22 version 1.7, 2001/10/23 00:05:18
Line 6 
Line 6 
 #include "strplus.h"  #include "strplus.h"
 #include "strdyn.h"  #include "strdyn.h"
   
 char **strdyn_create(void) {  void strdyn_free(char **ar) {
         register char **ar;          register int i;
   
         if ((ar = (char **) malloc(1 * sizeof(char *))) == NULL)  
                 return NULL;  
   
         ar[0] = NULL;          for (i = 0; ar[i] != NULL; i++)
                   free(ar[i]);
   
         return ar;          free(ar);
 }  }
   
 char **strdyn_add_va(char **ar, ...) {  int strdyn_get_size(char **ar) {
         register char *s;          register int i;
         va_list ap;  
   
         if (ar == NULL)          for (i = 0; ar[i] != NULL; i++)
                 if ((ar = strdyn_create()) == NULL)                  ;
                         return NULL;  
   
         va_start(ap, ar);          return i;
   }
   
         while ((s = va_arg(ap, char *)) != NULL)  char **strdyn_create(void) {
                 if ((ar = strdyn_add(ar, s)) == NULL)          register char **ar;
                         return NULL;  
   
         va_end(ap);          if ((ar = (char **) malloc(1 * sizeof(char *))) == NULL)
                   return NULL;
   
           ar[0] = NULL;
   
         return ar;          return ar;
 }  }
Line 61  char **strdyn_create_va(char *s1, ...) {
Line 60  char **strdyn_create_va(char *s1, ...) {
         return ar;          return ar;
 }  }
   
   char **strdyn_add(char **ar, const char *s) {
           register int count;
   
 void strdyn_free(char **ar) {          if (ar == NULL)
         register int i;                  if ((ar = strdyn_create()) == NULL)
                           return NULL;
   
         for (i = 0; ar[i] != NULL; i++)          count = strdyn_get_size(ar);
                 free(ar[i]);  
   
         free(ar);          if ((ar = (char **) realloc(ar, (count + 2) * sizeof(char *))) == NULL)
                   return NULL;
   
           ar[count] = strdup(s);
           ar[count + 1] = NULL;
   
           return ar;
 }  }
   
 int strdyn_get_size(char **ar) {  char **strdyn_add_va(char **ar, ...) {
         register int i;          register char *s;
           va_list ap;
   
         for (i = 0; ar[i] != NULL; i++)          if (ar == NULL)
                 ;                  if ((ar = strdyn_create()) == NULL)
                           return NULL;
   
         return i;          va_start(ap, ar);
   
           while ((s = va_arg(ap, char *)) != NULL)
                   if ((ar = strdyn_add(ar, s)) == NULL)
                           return NULL;
   
           va_end(ap);
   
           return ar;
   }
   
   char **strdyn_add_ar(char **ar, char * const *s_ar) {
           register int k;
   
           for (k = 0; s_ar[k] != NULL; k++) {
                   if ((ar = strdyn_add(ar, s_ar[k])) == NULL)
                           return NULL;
           }
   
           return ar;
 }  }
   
 char **strdyn_duplicate(char **ar) {  char **strdyn_duplicate(char **ar) {
Line 211  char *strdyn_implode_str(char **ar, char
Line 239  char *strdyn_implode_str(char **ar, char
   
                 if (ar[i + 1] != NULL)                  if (ar[i + 1] != NULL)
                         strcpy(s, sep);                          strcpy(s, sep);
                         s += sep_size;                  s += sep_size;
         }          }
   
         return str;          return str;
Line 269  char **strdyn_consolide(char **ar1, char
Line 297  char **strdyn_consolide(char **ar1, char
         }          }
   
         return ar;          return ar;
 }  
   
 char **strdyn_add(char **ar, const char *s) {  
         register int count;  
   
         if (ar == NULL)  
                 if ((ar = strdyn_create()) == NULL)  
                         return NULL;  
   
         count = strdyn_get_size(ar);  
   
         if ((ar = (char **) realloc(ar, (count + 2) * sizeof(char *))) == NULL)  
                 return NULL;  
   
         ar[count] = strdup(s);  
         ar[count + 1] = NULL;  
   
         return ar;  
 }  
   
 char **strdyn_add_ar(char **ar, char * const *s_ar) {  
         register int k;  
   
         for (k = 0; s_ar[k] != NULL; k++) {  
                 if ((ar = strdyn_add(ar, s_ar[k])) == NULL)  
                         return NULL;  
         }  
   
         return ar;  
 }  }
   
 int strdyn_search(char **ar, char *s) {  int strdyn_search(char **ar, char *s) {

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top