X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FParsedCommand.mpp;h=340e073bd676109926929ef97070baa64d5c7287;hb=f2f5d59e83863f3b513950173baee1b6da2aee3c;hp=a8598faff0748b06e1a638209556ef7f7fa45860;hpb=958bdb52c39fa39f4ef91cafd9628bcb4f85a03c;p=senf.git diff --git a/Utils/Console/ParsedCommand.mpp b/Utils/Console/ParsedCommand.mpp index a8598fa..340e073 100644 --- a/Utils/Console/ParsedCommand.mpp +++ b/Utils/Console/ParsedCommand.mpp @@ -102,7 +102,8 @@ protected: private: ParsedCommandOverload(Function fn); - virtual void v_execute(std::ostream & os, ParseCommandInfo const & command) const; + virtual void v_execute(boost::any & rv, std::ostream & os, ParseCommandInfo const & command) + const; Function function_; Formatter formatter_; @@ -140,7 +141,8 @@ protected: private: ParsedCommandOverload(Function fn); - virtual void v_execute(std::ostream & os, ParseCommandInfo const & command) const; + virtual void v_execute(boost::any & rv, std::ostream & os, ParseCommandInfo const & command) + const; Function function_; }; @@ -249,7 +251,7 @@ ParsedCommandOverload(Function fn) template prefix_ void senf::console::ParsedCommandOverload:: -v_execute(std::ostream & os, ParseCommandInfo const & command) +v_execute(boost::any & rv, std::ostream & os, ParseCommandInfo const & command) const { // We NEED to know the number of arguments beforehand so we can assign default values @@ -280,16 +282,18 @@ v_execute(std::ostream & os, ParseCommandInfo const & command) # undef mpp_l # undef mpp_l_ + ReturnValue rvv (function_(os mpp_TrailingArgs())); + rv = rvv; if (formatter_) - formatter_( function_(os mpp_TrailingArgs()), os ); + formatter_(rvv, os); else - ReturnValueTraits::format( function_(os mpp_TrailingArgs()), os ); + ReturnValueTraits::format(rvv, os); os << "\n"; } template prefix_ void senf::console::ParsedCommandOverload:: -v_execute(std::ostream & os, ParseCommandInfo const & command) +v_execute(boost::any & rv, std::ostream & os, ParseCommandInfo const & command) const { // We NEED to know the number of arguments beforehand so we can assign default values