| version 1.14, 2001/12/20 19:50:38 |
version 1.15, 2002/02/25 18:46:00 |
|
|
| #include "strplus.h" |
#include "strplus.h" |
| #include "strdyn.h" |
#include "strdyn.h" |
| |
|
| void strdyn_free(char **ar) |
void |
| |
strdyn_free(ar) |
| |
char **ar; |
| { |
{ |
| register int i; |
register int i; |
| |
|
| Line 16 void strdyn_free(char **ar) |
|
| Line 18 void strdyn_free(char **ar) |
|
| free(ar); |
free(ar); |
| } |
} |
| |
|
| void strdyn_safe_free(char **ar) |
void |
| |
strdyn_safe_free(ar) |
| |
char **ar; |
| { |
{ |
| if (ar == NULL) |
if (ar == NULL) |
| return; |
return; |
| Line 26 void strdyn_safe_free(char **ar) |
|
| Line 30 void strdyn_safe_free(char **ar) |
|
| return; |
return; |
| } |
} |
| |
|
| int strdyn_get_size(char **ar) |
int |
| |
strdyn_get_size(ar) |
| |
char **ar; |
| { |
{ |
| register int i; |
register int i; |
| |
|
| Line 36 int strdyn_get_size(char **ar) |
|
| Line 42 int strdyn_get_size(char **ar) |
|
| return i; |
return i; |
| } |
} |
| |
|
| char **strdyn_create(void) |
char ** |
| |
strdyn_create(void) |
| { |
{ |
| register char **ar; |
register char **ar; |
| |
|
| Line 48 char **strdyn_create(void) |
|
| Line 55 char **strdyn_create(void) |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_create_va(char *s1, ...) |
char ** |
| |
strdyn_create_va( |
| |
char *s1, |
| |
...) |
| { |
{ |
| register char **ar; |
register char **ar; |
| |
|
| Line 74 char **strdyn_create_va(char *s1, ...) |
|
| Line 84 char **strdyn_create_va(char *s1, ...) |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_create_ar(char **ar) |
char ** |
| |
strdyn_create_ar(ar) |
| |
char **ar; |
| { |
{ |
| register int i; |
register int i; |
| register char **new_ar; |
register char **new_ar; |
| Line 91 char **strdyn_create_ar(char **ar) |
|
| Line 103 char **strdyn_create_ar(char **ar) |
|
| return new_ar; |
return new_ar; |
| } |
} |
| |
|
| char **strdyn_add(char **ar, const char *s) |
char ** |
| |
strdyn_add(ar, s) |
| |
char **ar; |
| |
const char *s; |
| { |
{ |
| register int count; |
register int count; |
| |
|
| Line 110 char **strdyn_add(char **ar, const char |
|
| Line 125 char **strdyn_add(char **ar, const char |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_add_va(char **ar, ...) |
char ** |
| |
strdyn_add_va( |
| |
char **ar, |
| |
...) |
| { |
{ |
| register char *s; |
register char *s; |
| va_list ap; |
va_list ap; |
| Line 130 char **strdyn_add_va(char **ar, ...) |
|
| Line 148 char **strdyn_add_va(char **ar, ...) |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_add_ar(char **ar, char * const *s_ar) |
char ** |
| |
strdyn_add_ar(ar, s_ar) |
| |
char **ar; |
| |
char * const *s_ar; |
| { |
{ |
| register int k; |
register int k; |
| |
|
| Line 141 char **strdyn_add_ar(char **ar, char * c |
|
| Line 162 char **strdyn_add_ar(char **ar, char * c |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_remove_idx(char **ar, int idx) |
char ** |
| |
strdyn_remove_idx(ar, idx) |
| |
char **ar; |
| |
int idx; |
| { |
{ |
| register int i; |
register int i; |
| |
|
| Line 159 char **strdyn_remove_idx(char **ar, int |
|
| Line 183 char **strdyn_remove_idx(char **ar, int |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_remove_str(char **ar, char *s) |
char ** |
| |
strdyn_remove_str(ar, s) |
| |
char **ar; |
| |
char *s; |
| { |
{ |
| register int idx; |
register int idx; |
| |
|
| Line 171 char **strdyn_remove_str(char **ar, char |
|
| Line 198 char **strdyn_remove_str(char **ar, char |
|
| return strdyn_remove_idx(ar, idx); |
return strdyn_remove_idx(ar, idx); |
| } |
} |
| |
|
| char **strdyn_remove_str_all(char **ar, char *s) |
char ** |
| |
strdyn_remove_str_all(ar, s) |
| |
char **ar; |
| |
char *s; |
| { |
{ |
| char **new_ar = NULL; |
char **new_ar = NULL; |
| |
|
| Line 186 char **strdyn_remove_str_all(char **ar, |
|
| Line 216 char **strdyn_remove_str_all(char **ar, |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_remove_empty(char **ar) |
char ** |
| |
strdyn_remove_empty(ar) |
| |
char **ar; |
| { |
{ |
| register int i, j; |
register int i, j; |
| |
|
| Line 208 char **strdyn_remove_empty(char **ar) |
|
| Line 240 char **strdyn_remove_empty(char **ar) |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_explode_chr(char *str, char sep) |
char ** |
| |
strdyn_explode_chr(str, sep) |
| |
char *str; |
| |
char sep; |
| { |
{ |
| char sep_str[2]; |
char sep_str[2]; |
| |
|
| Line 218 char **strdyn_explode_chr(char *str, cha |
|
| Line 253 char **strdyn_explode_chr(char *str, cha |
|
| return strdyn_explode_str(str, sep_str); |
return strdyn_explode_str(str, sep_str); |
| } |
} |
| |
|
| char **strdyn_explode2_chr(char *str, char sep) |
char ** |
| |
strdyn_explode2_chr(str, sep) |
| |
char *str; |
| |
char sep; |
| { |
{ |
| |
|
| return strdyn_remove_empty(strdyn_explode_chr(str, sep)); |
return strdyn_remove_empty(strdyn_explode_chr(str, sep)); |
| } |
} |
| |
|
| char **strdyn_explode_str(char *str, char *sep) |
char ** |
| |
strdyn_explode_str(str, sep) |
| |
char *str; |
| |
char *sep; |
| { |
{ |
| register char **ar; |
register char **ar; |
| register char *s; |
register char *s; |
| Line 260 char **strdyn_explode_str(char *str, cha |
|
| Line 301 char **strdyn_explode_str(char *str, cha |
|
| |
|
| } |
} |
| |
|
| char **strdyn_explode2_str(char *str, char *sep) |
char ** |
| |
strdyn_explode2_str(str, sep) |
| |
char *str; |
| |
char *sep; |
| { |
{ |
| return strdyn_remove_empty(strdyn_explode_str(str, sep)); |
return strdyn_remove_empty(strdyn_explode_str(str, sep)); |
| } |
} |
| |
|
| char **strdyn_explode_ar(char *str, char **sep) |
char ** |
| |
strdyn_explode_ar(str, sep) |
| |
char *str; |
| |
char **sep; |
| { |
{ |
| /* WARNING: Unefective recursion used! */ |
/* WARNING: Unefective recursion used! */ |
| /* TODO: Various code optimalizations. */ |
/* TODO: Various code optimalizations. */ |
| Line 309 char **strdyn_explode_ar(char *str, char |
|
| Line 356 char **strdyn_explode_ar(char *str, char |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_explode2_ar(char *str, char **sep) |
char ** |
| |
strdyn_explode2_ar(str, sep) |
| |
char *str; |
| |
char **sep; |
| { |
{ |
| return strdyn_remove_empty(strdyn_explode_ar(str, sep)); |
return strdyn_remove_empty(strdyn_explode_ar(str, sep)); |
| } |
} |
| |
|
| char *strdyn_implode_chr(char **ar, char sep) |
char * |
| |
strdyn_implode_chr(ar, sep) |
| |
char **ar; |
| |
char sep; |
| { |
{ |
| char sep_str[2]; |
char sep_str[2]; |
| |
|
| Line 324 char *strdyn_implode_chr(char **ar, char |
|
| Line 377 char *strdyn_implode_chr(char **ar, char |
|
| return strdyn_implode_str(ar, sep_str); |
return strdyn_implode_str(ar, sep_str); |
| } |
} |
| |
|
| char *strdyn_implode2_chr(char **ar, char sep) |
char * |
| |
strdyn_implode2_chr(ar, sep) |
| |
char **ar; |
| |
char sep; |
| { |
{ |
| register char **new_ar; |
register char **new_ar; |
| register char *s; |
register char *s; |
| Line 338 char *strdyn_implode2_chr(char **ar, cha |
|
| Line 394 char *strdyn_implode2_chr(char **ar, cha |
|
| return s; |
return s; |
| } |
} |
| |
|
| char *strdyn_implode_str(char **ar, char *sep) |
char * |
| |
strdyn_implode_str(ar, sep) |
| |
char **ar; |
| |
char *sep; |
| { |
{ |
| register int i, str_size, sep_size; |
register int i, str_size, sep_size; |
| register char *str, *s; |
register char *str, *s; |
| Line 365 char *strdyn_implode_str(char **ar, char |
|
| Line 424 char *strdyn_implode_str(char **ar, char |
|
| return str; |
return str; |
| } |
} |
| |
|
| char *strdyn_implode2_str(char **ar, char *str) |
char * |
| |
strdyn_implode2_str(ar, str) |
| |
char **ar; |
| |
char *str; |
| { |
{ |
| register char **new_ar; |
register char **new_ar; |
| register char *s; |
register char *s; |
| Line 379 char *strdyn_implode2_str(char **ar, cha |
|
| Line 441 char *strdyn_implode2_str(char **ar, cha |
|
| return s; |
return s; |
| } |
} |
| |
|
| char **strdyn_conjunct(char **ar1, char **ar2) |
char ** |
| |
strdyn_conjunct(ar1, ar2) |
| |
char **ar1; |
| |
char **ar2; |
| { |
{ |
| register int i; |
register int i; |
| register char **ar; |
register char **ar; |
| Line 397 char **strdyn_conjunct(char **ar1, char |
|
| Line 462 char **strdyn_conjunct(char **ar1, char |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| char **strdyn_consolide(char **ar1, char **ar2) |
char ** |
| |
strdyn_consolide(ar1, ar2) |
| |
char **ar1; |
| |
char **ar2; |
| { |
{ |
| register int i; |
register int i; |
| register char **ar; |
register char **ar; |
| Line 422 char **strdyn_consolide(char **ar1, char |
|
| Line 490 char **strdyn_consolide(char **ar1, char |
|
| return ar; |
return ar; |
| } |
} |
| |
|
| int strdyn_search(char **ar, char *s) |
int |
| |
strdyn_search(ar, s) |
| |
char **ar; |
| |
char *s; |
| { |
{ |
| register int i; |
register int i; |
| |
|
| Line 433 int strdyn_search(char **ar, char *s) |
|
| Line 504 int strdyn_search(char **ar, char *s) |
|
| return -1; |
return -1; |
| } |
} |
| |
|
| int strdyn_casesearch(char **ar, char *s) |
int |
| |
strdyn_casesearch(ar, s) |
| |
char **ar; |
| |
char *s; |
| { |
{ |
| register int i; |
register int i; |
| |
|
| Line 444 int strdyn_casesearch(char **ar, char *s |
|
| Line 518 int strdyn_casesearch(char **ar, char *s |
|
| return -1; |
return -1; |
| } |
} |
| |
|
| int strdyn_compare(char **ar, char *s) |
int |
| |
strdyn_compare(ar, s) |
| |
char **ar; |
| |
char *s; |
| { |
{ |
| return strdyn_search(ar, s) < 0 ? -1 : 0; |
return strdyn_search(ar, s) < 0 ? -1 : 0; |
| } |
} |
| |
|
| int strdyn_casecompare(char **ar, char *s) |
int |
| |
strdyn_casecompare(ar, s) |
| |
char **ar; |
| |
char *s; |
| { |
{ |
| return strdyn_casesearch(ar, s) < 0 ? -1 : 0; |
return strdyn_casesearch(ar, s) < 0 ? -1 : 0; |
| } |
} |
| |
|
| int strdyn_compare_all(char **ar, char *s) |
int |
| |
strdyn_compare_all(ar, s) |
| |
char **ar; |
| |
char *s; |
| { |
{ |
| register int i; |
register int i; |
| |
|
| Line 465 int strdyn_compare_all(char **ar, char * |
|
| Line 548 int strdyn_compare_all(char **ar, char * |
|
| return 0; |
return 0; |
| } |
} |
| |
|
| char *strdyn_str2(char *s, char **ar, int *idx) |
char * |
| |
strdyn_str2(s, ar, idx) |
| |
char *s; |
| |
char **ar; |
| |
int *idx; |
| { |
{ |
| register char *ret, *tmp_s; |
register char *ret, *tmp_s; |
| register int i; |
register int i; |
| Line 488 char *strdyn_str2(char *s, char **ar, in |
|
| Line 575 char *strdyn_str2(char *s, char **ar, in |
|
| #define TESTSEP1 '_' |
#define TESTSEP1 '_' |
| #define TESTSEP2 "__" |
#define TESTSEP2 "__" |
| |
|
| int main(void) |
int |
| |
main(void) |
| { |
{ |
| |
|
| register int i; |
register int i; |