From 52bafeade99b700eeb4585608c5eee086b94dfa8 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 5 Jul 2016 14:08:57 +0200 Subject: [PATCH] use the right key for compressor configuration dump MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The generated dump output is incorrect in sofar as it uses the name as the key for this compressor, but they don't need to be equal as is the case if you force some of the inbuilt ones to be disabled as our testing framework does it at times. This is hidden from changelog as nobody will actually notice while describing it in a few words make it sound like an important change… Git-Dch: Ignore --- cmdline/apt-config.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc index 6953a8172..adec8dda4 100644 --- a/cmdline/apt-config.cc +++ b/cmdline/apt-config.cc @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -111,12 +112,19 @@ int main(int argc,const char *argv[]) /*{{{*/ for (std::vector::const_iterator a = archs.begin(); a != archs.end(); ++a) _config->Set("APT::Architectures::", *a); + string const conf = "APT::Compressor::"; + std::map CompressorNames; + for (auto && key : _config->FindVector("APT::Compressor", "", true)) + { + auto const comp = conf + key + "::Name"; + CompressorNames.emplace(_config->Find(comp, key), key); + } std::vector const compressors = APT::Configuration::getCompressors(); _config->Clear("APT::Compressor"); - string conf = "APT::Compressor::"; for (std::vector::const_iterator c = compressors.begin(); c != compressors.end(); ++c) { - string comp = conf + c->Name + "::"; + auto const n = CompressorNames.find(c->Name); + string comp = conf + (n == CompressorNames.end() ? c->Name : n->second) + "::"; _config->Set(comp + "Name", c->Name); _config->Set(comp + "Extension", c->Extension); _config->Set(comp + "Binary", c->Binary); -- 2.45.2