GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
tui-io.c File Reference
#include "defs.h"
#include "target.h"
#include "gdbsupport/event-loop.h"
#include "event-top.h"
#include "command.h"
#include "top.h"
#include "tui/tui.h"
#include "tui/tui-data.h"
#include "tui/tui-io.h"
#include "tui/tui-command.h"
#include "tui/tui-win.h"
#include "tui/tui-wingeneral.h"
#include "tui/tui-file.h"
#include "tui/tui-out.h"
#include "ui-out.h"
#include "cli-out.h"
#include <fcntl.h>
#include <signal.h>
#include "gdbsupport/filestuff.h"
#include "completer.h"
#include "gdb_curses.h"
#include <map>
#include "pager.h"
#include "gdbsupport/gdb-checked-static-cast.h"
#include "readline/readline.h"

Go to the source code of this file.

Classes

struct  color_pair
 

Macros

#define CTRL_CHAR(c)    ((c) < control_character_threshold && (((c) & 0x80) == 0))
 
#define TUI_USE_PIPE_FOR_READLINE
 

Functions

static int tui_getc (FILE *fp)
 
static int key_is_start_sequence (int ch)
 
static void do_tui_putc (WINDOW *w, char c)
 
static void update_cmdwin_start_line ()
 
static void tui_putc (char c)
 
static bool get_color (const ui_file_style::color &color, int *result)
 
static ui_file_style::color reverse_save_bg (ui_file_style::NONE)
 
static ui_file_style::color reverse_save_fg (ui_file_style::NONE)
 
static int get_color_pair (int fg, int bg)
 
void tui_apply_style (WINDOW *w, ui_file_style style)
 
static size_t apply_ansi_escape (WINDOW *w, const char *buf)
 
void tui_set_reverse_mode (WINDOW *w, bool reverse)
 
void tui_write (const char *buf, size_t length)
 
void tui_puts (const char *string, WINDOW *w)
 
static void tui_puts_internal (WINDOW *w, const char *string, int *height)
 
void tui_redisplay_readline (void)
 
static void tui_prep_terminal (int notused1)
 
static void tui_deprep_terminal (void)
 
static void tui_readline_output (int error, gdb_client_data data)
 
static void tui_mld_crlf (const struct match_list_displayer *displayer)
 
static void tui_mld_putch (const struct match_list_displayer *displayer, int ch)
 
static void tui_mld_puts (const struct match_list_displayer *displayer, const char *s)
 
static void tui_mld_flush (const struct match_list_displayer *displayer)
 
static void tui_mld_erase_entire_line (const struct match_list_displayer *displayer)
 
static void tui_mld_beep (const struct match_list_displayer *displayer)
 
static int gdb_wgetch (WINDOW *win)
 
static int tui_mld_getc (FILE *fp)
 
static int tui_mld_read_key (const struct match_list_displayer *displayer)
 
static void tui_rl_display_match_list (char **matches, int len, int max)
 
void tui_setup_io (int mode)
 
void tui_initialize_io (void)
 
static unsigned int tui_dispatch_ctrl_char (unsigned int ch)
 
void tui_inject_newline_into_command_window ()
 
static int start_sequence (const char *seq)
 
static int tui_getc_1 (FILE *fp)
 

Variables

static struct ui_filetui_stdout
 
static struct ui_filetui_stderr
 
static struct ui_filetui_stdlog
 
struct ui_outtui_out
 
static struct ui_filetui_old_stdout
 
static struct ui_filetui_old_stderr
 
static struct ui_filetui_old_stdlog
 
cli_ui_outtui_old_uiout
 
static rl_getc_func_t * tui_old_rl_getc_function
 
static rl_voidfunc_t * tui_old_rl_redisplay_function
 
static rl_vintfunc_t * tui_old_rl_prep_terminal
 
static rl_voidfunc_t * tui_old_rl_deprep_terminal
 
static rl_compdisp_func_t * tui_old_rl_display_matches_hook
 
static int tui_old_rl_echoing_p
 
static FILE * tui_rl_outstream
 
static FILE * tui_old_rl_outstream
 
static int tui_readline_pipe [2]
 
static std::map< ui_file_style::color, int > color_map
 
static std::map< color_pair, int > color_pair_map
 
static const int curses_colors []
 
static int last_color_pair = -1
 
static ui_file_style last_style
 
static bool reverse_mode_p = false
 
static const char * cur_seq = nullptr
 

Macro Definition Documentation

◆ CTRL_CHAR

#define CTRL_CHAR (   c)     ((c) < control_character_threshold && (((c) & 0x80) == 0))

Definition at line 69 of file tui-io.c.

◆ TUI_USE_PIPE_FOR_READLINE

#define TUI_USE_PIPE_FOR_READLINE

Definition at line 106 of file tui-io.c.

Function Documentation

◆ apply_ansi_escape()

static size_t apply_ansi_escape ( WINDOW *  w,
const char *  buf 
)
static

Definition at line 362 of file tui-io.c.

References last_style, reverse_mode_p, style_tui_current_position, and tui_apply_style().

Referenced by tui_puts(), and tui_puts_internal().

◆ do_tui_putc()

static void do_tui_putc ( WINDOW *  w,
char  c 
)
static

Definition at line 143 of file tui-io.c.

Referenced by tui_putc(), tui_puts(), and tui_puts_internal().

◆ gdb_wgetch()

static int gdb_wgetch ( WINDOW *  win)
static

Definition at line 750 of file tui-io.c.

Referenced by tui_getc_1(), and tui_mld_getc().

◆ get_color()

static bool get_color ( const ui_file_style::color color,
int *  result 
)
static

◆ get_color_pair()

static int get_color_pair ( int  fg,
int  bg 
)
static

Definition at line 273 of file tui-io.c.

References color_pair_map.

Referenced by tui_apply_style().

◆ key_is_start_sequence()

static int key_is_start_sequence ( int  ch)
static

Definition at line 62 of file tui-io.c.

Referenced by tui_getc_1().

◆ reverse_save_bg()

static ui_file_style::color reverse_save_bg ( ui_file_style::NONE  )
static

Referenced by tui_set_reverse_mode().

◆ reverse_save_fg()

static ui_file_style::color reverse_save_fg ( ui_file_style::NONE  )
static

Referenced by tui_set_reverse_mode().

◆ start_sequence()

static int start_sequence ( const char *  seq)
static

Definition at line 1096 of file tui-io.c.

References call_stdin_event_handler_again_p, and cur_seq.

Referenced by tui_getc_1().

◆ tui_apply_style()

void tui_apply_style ( WINDOW *  w,
ui_file_style  style 
)

◆ tui_deprep_terminal()

static void tui_deprep_terminal ( void  )
static

Definition at line 665 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_dispatch_ctrl_char()

static unsigned int tui_dispatch_ctrl_char ( unsigned int  ch)
static

◆ tui_getc()

static int tui_getc ( FILE *  fp)
static

Definition at line 1272 of file tui-io.c.

References exception_print(), gdb_stderr, and tui_getc_1().

Referenced by tui_setup_io().

◆ tui_getc_1()

static int tui_getc_1 ( FILE *  fp)
static

◆ tui_initialize_io()

void tui_initialize_io ( void  )

◆ tui_inject_newline_into_command_window()

void tui_inject_newline_into_command_window ( )

Definition at line 1049 of file tui-io.c.

References current_ui, gdb_in_secondary_prompt_p(), tui_active, TUI_CMD_WIN, and tui_putc().

Referenced by tui_command_line_handler().

◆ tui_mld_beep()

static void tui_mld_beep ( const struct match_list_displayer displayer)
static

Definition at line 738 of file tui-io.c.

Referenced by tui_rl_display_match_list().

◆ tui_mld_crlf()

static void tui_mld_crlf ( const struct match_list_displayer displayer)
static

Definition at line 693 of file tui-io.c.

References tui_putc().

Referenced by tui_rl_display_match_list().

◆ tui_mld_erase_entire_line()

static void tui_mld_erase_entire_line ( const struct match_list_displayer displayer)
static

Definition at line 725 of file tui-io.c.

References TUI_CMD_WIN.

Referenced by tui_rl_display_match_list().

◆ tui_mld_flush()

static void tui_mld_flush ( const struct match_list_displayer displayer)
static

Definition at line 717 of file tui-io.c.

References TUI_CMD_WIN.

Referenced by tui_rl_display_match_list().

◆ tui_mld_getc()

static int tui_mld_getc ( FILE *  fp)
static

Definition at line 763 of file tui-io.c.

References gdb_wgetch(), and TUI_CMD_WIN.

Referenced by tui_mld_read_key().

◆ tui_mld_putch()

static void tui_mld_putch ( const struct match_list_displayer displayer,
int  ch 
)
static

Definition at line 701 of file tui-io.c.

References tui_putc().

Referenced by tui_rl_display_match_list().

◆ tui_mld_puts()

static void tui_mld_puts ( const struct match_list_displayer displayer,
const char *  s 
)
static

Definition at line 709 of file tui-io.c.

References tui_puts().

Referenced by tui_rl_display_match_list().

◆ tui_mld_read_key()

static int tui_mld_read_key ( const struct match_list_displayer displayer)
static

Definition at line 774 of file tui-io.c.

References tui_mld_getc().

Referenced by tui_rl_display_match_list().

◆ tui_prep_terminal()

static void tui_prep_terminal ( int  notused1)
static

Definition at line 655 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_putc()

static void tui_putc ( char  c)
static

◆ tui_puts()

void tui_puts ( const char *  string,
WINDOW *  w 
)

◆ tui_puts_internal()

static void tui_puts_internal ( WINDOW *  w,
const char *  string,
int *  height 
)
static

Definition at line 517 of file tui-io.c.

References apply_ansi_escape(), do_tui_putc(), TUI_CMD_WIN, and update_cmdwin_start_line().

Referenced by tui_redisplay_readline().

◆ tui_readline_output()

static void tui_readline_output ( int  error,
gdb_client_data  data 
)
static

Definition at line 676 of file tui-io.c.

References read(), size, tui_active, tui_puts(), and tui_readline_pipe.

Referenced by tui_getc_1(), and tui_initialize_io().

◆ tui_redisplay_readline()

void tui_redisplay_readline ( void  )

◆ tui_rl_display_match_list()

static void tui_rl_display_match_list ( char **  matches,
int  len,
int  max 
)
static

◆ tui_set_reverse_mode()

void tui_set_reverse_mode ( WINDOW *  w,
bool  reverse 
)

◆ tui_setup_io()

void tui_setup_io ( int  mode)

◆ tui_write()

void tui_write ( const char *  buf,
size_t  length 
)

Definition at line 446 of file tui-io.c.

References tui_puts().

Referenced by tui_file::write().

◆ update_cmdwin_start_line()

static void update_cmdwin_start_line ( )
static

Definition at line 166 of file tui-io.c.

References TUI_CMD_WIN.

Referenced by tui_putc(), tui_puts(), and tui_puts_internal().

Variable Documentation

◆ color_map

std::map<ui_file_style::color, int> color_map
static

Definition at line 184 of file tui-io.c.

Referenced by get_color(), and tui_setup_io().

◆ color_pair_map

std::map<color_pair, int> color_pair_map
static

Definition at line 203 of file tui-io.c.

Referenced by get_color_pair(), and tui_setup_io().

◆ cur_seq

const char* cur_seq = nullptr
static

Definition at line 1089 of file tui-io.c.

Referenced by start_sequence(), and tui_getc_1().

◆ curses_colors

const int curses_colors[]
static
Initial value:
= {
COLOR_BLACK,
COLOR_RED,
COLOR_GREEN,
COLOR_YELLOW,
COLOR_BLUE,
COLOR_MAGENTA,
COLOR_CYAN,
COLOR_WHITE
}

Definition at line 208 of file tui-io.c.

Referenced by get_color().

◆ last_color_pair

int last_color_pair = -1
static

Definition at line 254 of file tui-io.c.

Referenced by tui_apply_style(), and tui_setup_io().

◆ last_style

ui_file_style last_style
static

Definition at line 258 of file tui-io.c.

Referenced by apply_ansi_escape(), tui_apply_style(), tui_set_reverse_mode(), and tui_setup_io().

◆ reverse_mode_p

bool reverse_mode_p = false
static

Definition at line 262 of file tui-io.c.

Referenced by apply_ansi_escape(), and tui_set_reverse_mode().

◆ tui_old_rl_deprep_terminal

rl_voidfunc_t* tui_old_rl_deprep_terminal
static

Definition at line 126 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_rl_display_matches_hook

rl_compdisp_func_t* tui_old_rl_display_matches_hook
static

Definition at line 127 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_rl_echoing_p

int tui_old_rl_echoing_p
static

Definition at line 128 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_rl_getc_function

rl_getc_func_t* tui_old_rl_getc_function
static

Definition at line 123 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_rl_outstream

FILE* tui_old_rl_outstream
static

Definition at line 133 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_rl_prep_terminal

rl_vintfunc_t* tui_old_rl_prep_terminal
static

Definition at line 125 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_rl_redisplay_function

rl_voidfunc_t* tui_old_rl_redisplay_function
static

Definition at line 124 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_stderr

struct ui_file* tui_old_stderr
static

Definition at line 118 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_stdlog

struct ui_file* tui_old_stdlog
static

Definition at line 119 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_stdout

struct ui_file* tui_old_stdout
static

Definition at line 117 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_uiout

cli_ui_out* tui_old_uiout

◆ tui_out

struct ui_out* tui_out

Definition at line 114 of file tui-io.c.

Referenced by tui_interp::interp_ui_out(), tui_initialize_io(), and tui_setup_io().

◆ tui_readline_pipe

int tui_readline_pipe[2]
static

Definition at line 135 of file tui-io.c.

Referenced by tui_initialize_io(), and tui_readline_output().

◆ tui_rl_outstream

FILE* tui_rl_outstream
static

Definition at line 132 of file tui-io.c.

Referenced by tui_initialize_io(), and tui_setup_io().

◆ tui_stderr

struct ui_file* tui_stderr
static

Definition at line 112 of file tui-io.c.

Referenced by tui_initialize_io(), and tui_setup_io().

◆ tui_stdlog

struct ui_file* tui_stdlog
static

Definition at line 113 of file tui-io.c.

Referenced by tui_initialize_io(), and tui_setup_io().

◆ tui_stdout

struct ui_file* tui_stdout
static

Definition at line 111 of file tui-io.c.

Referenced by tui_initialize_io(), and tui_setup_io().