From b49068c566d749130e023536d54588c948c16edf Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 25 Sep 2015 11:25:25 +0200 Subject: provide public interface to hold/unhold packages We had this code lying around in apt-mark for a while now, but other frontends need this (and similar) functionality as well, so its high time that we provide a public interface in libapt for this stuff. --- apt-pkg/deb/debsystem.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'apt-pkg/deb/debsystem.cc') diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc index d6ef49a37..dcd115b50 100644 --- a/apt-pkg/deb/debsystem.cc +++ b/apt-pkg/deb/debsystem.cc @@ -302,7 +302,7 @@ void debSystem::DpkgChrootDirectory() /*{{{*/ _exit(100); } /*}}}*/ -static pid_t ExecDpkg(std::vector const &sArgs, int * const inputFd, int * const outputFd, bool const showStderr)/*{{{*/ +pid_t debSystem::ExecDpkg(std::vector const &sArgs, int * const inputFd, int * const outputFd, bool const DiscardOutput)/*{{{*/ { std::vector Args(sArgs.size(), NULL); std::transform(sArgs.begin(), sArgs.end(), Args.begin(), [](std::string const &s) { return s.c_str(); }); @@ -333,7 +333,7 @@ static pid_t ExecDpkg(std::vector const &sArgs, int * const inputFd close(external[0]); dup2(external[1], STDOUT_FILENO); } - if (showStderr == false) + if (DiscardOutput == true) dup2(nullfd, STDERR_FILENO); debSystem::DpkgChrootDirectory(); execvp(Args[0], (char**) &Args[0]); @@ -357,7 +357,7 @@ bool debSystem::SupportsMultiArch() /*{{{*/ { std::vector Args = GetDpkgBaseCommand(); Args.push_back("--assert-multi-arch"); - pid_t const dpkgAssertMultiArch = ExecDpkg(Args, nullptr, nullptr, false); + pid_t const dpkgAssertMultiArch = ExecDpkg(Args, nullptr, nullptr, true); if (dpkgAssertMultiArch > 0) { int Status = 0; @@ -386,7 +386,7 @@ std::vector debSystem::SupportedArchitectures() /*{{{*/ std::vector sArgs = GetDpkgBaseCommand(); sArgs.push_back("--print-foreign-architectures"); int outputFd = -1; - pid_t const dpkgMultiArch = ExecDpkg(sArgs, nullptr, &outputFd, false); + pid_t const dpkgMultiArch = ExecDpkg(sArgs, nullptr, &outputFd, true); if (dpkgMultiArch == -1) return archs; -- cgit v1.2.3