From a718b85848e16a13fe1b40765772f2ebc94cf59b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 26 May 2025 15:07:53 +0600 Subject: [PATCH] Char replace function remake --- source/libublsettings-char.c | 48 +++++++++------ source/libublsettings-config.c | 108 --------------------------------- 2 files changed, 28 insertions(+), 128 deletions(-) diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index 5e7d6be..90b75a5 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -242,26 +242,34 @@ char *yon_char_from_long(long int_to_convert) return ch; } -char *yon_char_replace(char *source, char *find, char*replace){ - if (!strstr(replace,find)){ - int source_size = strlen(source); - int replace_size = strlen(replace); - char *final=NULL; - char *temp=NULL; - while ((final=strstr(source,find))){ - int final_size = strlen(final); - temp=malloc(source_size-final_size+replace_size); - memset(temp,0,source_size-final_size+replace_size); - memcpy(temp,source,source_size-final_size); - char *tmp = yon_char_append(temp,replace); - if (temp) free(temp); - temp = tmp; - source=yon_char_append(temp,final+strlen(find)); - free(temp); - } - } - return source; -} +char* yon_char_replace(char *source, char *find, char *replace){ + // int cur_pos = 0; + int size; + config_str parsed = yon_char_parse(source,&size,find); + char *final = yon_char_parsed_to_string(parsed,size,replace); + return final; +} + +// char *yon_char_replace(char *source, char *find, char*replace){ +// if (!strstr(replace,find)){ +// int source_size = strlen(source); +// int replace_size = strlen(replace); +// char *final=NULL; +// char *temp=NULL; +// while ((final=strstr(source,find))){ +// int final_size = strlen(final); +// temp=malloc(source_size-final_size+replace_size); +// memset(temp,0,source_size-final_size+replace_size); +// memcpy(temp,source,source_size-final_size); +// char *tmp = yon_char_append(temp,replace); +// if (temp) free(temp); +// temp = tmp; +// source=yon_char_append(temp,final+strlen(find)); +// free(temp); +// } +// } +// return source; +// } char *yon_char_replace_single(char *source, char *find, char *replace){ if (!yon_char_is_empty(source)&&!yon_char_is_empty(find)){ diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 0dde52b..ba6615c 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -774,114 +774,6 @@ enum YON_CONFIG_SAVED_TYPE yon_config_register_default(char *key,char *config_lo return save_type; } -// void yon_config_register_default(char *key, char *config_load, void *data){ -// if (!yon_char_is_empty(key)){ -// key=yon_char_new(key); -// config_load=yon_char_new(config_load); -// yon_config_parameter *current = NULL; -// if (data){ -// if (!__yon__config__default__strings||!(current=(yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__default__strings,key))){ -// { -// if (__yon__config__default__strings){ -// char *data_copy = yon_char_new(data); -// yon_config_parameter* dict=NULL; -// for_dictionaries(dict,__yon__config__default__strings){ -// if (!dict->next){ -// __yon__config__default__strings=dict; -// } -// } -// __yon__config__default__strings=yon_config_parameter_append_with_data(__yon__config__default__strings,key,data_copy); - -// } -// else { -// char *data_copy = yon_char_new(data); -// __yon__config__strings=yon_config_parameter_new_with_data(key,yon_char_new(data)); -// } -// } -// __yon__config__default__strings = (yon_config_parameter*)yon_dictionary_get_last((dictionary*)__yon__config__default__strings); -// __yon__config__default__strings->flag1=1; -// __yon__config__default__strings->data_type=DICTIONARY_CHAR_TYPE; -// __yon__config__default__strings->load_command=config_load; -// int size=0; -// config_str section = yon_char_parse(config_load,&size," "); -// __yon__config__default__strings->section=yon_char_new(section[yon_char_parsed_check_exist(section,size,"get")+1]); -// yon_char_parsed_free(section,size); -// } -// else if ((current = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__default__strings,key))){ -// yon_config_parameter *cur_default = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__default__strings,current->key); -// if ((current->data&&data!=__yon__config__default__strings->data&&strcmp(__yon__config__default__strings->data,data))||!current->data){ -// current->data=yon_char_new(data); -// current->flag1=1; -// current->data_type=DICTIONARY_CHAR_TYPE; -// current->load_command=config_load; -// if (yon_dictionary_get(&__yon_config_ignored, current->key)){ -// __yon_config_ignored = yon_dictionary_rip(__yon_config_ignored); -// } -// int size=0; -// config_str section = yon_char_parse(config_load,&size," "); -// current->section=yon_char_new(section[yon_char_parsed_check_exist(section,size,"get")+1]); -// yon_char_parsed_free(section,size); -// if ((cur_default&&strcmp((char*)cur_default->data,(char*)current->data))){ -// yon_config_remove_by_key(current->key); -// } -// } -// } -// } else if ((current = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__default__strings,key))) { -// current->data=NULL; -// current->flag1=0; -// current->data_type=DICTIONARY_CHAR_TYPE; -// current->load_command=config_load; -// int size=0; -// config_str section = yon_char_parse(config_load,&size," "); -// current->section=yon_char_new(section[yon_char_parsed_check_exist(section,size,"get")+1]); -// yon_char_parsed_free(section,size); -// } else { -// if (!__yon__config__default__strings||!(current=(yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__default__strings,key))){ -// { -// if (__yon__config__default__strings){ -// yon_config_parameter* dict=NULL; -// for_dictionaries(dict,__yon__config__default__strings){ -// if (!dict->next){ -// __yon__config__default__strings=dict; -// } -// } -// __yon__config__default__strings=yon_config_parameter_append_with_data(__yon__config__default__strings,key,NULL); - -// } -// else { -// __yon__config__default__strings=yon_config_parameter_new_with_data(key,NULL); -// } -// } -// yon_config_set_ignore(key); -// __yon__config__default__strings = (yon_config_parameter*)yon_dictionary_get_last((dictionary*)__yon__config__default__strings); -// __yon__config__default__strings->flag1=0; -// __yon__config__default__strings->data_type=DICTIONARY_CHAR_TYPE; -// __yon__config__default__strings->load_command=config_load; -// int size=0; -// config_str section = yon_char_parse(config_load,&size," "); -// __yon__config__default__strings->section=yon_char_new(section[yon_char_parsed_check_exist(section,size,"get")+1]); -// yon_char_parsed_free(section,size); -// } -// else if ((current = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__default__strings,key))){ -// if ((current->data&&data!=__yon__config__default__strings->data&&strcmp(__yon__config__default__strings->data,data))||!current->data){ -// yon_config_set_ignore(key); - -// current->data=NULL; -// current->flag1=0; -// current->data_type=DICTIONARY_CHAR_TYPE; -// current->load_command=config_load; -// if (yon_dictionary_get(&__yon_config_ignored, current->key)){ -// __yon_config_ignored= yon_dictionary_rip(__yon_config_ignored); -// } -// int size=0; -// config_str section = yon_char_parse(config_load,&size," "); -// current->section=yon_char_new(section[yon_char_parsed_check_exist(section,size,"get")+1]); -// yon_char_parsed_free(section,size); -// } -// } -// } -// } -// } config_str yon_config_load(char *command, int *str_len){ FILE *output = popen(command, "r"); -- 2.35.1