Test fix for saving

pull/4/head
parent 4afde068b8
commit f040cda423

@ -162,6 +162,27 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){
struct loaded_config loaded; struct loaded_config loaded;
loaded.dict = yon_dictionary_new(); loaded.dict = yon_dictionary_new();
dictionary *dct; dictionary *dct;
for_dictionaries(dct,section_commands){
char *command = yon_char_unite(ubconfig_load_command," default get ", dct->key," ", yon_dictionary_get_data(dct,char*),NULL);
FILE *output = popen(command, "r");
char **output_strings = NULL;
output_strings = malloc(sizeof(char*));
int i = 0;
char str[4096];
memset(str, 0, 4096);
while (fgets(str, 4096, output))
{
if (!yon_char_is_empty(str)&& strcmp(str,"(null)\n")!=0)
{
char *final_str = yon_char_new(str);
char *key =yon_char_divide_search(final_str,"=",-1);
if (final_str[strlen(final_str)-1]=='\n')final_str[strlen(final_str)-1]='\0';
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));
}
}
}
for_dictionaries(dct,section_commands){ for_dictionaries(dct,section_commands){
char *command = yon_char_unite(ubconfig_load_command," ", config_to_save," get ", dct->key," ", yon_dictionary_get_data(dct,char*),NULL); char *command = yon_char_unite(ubconfig_load_command," ", config_to_save," get ", dct->key," ", yon_dictionary_get_data(dct,char*),NULL);
FILE *output = popen(command, "r"); FILE *output = popen(command, "r");
@ -177,9 +198,14 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){
char *final_str = yon_char_new(str); char *final_str = yon_char_new(str);
char *key =yon_char_divide_search(final_str,"=",-1); char *key =yon_char_divide_search(final_str,"=",-1);
if (final_str[strlen(final_str)-1]=='\n')final_str[strlen(final_str)-1]='\0'; 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))){
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,NULL,yon_char_new(dct->key));
yon_dictionary_add_or_create_if_exists_with_data(loaded.dict,key,yon_char_new(final_str)); 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)); yon_char_parsed_add_or_create_if_exists(config_compare,&compare_size,yon_char_new(str));
} else{
loaded.dict->data = final_str;
}
} }
} }
} }

Loading…
Cancel
Save