summaryrefslogtreecommitdiff
path: root/cmdline/apt-config.cc
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-07-05 14:08:57 +0200
committerJulian Andres Klode <jak@debian.org>2016-08-31 13:49:37 +0200
commit89d816a77ca314654a8bef8c88a287b04e2c8519 (patch)
tree52c514b56e2a101f4309547909c795c2b9e391b5 /cmdline/apt-config.cc
parent6862a9b0320d8c07db3a86b20131ab78c5bc4708 (diff)
use the right key for compressor configuration dump
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 (cherry picked from commit 52bafeade99b700eeb4585608c5eee086b94dfa8)
Diffstat (limited to 'cmdline/apt-config.cc')
-rw-r--r--cmdline/apt-config.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc
index 69485de90..e5da24849 100644
--- a/cmdline/apt-config.cc
+++ b/cmdline/apt-config.cc
@@ -29,6 +29,7 @@
#include <iostream>
#include <string>
#include <vector>
+#include <map>
#include <string.h>
#include <apt-private/private-cmndline.h>
@@ -113,12 +114,19 @@ int main(int argc,const char *argv[]) /*{{{*/
for (std::vector<std::string>::const_iterator a = archs.begin(); a != archs.end(); ++a)
_config->Set("APT::Architectures::", *a);
+ string const conf = "APT::Compressor::";
+ std::map<std::string,std::string> CompressorNames;
+ for (auto && key : _config->FindVector("APT::Compressor", "", true))
+ {
+ auto const comp = conf + key + "::Name";
+ CompressorNames.emplace(_config->Find(comp, key), key);
+ }
std::vector<APT::Configuration::Compressor> const compressors = APT::Configuration::getCompressors();
_config->Clear("APT::Compressor");
- string conf = "APT::Compressor::";
for (std::vector<APT::Configuration::Compressor>::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);