Console: Implement custom return-value formatter support
[senf.git] / Console / Node.cc
index f74a37b..4886b77 100644 (file)
@@ -74,6 +74,7 @@ senf::console::DirectoryNode::remove(std::string const & name)
     GenericNode::ptr node (i->second);
     children_.erase(i);
     node->parent_ = 0;
+    node->name_.clear();
     return node;
 }
 
@@ -116,6 +117,15 @@ prefix_ void senf::console::DirectoryNode::v_help(std::ostream & output)
 }
 
 ///////////////////////////////////////////////////////////////////////////
+// senf::console::SyntaxErrorException
+
+prefix_ char const * senf::console::SyntaxErrorException::what()
+    const throw()
+{
+    return message().empty() ? "syntax error" : message().c_str();
+}
+
+///////////////////////////////////////////////////////////////////////////
 // senf::console::SimpleCommandNode
 
 prefix_ void senf::console::SimpleCommandNode::v_help(std::ostream & output)
@@ -124,6 +134,13 @@ prefix_ void senf::console::SimpleCommandNode::v_help(std::ostream & output)
     output << doc_ << "\n";
 }
 
+prefix_ void senf::console::SimpleCommandNode::v_execute(std::ostream & output,
+                                                         ParseCommandInfo const & command)
+    const
+{
+    fn_(output, command);
+}
+
 ///////////////////////////////cc.e////////////////////////////////////////
 #undef prefix_
 //#include "Node.mpp"