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 "ui.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))
 

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_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 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 70 of file tui-io.c.

Referenced by gdb_fnprint(), gdb_fnwidth(), and tui_redisplay_readline().

Function Documentation

◆ apply_ansi_escape()

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

Definition at line 363 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 144 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 753 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 274 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 63 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 1095 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 668 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 1271 of file tui-io.c.

References exception_print(), gdb_stderr, set_force_quit_flag(), 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 )

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

References gdb_stdout, hstdout, tui_old_uiout, tui_out, tui_rl_outstream, tui_stderr, tui_stdlog, and tui_stdout.

Referenced by tui_interp::init().

◆ tui_inject_newline_into_command_window()

void tui_inject_newline_into_command_window ( )

◆ tui_mld_beep()

static void tui_mld_beep ( const struct match_list_displayer * displayer)
static

Definition at line 741 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 696 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 728 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 720 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 766 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 704 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 712 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 777 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 657 of file tui-io.c.

References tui_enable_mouse.

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 518 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_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 447 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 167 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 185 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 204 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 1088 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 209 of file tui-io.c.

Referenced by get_color().

◆ last_color_pair

int last_color_pair = -1
static

Definition at line 255 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 259 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 263 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 127 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 128 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 129 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 124 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_rl_outstream

FILE* tui_old_rl_outstream
static

Definition at line 134 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 126 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 125 of file tui-io.c.

Referenced by tui_setup_io().

◆ tui_old_stderr

struct ui_file* tui_old_stderr
static

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

Referenced by tui_setup_io().

◆ tui_old_stdlog

struct ui_file* tui_old_stdlog
static

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

Referenced by tui_setup_io().

◆ tui_old_stdout

struct ui_file* tui_old_stdout
static

Definition at line 118 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 115 of file tui-io.c.

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

◆ tui_rl_outstream

FILE* tui_rl_outstream
static

Definition at line 133 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 113 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 114 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 112 of file tui-io.c.

Referenced by tui_initialize_io(), and tui_setup_io().