aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libutil/args.cc2
-rw-r--r--src/libutil/args.hh3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/libutil/args.cc b/src/libutil/args.cc
index 217495c26..ba15ea571 100644
--- a/src/libutil/args.cc
+++ b/src/libutil/args.cc
@@ -224,6 +224,7 @@ MultiCommand::MultiCommand(const Commands & commands)
if (i == commands.end())
throw UsageError("'%s' is not a recognised command", ss[0]);
command = i->second();
+ command->_name = ss[0];
}});
}
@@ -246,6 +247,7 @@ void MultiCommand::printHelp(const string & programName, std::ostream & out)
Table2 table;
for (auto & i : commands) {
auto command = i.second();
+ command->_name = i.first;
auto descr = command->description();
if (!descr.empty())
table.push_back(std::make_pair(command->name(), descr));
diff --git a/src/libutil/args.hh b/src/libutil/args.hh
index 8497eaf71..a083c4ce8 100644
--- a/src/libutil/args.hh
+++ b/src/libutil/args.hh
@@ -195,7 +195,10 @@ struct Command : virtual Args
private:
std::string _name;
+ friend class MultiCommand;
+
public:
+
std::string name() { return _name; }
virtual void prepare() { };