93 for (j = 0; j < level; j++)
96 if (strings != NULL) {
98 fprintf(file,
"+-- osl_strings_t:");
99 for (i = 0; i < nb_strings; i++)
100 fprintf(file,
" %s", strings->
string[i]);
104 fprintf(file,
"+-- NULL strings\n");
107 for (j = 0; j <= level; j++)
108 fprintf(file,
"|\t");
135 char *
string = NULL;
138 OSL_malloc(
string,
char *, high_water_mark *
sizeof(
char));
141 if (strings != NULL) {
143 sprintf(buffer,
"%s", strings->
string[i]);
148 sprintf(buffer,
"\n");
152 sprintf(buffer,
"# NULL strings\n");
171 if (
string != NULL) {
172 fprintf(file,
"%s",
string);
198 char **
string = NULL;
199 size_t i, nb_strings;
210 for (count = 0; *s && !isspace(*s) && *s !=
'#'; count++)
216 if ((!*s) || (*s ==
'#') || (*s ==
'\n'))
222 if (nb_strings > 0) {
224 OSL_malloc(
string,
char **,
sizeof(
char *) * (nb_strings + 1));
225 string[nb_strings] = NULL;
229 for (i = 0; i < nb_strings; i++) {
230 for (count = 0; *s && !isspace(*s) && *s !=
'#'; count++)
289 strings->
string[0] = NULL;
303 if (strings != NULL) {
304 if (strings->
string != NULL) {
306 while (strings->
string[i] != NULL) {
330 size_t i, nb_strings;
342 clone->
string[nb_strings] = NULL;
343 for (i = 0; i < nb_strings; i++)
359 if (strcmp(strings->
string[i],
string) == 0) {
return i; }
374 strings->
string[original_size + 1] = NULL;
375 strings->
string[original_size] = malloc(
sizeof(
char) * (strlen(
string) + 1));
376 strcpy(strings->
string[original_size],
string);
394 if (((s1 == NULL) && (s2 != NULL)) ||
395 ((s1 != NULL) && (s2 == NULL)) ||
399 for (i = 0; i < nb_s1; i++)
417 if ((strings != NULL) && (strings->string != NULL)) {
418 while (strings->string[size] != NULL) {
438 capsule->
string[0] = string;
439 capsule->
string[1] = NULL;
477 char ** strings = NULL;
478 char buff[strlen(prefix) + 16];
483 OSL_malloc(strings,
char **,
sizeof(
char *) * (
size_t)(nb_strings + 1));
484 strings[nb_strings] = NULL;
485 for (i = 0; i < nb_strings; i++) {
486 sprintf(buff,
"%s%d", prefix, i + 1);
488 if (strings[i] == NULL)
495 generated->
string = strings;
514 while (str2->
string[i] != NULL) {
osl_strings_p osl_strings_encapsulate(char *string)
size_t osl_strings_find(osl_strings_p strings, char const *const string)
void *(* osl_clone_f)(void *)
void *(* osl_sread_f)(char **)
void(* osl_idump_f)(FILE *, void *, int)
osl_strings_p osl_strings_clone(osl_strings_p strings)
osl_interface_p osl_interface_malloc(void)
void osl_util_safe_strcat(char **dst, char *src, size_t *hwm)
char *(* osl_sprint_f)(void *)
char * osl_strings_sprint(osl_strings_p strings)
void osl_strings_dump(FILE *file, osl_strings_p strings)
void osl_strings_add_strings(osl_strings_p *dest, osl_strings_p str1, osl_strings_p str2)
Concatenate two osl_strings into one. The parameter are cloned and not modified.
void osl_strings_idump(FILE *file, osl_strings_p strings, int level)
#define OSL_strdup(destination, source)
void *(* osl_malloc_f)(void)
#define OSL_realloc(ptr, type, size)
int(* osl_equal_f)(void *, void *)
osl_strings_p osl_strings_read(FILE *file)
osl_strings_p osl_strings_malloc(void)
void osl_strings_free(osl_strings_p strings)
int osl_strings_equal(osl_strings_p s1, osl_strings_p s2)
void(* osl_free_f)(void *)
struct osl_strings const *const osl_const_strings_const_p
void osl_util_sskip_blank_and_comments(char **str)
size_t osl_strings_size(osl_const_strings_const_p strings)
void osl_strings_print(FILE *file, osl_strings_p strings)
void osl_strings_add(osl_strings_p strings, char const *const string)
osl_strings_p osl_strings_sread(char **input)
osl_strings_p osl_strings_generate(char *prefix, int nb_strings)
char * osl_util_skip_blank_and_comments(FILE *file, char *str)
osl_interface_p osl_strings_interface(void)
#define OSL_malloc(ptr, type, size)