[pacman-dev] [PATCH] Ask user confirmation for -R operation, too

Nagy Gabor ngaba at bibl.u-szeged.hu
Tue Sep 15 06:47:30 EDT 2009


After commit 0da96abc, pacman always asks user confirmation for -U, so it is
more coherent for doing that for -R, too.

Btw, most users use -Rs always, so they won't notice any change. In the old
code the -Ru operation was forgotten: Though it is not "dangerous", but the
target list can be changed by that operation too.

Non-interactive scripts should use --noconfirm always (unexpected questions
can be asked by all transactions). [That's we should always default to the
safest answers.]

I also added a pkglist != NULL sanity check (because -Ru can empty target
list in trans_prepare part).

Signed-off-by: Nagy Gabor <ngaba at bibl.u-szeged.hu>
---
 src/pacman/remove.c |   26 +++++++++++---------------
 1 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/src/pacman/remove.c b/src/pacman/remove.c
index ced4e12..6d44350 100644
--- a/src/pacman/remove.c
+++ b/src/pacman/remove.c
@@ -115,23 +115,19 @@ int pacman_remove(alpm_list_t *targets)
 		goto cleanup;
 	}
 
-	/* Warn user in case of dangerous operation */
-	if(config->flags & PM_TRANS_FLAG_RECURSE ||
-	   config->flags & PM_TRANS_FLAG_CASCADE) {
-		/* list transaction targets */
-		alpm_list_t *pkglist = alpm_trans_get_remove();
-
-		display_targets(pkglist, 0);
-		printf("\n");
-
-		/* get confirmation */
-		if(yesno(_("Do you want to remove these packages?")) == 0) {
-			retval = 1;
-			goto cleanup;
-		}
+	/* Step 3: actually perform the removal */
+	alpm_list_t *pkglist = alpm_trans_get_remove();
+	if(pkglist == NULL) {
+		goto cleanup; /* we are done */
+	}
+	/* print targets and ask user confirmation */
+	display_targets(pkglist, 0);
+	printf("\n");
+	if(yesno(_("Do you want to remove these packages?")) == 0) {
+		retval = 1;
+		goto cleanup;
 	}
 
-	/* Step 3: actually perform the removal */
 	if(alpm_trans_commit(NULL) == -1) {
 		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
 		        alpm_strerrorlast());
-- 
1.6.4.3



More information about the pacman-dev mailing list