[setup - the official Cygwin setup program] branch master, updated. release_2.899
jturney@sourceware.org
jturney@sourceware.org
Wed Jan 1 14:55:00 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=e435a212a6e85169616a67c08eab1d9a387c6cfc
commit e435a212a6e85169616a67c08eab1d9a387c6cfc
Author: Jon Turney <jon.turney@dronecode.org.uk>
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)
{
More information about the Cygwin-apps-cvs
mailing list