Merge pull request 'Added auto quote wrapping for config_get_all_by_key function' (#80) from YanTheKaller/libublsettings:master into master

Reviewed-on: #80
pull/81/head v1.75
Dmitry Razumov 2 months ago
commit 006059d781

@ -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){ void *yon_config_get_all_by_key(char *key, int *size){
(*size)=0; (*size)=0;
check_config{ check_config{
@ -730,9 +743,11 @@ void *yon_config_get_all_by_key(char *key, int *size){
dictionary *dict = NULL; dictionary *dict = NULL;
for_dictionaries(dict, (dictionary*)__yon__config__strings){ for_dictionaries(dict, (dictionary*)__yon__config__strings){
if (strstr(dict->key,key)&&((yon_config_parameter*)dict)->flag1!=-1) { 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); 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); else ret_data = yon_char_parsed_new(size,ret_string,NULL);
free(key_quoted);
} }
} }
return ret_data; return ret_data;
@ -1559,3 +1574,11 @@ int yon_config_move_after(char *parameter, char *target){
parameter_dict->prev=target_dict; parameter_dict->prev=target_dict;
return 1; 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_before(char *parameter, char *target);
int yon_config_move_after(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 // terminal-using functions
/**yon_launch_app_with_arguments(char *name, char *args) /**yon_launch_app_with_arguments(char *name, char *args)

Loading…
Cancel
Save