X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FLineEditor.hh;h=2a94a7e62f3d345dc36e9ce81e0961d6d354efbd;hb=97b74f74397997f7ea02eaa7f44689aa0eb99839;hp=840ce5a0c71d1a414bdb145903a745ecd8980a7c;hpb=368058ef8f5eb65ea7e210351af25f49ddd0f342;p=senf.git diff --git a/Utils/Console/LineEditor.hh b/Utils/Console/LineEditor.hh index 840ce5a..2a94a7e 100644 --- a/Utils/Console/LineEditor.hh +++ b/Utils/Console/LineEditor.hh @@ -39,6 +39,15 @@ namespace senf { namespace console { namespace detail { + /** \brief Internal: Client reader switching between LineEditorClientReader or DumbClientReader + + This ClientReader implementation will try to initialize a LineEditorClientReader. If the + setup fails, a DumbClientReader is initialized instead. LineEditor support may fail to be + initialized if + + \li The telnet client does not support necessary functionality + \li or the terminal type of the client is missing some functionality. + */ class LineEditorSwitcher : public ClientReader { @@ -55,6 +64,10 @@ namespace detail { boost::scoped_ptr reader_; }; + /** \brief Internal: ClientReader using senf::term::LineEditor for interactive input + + This ClientReader implementation uses a senf::term::LineEditor for interactive input. + */ class LineEditorClientReader : public ClientReader, public term::TelnetTerminal { @@ -74,6 +87,8 @@ namespace detail { // Editor callbacks void executeLine(std::string const & text); void deleteCharOrExit(term::LineEditor & editor); + void completePath(term::LineEditor & editor, unsigned b, unsigned e, + std::vector & completions); term::LineEditor editor_; LineEditorSwitcher * switcher_;