From 656cf1e42d396c91face04b37fc5095af4074eb2 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 14 Jul 2025 12:12:48 +0600 Subject: [PATCH] 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