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){
int psize=0;
int fo=0;
int so=0;
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_box_spawn(GTK_CONTAINER(window->StatusBox),REPEAT_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
@ -1745,6 +1747,18 @@ void on_log_save(GtkWidget *self, dictionary *dict){
if (strcmp(cur,""))
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;
char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
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;
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;
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)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),REPEATED_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
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]
* повторения
*/
int yon_char_parsed_check_repeats(char **parameters, int size){
for (int i=0;i<size;i++){
for (int j=0;j<size;j++){
if (parameters[i]&&parameters[j]){
if (!strcmp(parameters[i],parameters[j])&&i!=j)
int yon_char_parsed_check_repeats(char **parameters, int size, int *first_overlap, int *second_overlap){
*first_overlap=0;
*second_overlap=0;
for ((*first_overlap)=0;(*first_overlap)<size;(*first_overlap)++){
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;
}
}

@ -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_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);

Loading…
Cancel
Save