X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/05ef357e575e9c25eb6a35cb693d1eb19bb14d45..0cfec3ab589c6309bf284438d2148c7742cdaf10:/apt-pkg/deb/debsystem.cc?ds=sidebyside diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc index d6ef49a37..56ca8f4c6 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; @@ -399,10 +399,10 @@ std::vector debSystem::SupportedArchitectures() /*{{{*/ char* tok_saveptr; char* arch = strtok_r(buf, " ", &tok_saveptr); while (arch != NULL) { - for (; isspace(*arch) != 0; ++arch); + for (; isspace_ascii(*arch) != 0; ++arch); if (arch[0] != '\0') { char const* archend = arch; - for (; isspace(*archend) == 0 && *archend != '\0'; ++archend); + for (; isspace_ascii(*archend) == 0 && *archend != '\0'; ++archend); string a(arch, (archend - arch)); if (std::find(archs.begin(), archs.end(), a) == archs.end()) archs.push_back(a);