: boost::noncopyable
{
SENF_LOG_CLASS_AREA();
- SENF_LOG_DEFAULT_LEVEL( senf::log::NOTICE );
+ SENF_LOG_DEFAULT_LEVEL( senf::log::VERBOSE );
public:
///////////////////////////////////////////////////////////////////////////
// Types
- typedef boost::iterator_range< ParseCommandInfo::argument_iterator> Arguments;
-
/// Thrown by built-in 'exit' command
struct ExitException {};
///\}
///////////////////////////////////////////////////////////////////////////
- void operator()(ParseCommandInfo const & command, std::ostream & output);
+ void execute(std::ostream & output, ParseCommandInfo const & command);
+ ///< Execute command
+ /**< Output will be written to \a output.
+ Same as operator()(). */
+
+ void operator()(std::ostream & output, ParseCommandInfo const & command);
///< Execute command
- /**< Output will be written to \a output. */
+ /**< Output will be written to \a output.
+ Same as execute(). */
DirectoryNode & cwd() const; ///< Current working directory
+ bool autocd() const; ///< Get current autocd status
+ /**< if autocd is enabled, specifying a directory name as
+ command will cd to that directory. Disabled by
+ default (but enabled automatically by the interactive
+ console). */
+ Executor & autocd(bool v); ///< Set autocd status
+ /**< \see autocd() */
+
+ bool autocomplete() const; ///< Get current autocomplete status
+ /**< if autocomplete is enabled, path components which can
+ be uniquely completed will be completed
+ automatically. Disabled by default (but enabled
+ automatically by the interactive console) void
+ autocomplete(bool v). */
+
+ Executor & autocomplete(bool v); ///< Set autocomplete status
+ /**< \see autocomplete() */
+
protected:
private:
GenericNode & traverseNode(ParseCommandInfo::argument_value_type const & path);
+ GenericNode & traverseCommand(ParseCommandInfo::CommandPathRange const & path);
DirectoryNode & traverseDirectory(ParseCommandInfo::argument_value_type const & path);
- CommandNode & traverseCommand(ParseCommandInfo::CommandPathRange const & path);
struct InvalidPathException {};
struct InvalidDirectoryException {};
DirectoryNode::weak_ptr oldCwd_;
typedef std::vector<DirectoryNode::weak_ptr> DirStack;
DirStack dirstack_;
+
+ bool autocd_;
+ bool autocomplete_;
};