From 3c8539e8b6ec2ccd1ac4fdc3417b435f8242a10c Mon Sep 17 00:00:00 2001 From: Valko Laszlo Date: Sat, 12 May 2018 15:37:02 +0200 Subject: [PATCH] Fixed missing UninstallString from variables. --- pkgtool.pm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgtool.pm b/pkgtool.pm index 0c18306..59d3e2d 100644 --- a/pkgtool.pm +++ b/pkgtool.pm @@ -1890,8 +1890,18 @@ sub remove_packages ($$$$$$$$$$$$) $db, $def, $name, $dispname, $basedir, $genericmsiparams, $config, $counters, $removecontext); } else { - $error = remove_package_fallback($channel, $vars, $paramlist, $inst, $condition, $dispname, + my $uninst = $$inst{Uninstall}; + my $quninst = $$inst{QUninstall}; + $quninst = $uninst unless defined $quninst; + + my $set = 0; + if (defined $quninst && ! defined $$vars{uninstallstring}) { + $$vars{uninstallstring} = $quninst; + $set =1; + } + $error = remove_package_fallback($channel, $vars, $paramlist, $inst, $condition, $dispname, $ver, $printver, $db, $counters, $removecontext); + delete $$vars{uninstallstring} if $set; } return $error if defined $error; }