From 656cf1e42d396c91face04b37fc5095af4074eb2 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 14 Jul 2025 12:12:48 +0600 Subject: [PATCH 1/3] New function added; config parameter registering fixes --- source/libublsettings-config.c | 25 ++++++++++++++++++++++--- source/libublsettings.c | 4 +--- source/libublsettings.h | 2 ++ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 2045384..39682de 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -369,6 +369,7 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){ yon_config_set_status(key,-2); } else { yon_config_default_remove(key); + yon_config_set_status(key,0); } } } @@ -735,9 +736,9 @@ enum YON_CONFIG_SAVED_TYPE yon_config_register(char *key,char *config_load, char } switch(current->flag1){ - case -1: save_type = YON_CONFIG_SAVED_REMOVED; - case 1: save_type = YON_CONFIG_SAVED_CHANGED; - default: save_type = YON_CONFIG_SAVED_NEW; + case -1: save_type = YON_CONFIG_SAVED_REMOVED; break; + case 1: save_type = YON_CONFIG_SAVED_CHANGED; break; + default: save_type = YON_CONFIG_SAVED_NEW; break; } config_load = yon_char_new(config_load); @@ -1221,6 +1222,24 @@ config_str yon_config_get_all(int *size){ } 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){ check_config{ *size = 1; diff --git a/source/libublsettings.c b/source/libublsettings.c index 8ccc227..f7cf7cc 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -129,6 +129,4 @@ int yon_launch_app_with_arguments(char *name, char *args) void yon_launch(char *command) { int ansver = system(command); -} - -// // Trash collector functions +} \ No newline at end of file diff --git a/source/libublsettings.h b/source/libublsettings.h index e639adb..c3199a0 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -1050,6 +1050,8 @@ int yon_config_force_save_registered(char *path); */ 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); // terminal-using functions -- 2.35.1 From 9abb53b481c1b674ad120bb6f788e590234dc589 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 14 Jul 2025 18:02:30 +0600 Subject: [PATCH 2/3] Function added --- source/libublsettings-config.c | 10 ++++++++++ source/libublsettings.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 39682de..aa00f28 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -331,6 +331,15 @@ char *yon_config_command_get_path(const char *command){ 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, ...){ if (config_type!=YON_CONFIG_BOTH){ va_list args; @@ -341,6 +350,7 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){ while ((current=va_arg(args,char*))){ 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 Date: Fri, 25 Jul 2025 18:01:20 +0600 Subject: [PATCH 3/3] Added new function --- source/libublsettings-config.c | 9 +++++++++ source/libublsettings.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index aa00f28..b74a365 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -1302,4 +1302,13 @@ int yon_config_change_key(char *target, char *key){ dict->key = yon_char_new(key); } 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; } \ No newline at end of file diff --git a/source/libublsettings.h b/source/libublsettings.h index e49dfc8..ff6eed5 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -1057,6 +1057,9 @@ config_str yon_config_get_all_modified(int *size); config_str yon_config_get_all_no_ignored(int *size); +/*Возвращает ключ из параметра, или сам параметр если ключ не был найден*/ +char *yon_config_parameter_get_key(char *parameter_string); + // terminal-using functions /**yon_launch_app_with_arguments(char *name, char *args) -- 2.35.1