diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index d99e9c2..67a22de 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -183,11 +183,20 @@ void on_save(){ packnames = yon_char_unite(packnames, strcmp(packnames,"")!=0 ? " " : "", name, NULL); gtk_tree_store_set(main_config.tree_store,&childIter,4,0,5,0,-1); if (status==-1) { - remove_flagged = yon_char_unite(remove_flagged ? yon_char_append(remove_flagged,",") : " -p ",path,NULL); + remove_flagged = yon_char_unite(remove_flagged ? yon_char_append(remove_flagged,",") : " -p ",name,NULL); deleteIter = gtk_tree_iter_copy(&childIter); - gtk_tree_model_iter_previous(GTK_TREE_MODEL(main_config.tree_store),&childIter); - gtk_tree_store_remove(main_config.tree_store,deleteIter); + if (gtk_tree_model_iter_previous(GTK_TREE_MODEL(main_config.tree_store),&childIter)) + gtk_tree_store_remove(main_config.tree_store,deleteIter); + else { + childIter = *gtk_tree_iter_copy(deleteIter); + if (gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&childIter)) + gtk_tree_store_remove(main_config.tree_store,deleteIter); + else { + gtk_tree_store_remove(main_config.tree_store,deleteIter); + break; + } + } } else if (status == 1&&deleted==0) { add_flagged = yon_char_unite(add_flagged ? yon_char_append(add_flagged,",") : " -p ",path,NULL);gtk_tree_store_set(main_config.tree_store,&childIter,0,"com.ublinux.ubl-settings-repomanager.document-symbolic",-1); } @@ -200,20 +209,25 @@ void on_save(){ } if (origin_flagged) remove_command = remove_flagged ? yon_char_unite(remove_command,remove_flagged,NULL) : NULL; - add_command = add_flagged ? yon_char_unite(add_command, add_flagged,NULL) : add_command; + add_command = add_flagged ? yon_char_unite(add_command, add_flagged,NULL) : NULL; printf("%s\n%s\n",remove_command,add_command); if (remove_command) system(remove_command); if (add_command) system(add_command); if (repostatus==-1) { yon_window_config_erase_custom_parameter(yon_char_unite(origin_flagged,"/",name_flagged,NULL),"repos"); - remove_command = yon_char_unite("rm -rdf ",origin_flagged,"/",name_flagged,NULL); + remove_command = yon_char_unite("rm -rdf ",origin_flagged,"/*",NULL); system (remove_command); deleteIter = gtk_tree_iter_copy(&iter); if (gtk_tree_model_iter_previous(GTK_TREE_MODEL(main_config.tree_store),&iter)) gtk_tree_store_remove(main_config.tree_store,deleteIter); else { - gtk_tree_store_remove(main_config.tree_store,deleteIter); - return; + iter = *gtk_tree_iter_copy(deleteIter); + if (gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&iter)) + gtk_tree_store_remove(main_config.tree_store,deleteIter); + else { + gtk_tree_store_remove(main_config.tree_store,deleteIter); + continue; + } } continue; } }