From 3a14683235876099e86b3e882bcfa51ce84511fa Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 29 Dec 2023 12:25:24 +0600 Subject: [PATCH] Bug fixes --- source/libublsettingsui-gtk3.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index ffd1660..ddacb41 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -199,12 +199,17 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ char *key =yon_char_divide_search(final_str,"=",-1); if (final_str[strlen(final_str)-1]=='\n')final_str[strlen(final_str)-1]='\0'; dictionary *found=NULL; - if (!(found=yon_dictionary_get(&loaded.dict,dct->key))){ + if (!(found=yon_dictionary_get(&loaded.dict,key))){ yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,NULL,yon_char_new(dct->key)); yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,key,yon_char_new(final_str)); yon_char_parsed_add_or_create_if_exists(config_compare,&compare_size,yon_char_new(str)); } else{ - loaded.dict->data = final_str; + int element = yon_char_parsed_check_exist(config_compare,compare_size,(char*)loaded.dict->data); + if (element>-1){ + free(config_compare[element]); + config_compare[element]=yon_char_new(str); + loaded.dict->data = yon_char_new(final_str); + } } } } @@ -256,7 +261,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ if(config_compare[j][strlen(config_compare[j])-1]=='\n') config_compare[j][strlen(config_compare[j])-1]='\0'; char *compare_value = yon_char_new(config_compare[j]); char *compare_name = yon_char_divide_search(compare_value,"=",-1); - if (!strcmp(compare_name,compare_keys[i])){ + if (!strcmp(compare_name,compare_keys[i])){ //&&strcmp((char*)yon_dictionary_get(&loaded.dict,compare_name)->data,compare_value) char *cur_section = (char*)yon_dictionary_get(&loaded.dict->first,compare_keys[i])->prev->data; gtk_list_store_set(window->list,&iter,2,compare_value,4,rgba_string,6,cur_section,-1); } @@ -276,7 +281,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,1,&name,2,&value,-1); if (!yon_char_is_empty(name)&&!strcmp(name,config_keys[i])){ gtk_list_store_set(window->list,&iter,3,compare_value,4,NULL,6,section,-1); - if (!strcmp(value,compare_value)){ + if (value&&!strcmp(value,compare_value)){ gtk_list_store_set(window->list,&iter,0,0,5,0,-1); } found=1;