Loading minor rework; added new function

pull/57/head
parent 62b2d61704
commit f9ce7123b6
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -439,7 +439,7 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){
char *value = yon_char_new(parameters[i]);
char *parameter = yon_char_divide_search(value,"=",-1);
char *section = NULL;
if (strstr(final_command," -ea ")){
if (final_command[0]=='['){
section = yon_char_divide_search(parameter," ",-1);
free(yon_char_divide(section,yon_char_find_last(section,'/')));
yon_char_remove_last_symbol(section,']');
@ -458,6 +458,7 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){
}
if ((cur_ignore&&value)||(!cur_ignore)){
yon_config_register(parameter,get_command,value);
// yon_config_set_section(parameter,section);
}
if (config_type==YON_CONFIG_DEFAULT){
@ -854,6 +855,28 @@ int yon_config_default_remove(char *key){
return 0;
}
/// @brief Получение всех параметров отдельного раздела конфигурации
/// @param section_name Название раздела конфигурации
/// @param size размер финального массива
/// @return массив строк со всеми параметрами для запрашиваемого раздела
config_str yon_config_get_parameters_for_section(const char *section_name, int *size){
(*size)=0;
check_config{
int parameters_size;
config_str parameters = NULL;
yon_config_parameter *parameter;
for_dictionaries(parameter,__yon__config__strings){
if (!strcmp(parameter->section,section_name)){
yon_char_parsed_add_or_create_if_exists(parameters,&parameters_size,parameter->key);
}
}
(*size)=parameters_size;
return parameters;
}
return NULL;
}
enum YON_CONFIG_SAVED_TYPE yon_config_register(char *key,char *config_load, char *data){
if (yon_char_is_empty(key)||yon_char_is_empty(config_load)) return YON_CONFIG_SAVED_ERROR;

@ -774,7 +774,7 @@ config_str yon_dir_get_by_mask(char *path, char *mask, int *size);
#define ubconfig_set_command_full(target, section, data) yon_char_unite("ubconfig ",!yon_char_is_empty(target)?"--target ":"",!yon_char_is_empty(target)?target:""," set ",section," ",data,NULL)
#define ubconfig_load_command(target) yon_char_unite("ubconfig --source ",target," get ",NULL)
#define ubconfig_load_command_full(target, data) yon_char_unite("ubconfig --source ",target," get ",data,NULL)
#define ubconfig_remove_command_full(target, section, data) yon_char_unite("ubconfig ",!yon_char_is_empty(target)?"--target ":"",!yon_char_is_empty(target)?target:""," remove ",section," ",data,NULL)
#define ubconfig_remove_command_full(target, section, data) yon_char_unite("ubconfig ",!yon_char_is_empty(target)?"--target ":"",!yon_char_is_empty(target)?target:""," remove ",!yon_char_is_empty(section)?section:"",!yon_char_is_empty(section)?" ":"",data,NULL)
/**
* Типы конфигураций ubconfig-а
@ -944,6 +944,12 @@ void *yon_config_get_by_key(char *key);
char *yon_config_get_section_for_key(char *key);
config_str yon_config_get_parameters_for_section(const char *section_name, int *size);
config_str yon_config_get_parameters_for_all_sections(int *size);
config_str yon_config_get_parameters_for_all_sections_saved(int *size);
config_str yon_config_get_parameters_for_all_sections_removed(int *size);
/**yon_config_get_all_by_key(char *data)
* [EN]
*

Loading…
Cancel
Save