summaryrefslogtreecommitdiff
path: root/apt-private
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-12-31 18:24:12 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2016-12-31 18:24:12 +0100
commitae73a2944a89e0d2406a2aab4a4c082e1e9da3f9 (patch)
tree5aad3ec8d399efb68b6a83133e7747e20c540616 /apt-private
parent4e18c2cee6da39982cc463cafbf27eab5561099f (diff)
allow warning generation for non-whitelisted options
The idea is simple: Each¹ Find*( call starts with a call check if the given option (with the requested type) exists in the whitelist. The whitelist is specified via our configure-index file so that we have a better chance at keeping it current. the whitelist is loaded via a special (undocumented for now) configuration stanza and if none is loaded the empty whitelist will make it so that no warnings are shown. Much needs to be done still, but that is as good a time as any to take a snapshot of the current state and release it into the wild given that it found some bugs already and has no practical effect on users. ¹ not all in this iteration, but many
Diffstat (limited to 'apt-private')
-rw-r--r--apt-private/private-cmndline.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc
index dcd7e1bae..b8b29e9c8 100644
--- a/apt-private/private-cmndline.cc
+++ b/apt-private/private-cmndline.cc
@@ -501,9 +501,6 @@ std::vector<CommandLine::Dispatch> ParseCommandLine(CommandLine &CmdL, APT_CMD c
for (auto const& cmd : CmdsWithHelp)
Cmds.push_back({cmd.Match, cmd.Handler});
- // Args running out of scope invalidates the pointer stored in CmdL,
- // but we don't use the pointer after this function, so we ignore
- // this problem for now and figure something out if we have to.
char const * CmdCalled = nullptr;
if (Cmds.empty() == false && Cmds[0].Handler != nullptr)
CmdCalled = CommandLine::GetCommand(Cmds.data(), argc, argv);
@@ -511,6 +508,10 @@ std::vector<CommandLine::Dispatch> ParseCommandLine(CommandLine &CmdL, APT_CMD c
BinaryCommandSpecificConfiguration(argv[0], CmdCalled);
std::string const conf = "Binary::" + _config->Find("Binary");
_config->MoveSubTree(conf.c_str(), nullptr);
+
+ // Args running out of scope invalidates the pointer stored in CmdL,
+ // but we don't use the pointer after this function, so we ignore
+ // this problem for now and figure something out if we have to.
auto Args = getCommandArgs(Binary, CmdCalled);
CmdL = CommandLine(Args.data(), _config);