master #56

Merged
asmeron merged 3 commits from YanTheKaller/libublsettings:master into master 3 months ago

@ -331,6 +331,15 @@ char *yon_config_command_get_path(const char *command){
return section; return section;
} }
char *config_last_load_command = NULL;
char *yon_config_get_last_command(){
return(config_last_load_command);
}
void yon_config_set_last_command(char *command){
config_last_load_command=yon_char_new(command);
}
int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){
if (config_type!=YON_CONFIG_BOTH){ if (config_type!=YON_CONFIG_BOTH){
va_list args; va_list args;
@ -341,6 +350,7 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){
while ((current=va_arg(args,char*))){ while ((current=va_arg(args,char*))){
yon_config_command_prepare(&command,&command_size,current); yon_config_command_prepare(&command,&command_size,current);
} }
yon_config_set_last_command(yon_char_parsed_to_string(command,command_size,";"));
for (int i=0;i<command_size;i++){ for (int i=0;i<command_size;i++){
int parsed_size; int parsed_size;
config_str parsed = yon_config_load(command[i],&parsed_size); config_str parsed = yon_config_load(command[i],&parsed_size);
@ -369,6 +379,7 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){
yon_config_set_status(key,-2); yon_config_set_status(key,-2);
} else { } else {
yon_config_default_remove(key); yon_config_default_remove(key);
yon_config_set_status(key,0);
} }
} }
} }
@ -735,9 +746,9 @@ enum YON_CONFIG_SAVED_TYPE yon_config_register(char *key,char *config_load, char
} }
switch(current->flag1){ switch(current->flag1){
case -1: save_type = YON_CONFIG_SAVED_REMOVED; case -1: save_type = YON_CONFIG_SAVED_REMOVED; break;
case 1: save_type = YON_CONFIG_SAVED_CHANGED; case 1: save_type = YON_CONFIG_SAVED_CHANGED; break;
default: save_type = YON_CONFIG_SAVED_NEW; default: save_type = YON_CONFIG_SAVED_NEW; break;
} }
config_load = yon_char_new(config_load); config_load = yon_char_new(config_load);
@ -1221,6 +1232,24 @@ config_str yon_config_get_all(int *size){
} else return NULL; } else return NULL;
} }
config_str yon_config_get_all_modified(int *size){
*size = 0;
check_config{
config_str parameters = NULL;
dictionary *dict;
for_dictionaries(dict,(dictionary*)__yon__config__strings){
yon_config_parameter *param = (yon_config_parameter*)dict;
if (param->flag1==1||param->flag1==-1){
char *str = yon_char_unite(param->key,"=",(char*)param->data,NULL);
yon_char_parsed_add_or_create_if_exists(parameters,size,str);
free(str);
}
}
return parameters;
}
return NULL;
}
config_str yon_config_get_all_no_ignored(int *size){ config_str yon_config_get_all_no_ignored(int *size){
check_config{ check_config{
*size = 1; *size = 1;
@ -1274,3 +1303,12 @@ int yon_config_change_key(char *target, char *key){
} }
return 0; return 0;
} }
char *yon_config_parameter_get_key(char *parameter_string){
char *key = yon_char_new(parameter_string);
if (strstr(key,"[")&&strstr(key,"]")){
free(yon_char_divide_search(key,"[",-1));
yon_char_remove_last_symbol(key,']');
}
return key;
}

@ -130,5 +130,3 @@ void yon_launch(char *command)
{ {
int ansver = system(command); int ansver = system(command);
} }
// // Trash collector functions

@ -868,6 +868,9 @@ char *yon_config_command_get_section(const char *command);
int yon_config_command_get_path_pos(config_str parsed, int size); int yon_config_command_get_path_pos(config_str parsed, int size);
char *yon_config_command_get_path(const char *command); char *yon_config_command_get_path(const char *command);
char *yon_config_get_last_command();
void yon_config_set_last_command(char *command);
int yon_config_load_config(YON_CONFIG_TYPE config_type, ...); int yon_config_load_config(YON_CONFIG_TYPE config_type, ...);
int yon_config_change_key(char *target, char *key); int yon_config_change_key(char *target, char *key);
@ -1050,8 +1053,13 @@ int yon_config_force_save_registered(char *path);
*/ */
config_str yon_config_get_all(int *size); config_str yon_config_get_all(int *size);
config_str yon_config_get_all_modified(int *size);
config_str yon_config_get_all_no_ignored(int *size); config_str yon_config_get_all_no_ignored(int *size);
/*Возвращает ключ из параметра, или сам параметр если ключ не был найден*/
char *yon_config_parameter_get_key(char *parameter_string);
// 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