From 8e60c973fbfb868cd6d62d04a5bdfece09dd68fe Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 2 Nov 2023 18:21:48 +0600 Subject: [PATCH] Repetition check implemented --- source/ubl-settings-logging.c | 37 +++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c index a144697..fde2c56 100644 --- a/source/ubl-settings-logging.c +++ b/source/ubl-settings-logging.c @@ -619,12 +619,29 @@ void on_logrotate_save(GtkWidget *self, dictionary *dict){ char *endscript=""; GtkTreeIter iter; - int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); + int matched=0; + int path_amount=0; + config_str found_paths_list=NULL; + int found_paths=0; + char *cur_check_paths; + int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.logrotate_list),&iter); + for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.logrotate_list),&iter)){ + gtk_tree_model_get(GTK_TREE_MODEL(main_config.logrotate_list),&iter,1,&cur_check_paths,-1); + if (!found_paths_list) found_paths_list = yon_char_parsed_new(&found_paths,cur_check_paths,NULL); + else found_paths_list = yon_char_parsed_append(found_paths_list,&found_paths,cur_check_paths); + } + valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter); for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){ char *cur_path; gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&cur_path,-1); + for (int i=0;ipaths) + if (matched==path_amount) return; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->RotationPeriodCheck))){ int active = gtk_combo_box_get_active(GTK_COMBO_BOX(window->RotationPeriodMainCombo)); switch (active){ @@ -1160,13 +1177,29 @@ void on_logrotate_remove(GtkWidget *self, logrotate_window *window){ void on_logrotate_apps_configure(GtkWidget *self, logrotate_window *window){ GtkTreeModel *model = GTK_TREE_MODEL(main_config.logrotate_apps_list); - GtkTreeIter iter,itar; + GtkTreeIter iter,itar,itor; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->AppsMainTree)),&model,&iter)){ char *paths; char *name; char *settings; + int cur_size=0; + int found=0; gtk_list_store_append(main_config.logrotate_list,&itar); gtk_tree_model_get(model,&iter,0,&name,1,&paths,2,&settings,-1); + config_str cur = yon_char_parse(paths,&cur_size,"\n"); + int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.logrotate_list),&itor); + for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.logrotate_list),&itor)){ + char *check_paths; + gtk_tree_model_get(GTK_TREE_MODEL(main_config.logrotate_list),&itor,1,&check_paths,-1); + int check_size=0; + config_str parsed_check = yon_char_parse(check_paths,&check_size,"\n"); + for (int i=0;i