From 789d856795bba49ea4b0ad0ac7ce96601bf22d0c Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 20 Mar 2026 14:18:47 +0600 Subject: [PATCH] Test loading parameters from configuration when configuration page opens --- source/ubinstall-gtk-bootloader.c | 33 ++++++----------------- source/ubinstall-gtk-components.c | 20 +++++++------- source/ubinstall-gtk-grub.c | 10 +------ source/ubinstall-gtk-installation.c | 33 +++++------------------ source/ubinstall-gtk-kernel.c | 7 +---- source/ubinstall-gtk-keyboard.c | 17 ++---------- source/ubinstall-gtk-language.c | 16 ++--------- source/ubinstall-gtk-network.c | 35 ++++++------------------- source/ubinstall-gtk-packages.c | 13 +++------ source/ubinstall-gtk-region.c | 17 +++--------- source/ubinstall-gtk-separate.c | 10 +------ source/ubinstall-gtk-source.c | 10 +------ source/ubinstall-gtk-startup-apps.c | 15 ++--------- source/ubinstall-gtk-startup-services.c | 15 ++--------- source/ubinstall-gtk-users.c | 30 +++++---------------- 15 files changed, 57 insertions(+), 224 deletions(-) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index ceba4ec..3bd4bc4 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -26,29 +26,19 @@ int yon_bootloader_save(main_window *widgets){ gtk_tree_model_get(model,&iter,0,&is_admin,1,&username,2,&password,-1); yon_config_register(GRUB_PASSWORD_parameter(username),GRUB_PASSWORD_parameter_command(username),password); if (is_admin){ - yon_config_append_element(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,username); + yon_config_append_element(GRUB_SUPERUSERS_parameter,username,","); } else { yon_config_remove_by_key(GRUB_SUPERUSERS_parameter); } } + if (!main_config.configure_mode){ int user_size=0; - int param_size=0; config_str users = yon_config_get_all_keys_by_key(GRUB_PASSWORD_parameter_search,&user_size); - config_str user_parameters = yon_config_get_save_parameters_by_list(¶m_size,users,user_size); - yon_char_parsed_free(users,user_size); - char *user_string = yon_char_parsed_to_string(user_parameters,param_size," "); - yon_char_parsed_free(user_parameters,param_size); - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,GRUB_TIMEOUT_parameter,GRUB_SUPERUSERS_parameter,NULL); - if (parameters||user_parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system remove [autoinstall] ",GRUB_PASSWORD_parameter_all,"; ",ubconfig_dull_command,"--target system ",command_parameters, " ", user_string, NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_char_parsed_add_or_create_if_exists(users,&user_size,GRUB_SUPERUSERS_parameter); + yon_char_parsed_add_or_create_if_exists(users,&user_size,GRUB_TIMEOUT_parameter); + yon_config_save_list_simple(users, user_size,main_config.config_load_path); } yon_bootloader_interface_update(widgets); @@ -458,16 +448,9 @@ void yon_bootloader_init(main_window *widgets){ if (!main_config.configure_mode){ int size = 0; config_str users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&size); - yon_config_remove_by_list(users,(size_t)size); - yon_config_remove_by_args(GRUB_TIMEOUT_parameter,GRUB_SUPERUSERS_parameter,NULL); - char *command = yon_config_parameter_prepare_command(GRUB_TIMEOUT_parameter,main_config.config_load_path,NULL,NULL); - char *command2 = yon_config_parameter_prepare_command(GRUB_SUPERUSERS_parameter,main_config.config_load_path,NULL,NULL); - char *command3 = yon_config_parameter_prepare_command(GRUB_PASSWORD_parameter_all,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,command2,command3,NULL); - yon_char_parsed_free(users,size); - free(command); - free(command2); - free(command3); + yon_config_remove_by_list(users,size); + yon_config_update_by_args(GRUB_TIMEOUT_parameter,GRUB_SUPERUSERS_parameter,NULL); + yon_config_load_config(YON_CONFIG_CUSTOM,ubconfig_load_command(main_config.config_load_path),GRUB_PASSWORD_parameter_command_all,NULL); } gtk_list_store_clear(widgets->BootloadUsersList); char *timeout = config(GRUB_TIMEOUT_parameter); diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index bccefbc..0771942 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -257,9 +257,9 @@ void yon_modules_missed_func(main_window *widgets){ void yon_os_components_init(main_window *widgets){ - yon_config_remove_by_args(modules_parameter,NULL); - char *command = yon_config_parameter_prepare_command(modules_parameter_command,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); + if (!main_config.configure_mode){ + yon_config_update_by_args(modules_parameter,NULL); + } int size = 0; GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); GList *iter; @@ -429,10 +429,9 @@ gboolean yon_software_insert(struct row_data *row_input){ } void yon_software_init(main_window *widgets){ - yon_config_remove_by_args(packages_parameter,NULL); - char *command = yon_config_parameter_prepare_command(packages_parameter_command,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); - free(command); + if (!main_config.configure_mode){ + yon_config_update_by_args(packages_parameter,NULL); + } GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList)); GList *iter; for (iter=list;iter;iter=iter->next){ @@ -502,10 +501,9 @@ int yon_pacman_software_save(main_window *widgets){ } void yon_pacman_init(main_window *widgets){ - yon_config_remove_by_args(packages_parameter,NULL); - char *command = yon_config_parameter_prepare_command(packages_parameter_command,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); - free(command); + if (!main_config.configure_mode){ + yon_config_update_by_args(packages_parameter,NULL); + } gtk_list_store_clear(widgets->PacmanSoftwareChosenList); char *pacman_packages = config(packages_parameter); diff --git a/source/ubinstall-gtk-grub.c b/source/ubinstall-gtk-grub.c index 9dc05a8..0e151f3 100644 --- a/source/ubinstall-gtk-grub.c +++ b/source/ubinstall-gtk-grub.c @@ -57,15 +57,7 @@ int yon_grub_update_save(main_window *widgets){ yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update"); if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,device_parameter,part_parameter,AUTOINSTALL_TYPE_INSTALL,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,device_parameter,part_parameter,AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL,NULL); } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c index 3e9cae3..4a0d2d3 100644 --- a/source/ubinstall-gtk-installation.c +++ b/source/ubinstall-gtk-installation.c @@ -30,15 +30,7 @@ int yon_install_common_save(main_window *widgets){ } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_label_parameter,part_fs_type_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_label_parameter,part_fs_type_parameter,NULL); } return 1; } @@ -112,15 +104,7 @@ int yon_install_separate_save(main_window *widgets){ } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_label_parameter,part_fs_type_parameter,device_parameter,part_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,part_format_parameter,part_label_parameter,part_fs_type_parameter,device_parameter,part_parameter,NULL); } return 1; } @@ -170,15 +154,7 @@ int yon_install_same_partition_save(main_window *widgets){ yon_config_remove_by_key(part_fs_type_parameter); } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_size_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,part_format_parameter,part_size_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_parameter,NULL); } return 1; } @@ -340,6 +316,9 @@ void yon_userdata_password_open(GtkWidget *, main_window *widgets){ } void yon_install_init(main_window *widgets, enum YON_PAGES page){ + if (!main_config.configure_mode){ + yon_config_update_by_args(AUTOINSTALL_TYPE_INSTALL,device_parameter,part_label_parameter,part_fs_type_parameter,NULL); + } yon_devices_setup(widgets); GtkWidget *device_tree = NULL; diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index 8347e7d..d57d181 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -188,12 +188,7 @@ void yon_kernel_addon_resize(main_window *widgets){ void yon_kernel_init(main_window *widgets){ if (!main_config.configure_mode){ - yon_config_remove_by_args(packages_parameter,KERNEL_BOOT_parameter,NULL); - char *command = yon_config_parameter_prepare_command(packages_parameter_command,main_config.config_load_path,NULL,NULL); - char *command2 = yon_config_parameter_prepare_command(KERNEL_BOOT_parameter,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,command2,NULL); - free(command); - free(command2); + yon_config_update_by_args(packages_parameter,KERNEL_BOOT_parameter,NULL); } GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox)); GList *iter; diff --git a/source/ubinstall-gtk-keyboard.c b/source/ubinstall-gtk-keyboard.c index 2a7ab0e..7aa1ea6 100644 --- a/source/ubinstall-gtk-keyboard.c +++ b/source/ubinstall-gtk-keyboard.c @@ -48,15 +48,7 @@ int yon_keyboard_save(main_window *widgets){ yon_config_remove_by_key(num_lock_boot_parameter); } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,xkbmodel_parameter,num_lock_boot_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,xkbmodel_parameter,num_lock_boot_parameter,NULL); } on_options_save(NULL,widgets); return 1; @@ -64,12 +56,7 @@ int yon_keyboard_save(main_window *widgets){ void yon_keyboard_init(main_window *widgets){ if (!main_config.configure_mode){ - yon_config_remove_by_args(xkbmodel_parameter,num_lock_boot_parameter,NULL); - char *command1 = yon_config_parameter_prepare_command(xkbmodel_parameter_command,main_config.config_load_path,NULL,NULL); - char *command2 = yon_config_parameter_prepare_command(num_lock_boot_parameter_command,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command1,command2,NULL); - free(command1); - free(command2); + yon_config_update_by_args(xkbmodel_parameter,num_lock_boot_parameter,NULL); } g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardModelCombo),G_CALLBACK(on_model_changed),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->KeyboardDefaultLayoutsSwitch),G_CALLBACK(on_layout_default_toggled),widgets); diff --git a/source/ubinstall-gtk-language.c b/source/ubinstall-gtk-language.c index a99cd87..450d100 100644 --- a/source/ubinstall-gtk-language.c +++ b/source/ubinstall-gtk-language.c @@ -273,15 +273,7 @@ int yon_language_save(main_window *widgets){ yon_config_remove_by_key(locale_parameter); } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,lang_parameter,locale_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,lang_parameter,locale_parameter,NULL); } return 1; @@ -289,11 +281,7 @@ int yon_language_save(main_window *widgets){ void yon_language_init(main_window *widgets){ if (!main_config.configure_mode){ - yon_config_remove_by_args(lang_parameter, locale_parameter,NULL); - char *command = yon_config_parameter_prepare_command(lang_parameter_command,main_config.config_load_path,NULL,NULL); - char *command2 = yon_config_parameter_prepare_command(locale_parameter_command,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,command2,NULL); - free(command); + yon_config_update_by_args(lang_parameter, locale_parameter,NULL); } yon_language_update(widgets); } diff --git a/source/ubinstall-gtk-network.c b/source/ubinstall-gtk-network.c index d1d9c6d..cad5d64 100644 --- a/source/ubinstall-gtk-network.c +++ b/source/ubinstall-gtk-network.c @@ -305,22 +305,12 @@ int yon_network_save(main_window *widgets){ } if (!main_config.configure_mode){ int connect_size=0; - int param_size=0; - config_str connections = yon_config_get_all_keys_by_key(NETWORK_parameter_search,&connect_size); - config_str connection_parameters = yon_config_get_save_parameters_by_list(¶m_size,connections,connect_size); - yon_char_parsed_free(connections,connect_size); - - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,DOMAIN_parameter,DOMAIN_admanger_parameter,NTPSERVERS_parameter,hostname_parameter,NULL); - if (parameters||connection_parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *connections_string = yon_char_parsed_to_string(connection_parameters,param_size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system remove [autoinstall] ",NETWORK_parameter_all,"; ", ubconfig_dull_command,"--target system ",yon_char_return_if_exist(command_parameters,""), " ", connections_string,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_char_parsed_add_or_create_if_exists(connections,&connect_size,DOMAIN_parameter); + yon_char_parsed_add_or_create_if_exists(connections,&connect_size,DOMAIN_admanger_parameter); + yon_char_parsed_add_or_create_if_exists(connections,&connect_size,NTPSERVERS_parameter); + yon_char_parsed_add_or_create_if_exists(connections,&connect_size,hostname_parameter); + yon_config_save_list_simple(connections,connect_size,main_config.config_load_path); } return 1; } @@ -329,18 +319,9 @@ void yon_network_init(main_window *widgets){ if (!main_config.configure_mode){ int size = 0; config_str users = yon_config_get_all_by_key(NETWORK_parameter_search,&size); - yon_config_remove_by_list(users,(size_t)size); - yon_config_remove_by_args(DOMAIN_parameter,DOMAIN_admanger_parameter,NTPSERVERS_parameter,hostname_parameter,NULL); - char *command = yon_config_parameter_prepare_command(DOMAIN_parameter,main_config.config_load_path,NULL,NULL); - char *command2 = yon_config_parameter_prepare_command(DOMAIN_admanger_parameter,main_config.config_load_path,NULL,NULL); - char *command3 = yon_config_parameter_prepare_command(NTPSERVERS_parameter,main_config.config_load_path,NULL,NULL); - char *command4 = yon_config_parameter_prepare_command(hostname_parameter,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,command2,command3,command4,NULL); - yon_char_parsed_free(users,size); - free(command); - free(command2); - free(command3); - free(command4); + yon_config_remove_by_list(users,size); + yon_config_update_by_args(DOMAIN_parameter,DOMAIN_admanger_parameter,NTPSERVERS_parameter,hostname_parameter,NULL); + yon_config_load_config(YON_CONFIG_CUSTOM,ubconfig_load_command(main_config.config_load_path),NETWORK_parameter_all,NULL); } GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->NetworkConnectionsBox)); GList *iter; diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index f2dc9d1..b8bfc1b 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -28,15 +28,7 @@ int yon_packages_tab_save(main_window *widgets){ } } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,packages_parameter,NULL); } return 1; } @@ -71,6 +63,9 @@ GtkTreeIter *yon_subcategory_check(GtkTreeStore *target, GtkTreeIter *parent_ite } void yon_packages_tab_init(main_window *widgets){ + if (!main_config.configure_mode){ + yon_config_update_by_args(packages_parameter,NULL); + } if (!main_config.configure_mode){ yon_config_remove_by_args(packages_parameter,NULL); char *command = yon_config_parameter_prepare_command(packages_parameter_command,main_config.config_load_path,NULL,NULL); diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index b87d15c..a6080d3 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -19,15 +19,7 @@ int yon_region_save(main_window *widgets){ yon_config_register(zone_parameter,zone_parameter_command,final); free(final); if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,zone_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,zone_parameter,NULL); } return 1; } @@ -197,10 +189,9 @@ void on_region_entry_changed(GtkWidget *, main_window *widgets){ } void yon_region_init(main_window *widgets){ - yon_config_remove_by_args(zone_parameter,NULL); - char *command = yon_config_parameter_prepare_command(zone_parameter_command,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); - free(command); + if (!main_config.configure_mode){ + yon_config_update_by_args(zone_parameter,NULL); + } yon_timezone_init(); gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->RegionCombo)); gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo)); diff --git a/source/ubinstall-gtk-separate.c b/source/ubinstall-gtk-separate.c index 4a8aeb4..809e43b 100644 --- a/source/ubinstall-gtk-separate.c +++ b/source/ubinstall-gtk-separate.c @@ -23,15 +23,7 @@ int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char * if(cur_section) free(cur_section); if(cur_device) free(cur_device); if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,device_parameter,AUTOINSTALL_TYPE_INSTALL,part_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,device_parameter,AUTOINSTALL_TYPE_INSTALL,part_parameter,NULL); } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-source.c b/source/ubinstall-gtk-source.c index 793e480..8e1791e 100644 --- a/source/ubinstall-gtk-source.c +++ b/source/ubinstall-gtk-source.c @@ -222,15 +222,7 @@ void on_source_accept(GtkWidget *,source_window *window){ yon_config_remove_by_key(source_parameter); } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,source_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(command)){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,source_parameter,NULL); } on_subwindow_close(window->Window); free(window); diff --git a/source/ubinstall-gtk-startup-apps.c b/source/ubinstall-gtk-startup-apps.c index 8efbd2b..a39af09 100644 --- a/source/ubinstall-gtk-startup-apps.c +++ b/source/ubinstall-gtk-startup-apps.c @@ -43,10 +43,7 @@ void on_startup_apps_remove(GtkWidget *self,main_window *widgets){ void yon_startup_apps_init(main_window *widgets){ if (!main_config.configure_mode){ - yon_config_remove_by_args(AUTOEXEC_parameter,NULL); - char *command = yon_config_parameter_prepare_command(AUTOEXEC_parameter_command,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); - free(command); + yon_config_update_by_args(AUTOEXEC_parameter,NULL); } GtkTreeIter iter; gtk_list_store_clear(widgets->StartupAppsList); @@ -219,15 +216,7 @@ int yon_startup_app_save(main_window *widgets){ yon_config_remove_by_key(AUTOEXEC_parameter); } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOEXEC_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,AUTOEXEC_parameter,NULL); } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-startup-services.c b/source/ubinstall-gtk-startup-services.c index 3705d8a..b03bffb 100644 --- a/source/ubinstall-gtk-startup-services.c +++ b/source/ubinstall-gtk-startup-services.c @@ -51,10 +51,7 @@ void on_startup_services_remove(GtkWidget *self,main_window *widgets){ void yon_startup_services_init(main_window *widgets){ if (!main_config.configure_mode){ - yon_config_remove_by_args(SERVICES_ENABLE_parameter,NULL); - char *command = yon_config_parameter_prepare_command(SERVICES_ENABLE_parameter_command,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); - free(command); + yon_config_update_by_args(SERVICES_ENABLE_parameter,NULL); } GtkTreeIter iter; gtk_list_store_clear(widgets->StartupList); @@ -223,15 +220,7 @@ int yon_startup_save(main_window *widgets){ yon_config_remove_by_key(SERVICES_ENABLE_parameter); } if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,SERVICES_ENABLE_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } + yon_config_save_args_simple(main_config.config_load_path,SERVICES_ENABLE_parameter,NULL); } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index 652fa64..4c302d4 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -34,22 +34,10 @@ int yon_users_save(main_window *widgets){ if (!main_config.configure_mode){ int users_size; - int param_size=0; config_str users = yon_config_get_all_keys_by_key(USERADD_parameter_search,&users_size); - config_str users_parameters = yon_config_get_save_parameters_by_list(¶m_size,users,users_size); - yon_char_parsed_free(users,users_size); - - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,autologin_parameter,root_password_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *parameter = yon_char_parsed_to_string(users_parameters,param_size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system remove [autoinstall] ",USERADD_parameter_all,"; ", ubconfig_dull_command,"--target system ",yon_char_return_if_exist(command_parameters,""), " ", parameter,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } - yon_char_parsed_free(users_parameters,param_size); + yon_char_parsed_add_or_create_if_exists(users,&users_size,root_password_parameter); + yon_char_parsed_add_or_create_if_exists(users,&users_size,autologin_parameter); + yon_config_save_list_simple(users,users_size,main_config.config_load_path); } return 1; } @@ -149,15 +137,9 @@ void yon_user_init(main_window *widgets){ if (!main_config.configure_mode){ int size = 0; config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&size); - yon_config_remove_by_list(users,(size_t)size); - yon_config_remove_by_args(autologin_parameter,root_password_parameter,NULL); - char *command1 = yon_config_parameter_prepare_command(autologin_parameter_command,main_config.config_load_path,NULL,NULL); - char *command2 = yon_config_parameter_prepare_command(root_password_parameter_command,main_config.config_load_path,NULL,NULL); - char *command3 = yon_config_parameter_prepare_command(USERADD_parameter_all,main_config.config_load_path,NULL,NULL); - yon_config_load_config(YON_CONFIG_CUSTOM,command1,command2,command3,NULL); - free(command1); - free(command2); - free(command3); + yon_config_remove_by_list(users,size); + yon_config_update_by_args(autologin_parameter,root_password_parameter,NULL); + yon_config_load_config(YON_CONFIG_CUSTOM,ubconfig_load_command(main_config.config_load_path),USERADD_parameter_all,NULL); } gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo)); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo),NULL,DEFAULT_LABEL);