summaryrefslogtreecommitdiff
path: root/apt-private
diff options
context:
space:
mode:
authorsid <sidtosh4@gmail.com>2024-07-03 10:20:32 +0100
committersid <sidtosh4@gmail.com>2024-07-05 05:27:32 +0100
commitc575648f41ff09e72988976f8150e9bb51781cd4 (patch)
tree57c94b7a34d031319f4a4fd4c0764aa477450007 /apt-private
parent761852064521d9f34d3179c002427658342b6f03 (diff)
Show installed version (not candidate version) while removing a package
Showing a package version which was never installed in removals is confusing.
Diffstat (limited to 'apt-private')
-rw-r--r--apt-private/private-install.cc2
-rw-r--r--apt-private/private-output.cc10
-rw-r--r--apt-private/private-output.h2
3 files changed, 12 insertions, 2 deletions
diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc
index 599caac6d..57b5c0d5e 100644
--- a/apt-private/private-install.cc
+++ b/apt-private/private-install.cc
@@ -729,7 +729,7 @@ bool DoAutomaticRemove(CacheFile &Cache)
"The following packages were automatically installed and are no longer required:",
autoRemoveCount), Universe,
[&Cache](pkgCache::PkgIterator const &Pkg) { return (*Cache)[Pkg].Garbage == true && (*Cache)[Pkg].Delete() == false; },
- &PrettyFullName, CandidateVersion(&Cache), "", note);
+ &PrettyFullName, CurrentVersion(&Cache), "", note);
}
else
{
diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc
index 2e8109583..4a946f2b8 100644
--- a/apt-private/private-output.cc
+++ b/apt-private/private-output.cc
@@ -596,7 +596,7 @@ void ShowDel(ostream &out,CacheFile &Cache)
str.append("*");
return str;
},
- CandidateVersion(&Cache),
+ CurrentVersion(&Cache),
"action::remove");
}
/*}}}*/
@@ -888,6 +888,14 @@ std::string PrettyFullName(pkgCache::PkgIterator const &Pkg)
{
return Pkg.FullName(true);
}
+std::string CurrentVersion(pkgCacheFile * const Cache, pkgCache::PkgIterator const &Pkg)
+{
+ return (*Cache)[Pkg].CurVersion;
+}
+std::function<std::string(pkgCache::PkgIterator const &)> CurrentVersion(pkgCacheFile * const Cache)
+{
+ return std::bind(static_cast<std::string(*)(pkgCacheFile * const, pkgCache::PkgIterator const&)>(&CurrentVersion), Cache, std::placeholders::_1);
+}
std::string CandidateVersion(pkgCacheFile * const Cache, pkgCache::PkgIterator const &Pkg)
{
return (*Cache)[Pkg].CandVersion;
diff --git a/apt-private/private-output.h b/apt-private/private-output.h
index 0eba6f4fb..8e1d47225 100644
--- a/apt-private/private-output.h
+++ b/apt-private/private-output.h
@@ -132,6 +132,8 @@ APT_PUBLIC bool YnPrompt(char const *const Question, bool Default = true);
bool YnPrompt(char const * const Question, bool const Default, bool const ShowGlobalErrors, std::ostream &c1o, std::ostream &c2o);
APT_PUBLIC std::string PrettyFullName(pkgCache::PkgIterator const &Pkg);
+std::string CurrentVersion(pkgCacheFile * const Cache, pkgCache::PkgIterator const &Pkg);
+std::function<std::string(pkgCache::PkgIterator const &)> CurrentVersion(pkgCacheFile * const Cache);
std::string CandidateVersion(pkgCacheFile * const Cache, pkgCache::PkgIterator const &Pkg);
std::function<std::string(pkgCache::PkgIterator const &)> CandidateVersion(pkgCacheFile * const Cache);
std::string CurrentToCandidateVersion(pkgCacheFile * const Cache, pkgCache::PkgIterator const &Pkg);