[pacman-dev] [PATCH] Ask user confirmation for -R operation, too
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@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
On Tue, Sep 15, 2009 at 5:47 AM, Nagy Gabor <ngaba@bibl.u-szeged.hu> wrote:
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@bibl.u-szeged.hu> --- src/pacman/remove.c | 26 +++++++++++--------------- 1 files changed, 11 insertions(+), 15 deletions(-)
Looks good to me, anyone else?
Dan McGee wrote:
On Tue, Sep 15, 2009 at 5:47 AM, Nagy Gabor <ngaba@bibl.u-szeged.hu> wrote:
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@bibl.u-szeged.hu> --- src/pacman/remove.c | 26 +++++++++++--------------- 1 files changed, 11 insertions(+), 15 deletions(-)
Looks good to me, anyone else?
Me too.
On Tue, Sep 15, 2009 at 2:08 PM, Dan McGee <dpmcgee@gmail.com> wrote:
On Tue, Sep 15, 2009 at 5:47 AM, Nagy Gabor <ngaba@bibl.u-szeged.hu> wrote:
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@bibl.u-szeged.hu> --- src/pacman/remove.c | 26 +++++++++++--------------- 1 files changed, 11 insertions(+), 15 deletions(-)
Looks good to me, anyone else?
+1
participants (4)
-
Allan McRae
-
Dan McGee
-
Nagy Gabor
-
Xavier