define_command: Don't convert command name to lower case
[deliverable/binutils-gdb.git] / gdb / cli / cli-interp.h
index ef86372ae1530b161c049a53f0c02d19d181a1b1..de9da83347e99aecb48b4ead489acaa4d7464244 100644 (file)
 #ifndef CLI_INTERP_H
 #define CLI_INTERP_H 1
 
-struct interp;
+#include "interps.h"
+
+/* A console-like interpreter.  Implements functionality common to the
+   CLI and the TUI.  */
+class cli_interp_base : public interp
+{
+public:
+  explicit cli_interp_base (const char *name);
+  virtual ~cli_interp_base () = 0;
+
+  void set_logging (ui_file_up logfile, bool logging_redirect) override;
+  void pre_command_loop () override;
+  bool supports_command_editing () override;
+};
+
+/* Make the output ui_file to use when logging is enabled.
+   CURR_OUTPUT is the stream where output is currently being sent to
+   (e.g., gdb_stdout for the CLI, raw output stream for the MI).
+   LOGFILE is the log file already opened by the caller.
+   LOGGING_REDIRECT is the value of the "set logging redirect"
+   setting.  If true, the resulting output is the logfile.  If false,
+   the output stream is a tee, with the log file as one of the
+   outputs.  Ownership of LOGFILE is transferred to the returned
+   output file, which is an owning pointer.  */
+extern ui_file *make_logging_output (ui_file *curr_output,
+                                    ui_file_up logfile,
+                                    bool logging_redirect);
+
+/* The CLI interpreter's set_logging_proc method.  Exported so other
+   interpreters can reuse it.  */
+extern void cli_set_logging (struct interp *interp,
+                            ui_file_up logfile, bool logging_redirect);
 
 extern int cli_interpreter_supports_command_editing (struct interp *interp);
 
This page took 0.03437 seconds and 4 git commands to generate.