From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 125729 invoked by alias); 1 Jan 2020 14:55:01 -0000 Mailing-List: contact cygwin-apps-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-apps-cvs-owner@sourceware.org Received: (qmail 125669 invoked by uid 9795); 1 Jan 2020 14:55:01 -0000 Date: Wed, 01 Jan 2020 14:55:00 -0000 Message-ID: <20200101145501.125658.qmail@sourceware.org> From: jturney@sourceware.org To: cygwin-apps-cvs@sourceware.org Subject: [setup - the official Cygwin setup program] branch master, updated. release_2.899 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 45d605870a01b9097c16f7d1bfc7b041fe61fb90 X-Git-Newrev: e435a212a6e85169616a67c08eab1d9a387c6cfc X-SW-Source: 2020-q1/txt/msg00000.txt https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=e435a212a6e85169616a67c08eab1d9a387c6cfc commit e435a212a6e85169616a67c08eab1d9a387c6cfc Author: Jon Turney Date: Wed Jan 1 14:38:45 2020 +0000 Fix cases where incorrect action is stored by set_action() set_action() with action = Install_action and desired = empty version when curr = empty version is equivalent to action = NoChange_Action. (This can occur if we are selecting a category for install on the command line, and that category happens to include a package which only has a test version, but no current version) (For completeness, also address the case of action = Install_action, desired = empty_version, where curr = some version is equivalent to action = Uninstall_action) Diff: --- package_meta.cc | 49 +++++++++++++++++++++++++------------------------ 1 files changed, 25 insertions(+), 24 deletions(-) diff --git a/package_meta.cc b/package_meta.cc index 940f69a..1f6ab16 100644 --- a/package_meta.cc +++ b/package_meta.cc @@ -549,30 +549,31 @@ packagemeta::set_action (_actions action, packageversion const &default_version, else if (action == Install_action) { desired = default_version; - if (desired) - { - if (desired != installed) - if (desired.accessible ()) - { - /* Memorize the fact that the user picked to install this package at least once. */ - if (useraction) - user_picked = true; - - pick (true); - srcpick (false); - } - else - { - pick (false); - srcpick (true); - } - else - { - action = NoChange_action; - pick (false); - srcpick (false); - } - } + if (desired != installed) + if (desired.accessible ()) + { + /* Memorize the fact that the user picked to install this package at least once. */ + if (useraction) + user_picked = true; + + pick (true); + srcpick (false); + + /* Install no version is Uninstall */ + if (!desired) + action = Uninstall_action; + } + else + { + pick (false); + srcpick (true); + } + else + { + action = NoChange_action; + pick (false); + srcpick (false); + } } else if (action == Reinstall_action) {