Added auto quote wrapping for config_get_all_by_key function

pull/80/head
parent 8a827f476b
commit 2da047a5bf

@ -723,6 +723,19 @@ char *yon_config_get_section_for_key(char *key){
}
}
char *yon_config_parameter_set_quotes(char *key){
if (!strstr(key,"[")||strstr(key,"\'")) return yon_char_new(key);
char *target = yon_char_new(key);
char *first_part = yon_char_divide(target,strlen(target)-strlen(strstr(target,"[")));
int end_pos = yon_char_find_last(target,']');
char *key_str = yon_char_divide(target,end_pos);
char *final = yon_char_unite(first_part,"['",key_str,"']",NULL);
free(target);
free(first_part);
free(key_str);
return final;
}
void *yon_config_get_all_by_key(char *key, int *size){
(*size)=0;
check_config{
@ -730,9 +743,11 @@ void *yon_config_get_all_by_key(char *key, int *size){
dictionary *dict = NULL;
for_dictionaries(dict, (dictionary*)__yon__config__strings){
if (strstr(dict->key,key)&&((yon_config_parameter*)dict)->flag1!=-1) {
char *ret_string = yon_char_unite(dict->key,"=",(char*)dict->data,NULL);
char *key_quoted = yon_config_parameter_set_quotes(dict->key);
char *ret_string = yon_char_unite(key_quoted,"=",(char*)dict->data,NULL);
if (ret_data) ret_data = yon_char_parsed_append(ret_data,size,ret_string);
else ret_data = yon_char_parsed_new(size,ret_string,NULL);
free(key_quoted);
}
}
return ret_data;
@ -1559,3 +1574,11 @@ int yon_config_move_after(char *parameter, char *target){
parameter_dict->prev=target_dict;
return 1;
}
void yon_config_to_default(){
yon_config_clean();
yon_config_parameter *dict;
for_dictionaries(dict,__yon__config__default__strings){
yon_config_register(dict->key,dict->load_command,dict->data);
}
}

@ -1523,6 +1523,9 @@ char *yon_config_parameter_get_key(char *parameter_string);
int yon_config_move_before(char *parameter, char *target);
int yon_config_move_after(char *parameter, char *target);
/// @brief Revert configuration to default values.
void yon_config_to_default();
// terminal-using functions
/**yon_launch_app_with_arguments(char *name, char *args)

Loading…
Cancel
Save