diff options
author | Michael Vogt <mvo@debian.org> | 2014-06-18 11:21:35 +0200 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2014-06-18 11:24:16 +0200 |
commit | 8d20b69d2fd7a8fec82bb559f0e39059bbaecf1b (patch) | |
tree | 000fce642c5c12f3cc8b5472bcd03994c78b5050 /cmdline/apt-internal-solver.cc | |
parent | 17091f2f33de16c2dae501e7868f7aec4fc3452f (diff) | |
parent | 82ced5c894cd013721f432ae8da66114155e04c7 (diff) |
Merge remote-tracking branch 'donkult/debian/sid' into debian/experimental
Conflicts:
apt-private/private-install.cc
Diffstat (limited to 'cmdline/apt-internal-solver.cc')
-rw-r--r-- | cmdline/apt-internal-solver.cc | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc index 0cac12da2..c24a96cdf 100644 --- a/cmdline/apt-internal-solver.cc +++ b/cmdline/apt-internal-solver.cc @@ -24,9 +24,11 @@ #include <apt-pkg/depcache.h> #include <apt-pkg/pkgcache.h> #include <apt-pkg/cacheiterators.h> +#include <apt-private/private-output.h> #include <string.h> #include <iostream> +#include <sstream> #include <list> #include <string> #include <unistd.h> @@ -171,18 +173,20 @@ int main(int argc,const char *argv[]) /*{{{*/ EDSP::WriteProgress(60, "Call problemresolver on current scenario…", output); + std::string failure; if (upgrade == true) { - if (pkgAllUpgrade(CacheFile) == false) { - EDSP::WriteError("ERR_UNSOLVABLE_UPGRADE", "An upgrade error occurred", output); - return 0; - } + if (pkgAllUpgrade(CacheFile) == false) + failure = "ERR_UNSOLVABLE_UPGRADE"; } else if (distUpgrade == true) { - if (pkgDistUpgrade(CacheFile) == false) { - EDSP::WriteError("ERR_UNSOLVABLE_DIST_UPGRADE", "An dist-upgrade error occurred", output); - return 0; - } - } else if (Fix.Resolve() == false) { - EDSP::WriteError("ERR_UNSOLVABLE", "An error occurred", output); + if (pkgDistUpgrade(CacheFile) == false) + failure = "ERR_UNSOLVABLE_DIST_UPGRADE"; + } else if (Fix.Resolve() == false) + failure = "ERR_UNSOLVABLE"; + + if (failure.empty() == false) { + std::ostringstream broken; + ShowBroken(broken, CacheFile, false); + EDSP::WriteError(failure.c_str(), broken.str(), output); return 0; } |