X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FOverloadedCommand.cc;h=c9e75298a2bb4c5e204c6ef5d01f84b536e2e7e1;hb=731a143df4de38d4c8b0a81121990951971cd858;hp=ecc5c44488cc81d72ed4369e5ea83754094b01c6;hpb=958bdb52c39fa39f4ef91cafd9628bcb4f85a03c;p=senf.git diff --git a/Utils/Console/OverloadedCommand.cc b/Utils/Console/OverloadedCommand.cc index ecc5c44..c9e7529 100644 --- a/Utils/Console/OverloadedCommand.cc +++ b/Utils/Console/OverloadedCommand.cc @@ -155,7 +155,25 @@ prefix_ void senf::console::OverloadedCommandNode::v_help(std::ostream & os) } } -prefix_ void senf::console::OverloadedCommandNode::v_execute(std::ostream & output, +prefix_ std::string senf::console::OverloadedCommandNode::v_shorthelp() + const +{ + if (!shortdoc_.empty()) + return shortdoc_; + if (!doc_.empty()) + return doc_.substr(0,doc_.find('\n')); + Overloads::const_iterator i (overloads_.begin()); + Overloads::const_iterator const i_end (overloads_.end()); + for (; i != i_end; ++i) { + std::string overloadDoc ((*i)->doc()); + if (! overloadDoc.empty()) + return overloadDoc.substr(0,overloadDoc.find('\n')); + } + return ""; +} + +prefix_ void senf::console::OverloadedCommandNode::v_execute(boost::any & rv, + std::ostream & os, ParseCommandInfo const & command) const { @@ -164,7 +182,7 @@ prefix_ void senf::console::OverloadedCommandNode::v_execute(std::ostream & outp SyntaxErrorException err; for (; i != i_end; ++i) { try { - (**i)(output, command); + (**i)(rv, os, command); return; } catch (SyntaxErrorException & ex) { @@ -193,7 +211,8 @@ prefix_ std::string senf::console::SimpleCommandOverload::v_doc() return doc_; } -prefix_ void senf::console::SimpleCommandOverload::v_execute(std::ostream & os, +prefix_ void senf::console::SimpleCommandOverload::v_execute(boost::any & rv, + std::ostream & os, ParseCommandInfo const & command) const {