From 2c44f354d3b3954954d48b7e2f3b429ebd1942ed Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 6 Aug 2024 14:33:41 +0600 Subject: [PATCH] Test fix for crash at USERADD_SYNC editing --- source/ubl-settings-usergroups.c | 33 ++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 9e3ad8d..66aaace 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -1053,36 +1053,41 @@ void on_expiration_clicked(GtkWidget *self, ubl_settings_usergroups_user_window } void on_users_boot_toggled(GtkToggleButton *self){ - if (gtk_toggle_button_get_active(self)){ char *parameter = yon_config_get_by_key(USERADD_SYNC_parameter); + if (gtk_toggle_button_get_active(self)){ if (!parameter){ yon_config_register(USERADD_SYNC_parameter,USERADD_SYNC_parameter_command,"boot"); } else { - yon_config_append(USERADD_SYNC_parameter,"boot",","); + char *new_str = yon_char_append(parameter,",boot"); + yon_config_set(USERADD_SYNC_parameter,new_str); + free(parameter); } } else { - if (!strcmp(config(USERADD_SYNC_parameter),"boot")){ - yon_config_remove_by_key(USERADD_SYNC_parameter); - } else { - yon_config_remove_element(USERADD_SYNC_parameter,"boot",","); - } + char *new_str = yon_char_replace(parameter,"boot",""); + char *feasf = yon_char_replace(new_str,",",""); + free(new_str); + yon_config_set(USERADD_SYNC_parameter,feasf); + } + } void on_users_shutdown_toggled(GtkToggleButton *self){ - if (gtk_toggle_button_get_active(self)){ char *parameter = yon_config_get_by_key(USERADD_SYNC_parameter); + if (gtk_toggle_button_get_active(self)){ if (!parameter){ yon_config_register(USERADD_SYNC_parameter,USERADD_SYNC_parameter_command,"shutdown"); } else { - yon_config_append(USERADD_SYNC_parameter,"shutdown",","); + char *new_str = yon_char_append(parameter,",shutdown"); + yon_config_set(USERADD_SYNC_parameter,new_str); + free(parameter); } } else { - if (!strcmp(config(USERADD_SYNC_parameter),"shutdown")){ - yon_config_remove_by_key(USERADD_SYNC_parameter); - } else { - yon_config_remove_element(USERADD_SYNC_parameter,"shutdown",","); - } + char *new_str = yon_char_replace(parameter,"shutdown",""); + char *feasf = yon_char_replace(new_str,",",""); + free(new_str); + yon_config_set(USERADD_SYNC_parameter,feasf); + } }