Fixing of repeat paths checking

pull/62/head
parent ac0b6d5a46
commit 813a4bd83c

@ -734,8 +734,10 @@ void on_logrotate_save(GtkWidget *self, dictionary *dict){
} }
if (paths){ if (paths){
int psize=0; int psize=0;
int fo=0;
int so=0;
config_str paths_parsed = yon_char_parse(paths,&psize,","); config_str paths_parsed = yon_char_parse(paths,&psize,",");
if (yon_char_parsed_check_repeats(paths_parsed,psize)){ if (yon_char_parsed_check_repeats(paths_parsed,psize,&fo,&so)){
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(window->LogPathsTree)); yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(window->LogPathsTree));
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),REPEAT_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),REPEAT_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return; return;
@ -1745,6 +1747,18 @@ void on_log_save(GtkWidget *self, dictionary *dict){
if (strcmp(cur,"")) if (strcmp(cur,""))
pathse=yon_char_unite(pathse ? yon_char_append(pathse,"\n"):"",cur,NULL); pathse=yon_char_unite(pathse ? yon_char_append(pathse,"\n"):"",cur,NULL);
} }
int fo=0;
int so=0;
int paths_size;
config_str paths_parsed = yon_char_parse(pathse,&paths_size,"\n");
if (yon_char_parsed_check_repeats(paths_parsed,paths_size,&fo,&so)){
GList *list = gtk_container_get_children(GTK_CONTAINER(window->LogPathsBox));
yon_ubl_status_highlight_incorrect((GtkWidget*)g_list_nth_data(list,so));
yon_ubl_status_highlight_incorrect((GtkWidget*)g_list_nth_data(list,fo));
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),REPEAT_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
}
GtkTreeIter iter; GtkTreeIter iter;
char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry)); char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
char *desc = (char*)gtk_entry_get_text(GTK_ENTRY(window->LogDescriptionEntry)); char *desc = (char*)gtk_entry_get_text(GTK_ENTRY(window->LogDescriptionEntry));
@ -1765,14 +1779,8 @@ void on_log_save(GtkWidget *self, dictionary *dict){
} }
int paths_size=0; int paths_size=0;
config_str paths_parsed = yon_char_parse(paths,&paths_size,"\n"); config_str paths_parsed = yon_char_parse(paths,&paths_size,"\n");
if (yon_char_parsed_check_repeats(paths_parsed,paths_size)){
yon_ubl_status_highlight_incorrect(window->LogPathsBox);
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),REPEAT_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
}
int pathse_size=0; int pathse_size=0;
config_str pathse_parsed = yon_char_parse(pathse,&pathse_size,"\n"); config_str pathse_parsed = yon_char_parse(pathse,&pathse_size,"\n");
if (yon_char_parsed_includes_char_parsed(pathse_parsed,paths_parsed,pathse_size,paths_size)){ if (yon_char_parsed_includes_char_parsed(pathse_parsed,paths_parsed,pathse_size,paths_size)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),REPEATED_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),REPEATED_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->LogPathsBox); yon_ubl_status_highlight_incorrect(window->LogPathsBox);

@ -776,11 +776,13 @@ int yon_char_parsed_check_exist(char **parameters, int size, char *param){
* Проверяет есть ли в массиве строк [parameters], размера [size] * Проверяет есть ли в массиве строк [parameters], размера [size]
* повторения * повторения
*/ */
int yon_char_parsed_check_repeats(char **parameters, int size){ int yon_char_parsed_check_repeats(char **parameters, int size, int *first_overlap, int *second_overlap){
for (int i=0;i<size;i++){ *first_overlap=0;
for (int j=0;j<size;j++){ *second_overlap=0;
if (parameters[i]&&parameters[j]){ for ((*first_overlap)=0;(*first_overlap)<size;(*first_overlap)++){
if (!strcmp(parameters[i],parameters[j])&&i!=j) for ((*second_overlap)=0;(*second_overlap)<size;(*second_overlap)++){
if (parameters[(*first_overlap)]&&parameters[(*second_overlap)]){
if (!strcmp(parameters[(*first_overlap)],parameters[(*second_overlap)])&&(*first_overlap)!=(*second_overlap))
return 1; return 1;
} }
} }

@ -155,7 +155,7 @@ char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete);
int yon_char_parsed_check_exist(char **parameters, int size, char *param); int yon_char_parsed_check_exist(char **parameters, int size, char *param);
int yon_char_parsed_check_repeats(char **parameters, int size); int yon_char_parsed_check_repeats(char **parameters, int size, int *first_overlap, int *second_overlap);
int yon_char_find_count(char *source, char *find); int yon_char_find_count(char *source, char *find);

Loading…
Cancel
Save