mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-03 17:51:57 +00:00
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c, tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c, tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c, tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h, tui.c, tui.h: Comment reformatting to coding standard (capitals, spaces after periods, etc).
This commit is contained in:
parent
5b6fe301a1
commit
1cc6d956c1
@ -1,5 +1,12 @@
|
||||
2007-08-14 Michael Snyder <msnyder@access-company.com>
|
||||
|
||||
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
|
||||
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
|
||||
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
|
||||
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
|
||||
tui.c, tui.h: Comment reformatting to coding standard (capitals,
|
||||
spaces after periods, etc).
|
||||
|
||||
* tui-data.c, tui-data.h, tui-disasm.c, tui-hooks.c, tui-layout.c,
|
||||
tui-regs.c, tui-source.c, tui-stack.c, tui-win.c, tui-windata.c,
|
||||
tui-wingeneral.c, tui-wingeneral.h, tui-winsource.c, tui.c,
|
||||
|
@ -43,7 +43,8 @@
|
||||
** PUBLIC FUNCTIONS **
|
||||
******************************************/
|
||||
|
||||
/* Dispatch the correct tui function based upon the control character. */
|
||||
/* Dispatch the correct tui function based upon the control
|
||||
character. */
|
||||
unsigned int
|
||||
tui_dispatch_ctrl_char (unsigned int ch)
|
||||
{
|
||||
@ -54,8 +55,8 @@ tui_dispatch_ctrl_char (unsigned int ch)
|
||||
tui_refresh_all_win ();
|
||||
|
||||
/* If the command window has the logical focus, or no-one does
|
||||
assume it is the command window; in this case, pass the
|
||||
character on through and do nothing here. */
|
||||
assume it is the command window; in this case, pass the character
|
||||
on through and do nothing here. */
|
||||
if (win_info == NULL || win_info == TUI_CMD_WIN)
|
||||
return ch;
|
||||
else
|
||||
|
@ -97,7 +97,7 @@ tui_set_win_highlight (struct tui_win_info *win_info, int highlight)
|
||||
** ACCESSORS & MUTATORS FOR PRIVATE DATA
|
||||
******************************************/
|
||||
|
||||
/* Answer a whether the terminal window has been resized or not. */
|
||||
/* Answer a whether the terminal window has been resized or not. */
|
||||
int
|
||||
tui_win_resized (void)
|
||||
{
|
||||
@ -105,7 +105,7 @@ tui_win_resized (void)
|
||||
}
|
||||
|
||||
|
||||
/* Set a whether the terminal window has been resized or not. */
|
||||
/* Set a whether the terminal window has been resized or not. */
|
||||
void
|
||||
tui_set_win_resized_to (int resized)
|
||||
{
|
||||
@ -113,7 +113,7 @@ tui_set_win_resized_to (int resized)
|
||||
}
|
||||
|
||||
|
||||
/* Answer a pointer to the current layout definition. */
|
||||
/* Answer a pointer to the current layout definition. */
|
||||
struct tui_layout_def *
|
||||
tui_layout_def (void)
|
||||
{
|
||||
@ -121,7 +121,7 @@ tui_layout_def (void)
|
||||
}
|
||||
|
||||
|
||||
/* Answer the window with the logical focus. */
|
||||
/* Answer the window with the logical focus. */
|
||||
struct tui_win_info *
|
||||
tui_win_with_focus (void)
|
||||
{
|
||||
@ -129,7 +129,7 @@ tui_win_with_focus (void)
|
||||
}
|
||||
|
||||
|
||||
/* Set the window that has the logical focus. */
|
||||
/* Set the window that has the logical focus. */
|
||||
void
|
||||
tui_set_win_with_focus (struct tui_win_info *win_info)
|
||||
{
|
||||
@ -137,7 +137,7 @@ tui_set_win_with_focus (struct tui_win_info *win_info)
|
||||
}
|
||||
|
||||
|
||||
/* Answer the length in chars, of tabs. */
|
||||
/* Answer the length in chars, of tabs. */
|
||||
int
|
||||
tui_default_tab_len (void)
|
||||
{
|
||||
@ -145,7 +145,7 @@ tui_default_tab_len (void)
|
||||
}
|
||||
|
||||
|
||||
/* Set the length in chars, of tabs. */
|
||||
/* Set the length in chars, of tabs. */
|
||||
void
|
||||
tui_set_default_tab_len (int len)
|
||||
{
|
||||
@ -175,7 +175,7 @@ tui_clear_source_windows (void)
|
||||
}
|
||||
|
||||
|
||||
/* Clear the pertinant detail in the source windows. */
|
||||
/* Clear the pertinant detail in the source windows. */
|
||||
void
|
||||
tui_clear_source_windows_detail (void)
|
||||
{
|
||||
@ -197,7 +197,7 @@ tui_add_to_source_windows (struct tui_win_info *win_info)
|
||||
}
|
||||
|
||||
|
||||
/* Clear the pertinant detail in the windows. */
|
||||
/* Clear the pertinant detail in the windows. */
|
||||
void
|
||||
tui_clear_win_detail (struct tui_win_info *win_info)
|
||||
{
|
||||
@ -267,7 +267,7 @@ tui_term_height (void)
|
||||
}
|
||||
|
||||
|
||||
/* Mutator for the term height. */
|
||||
/* Mutator for the term height. */
|
||||
void
|
||||
tui_set_term_height_to (int h)
|
||||
{
|
||||
@ -275,7 +275,7 @@ tui_set_term_height_to (int h)
|
||||
}
|
||||
|
||||
|
||||
/* Accessor for the term_width. */
|
||||
/* Accessor for the term_width. */
|
||||
int
|
||||
tui_term_width (void)
|
||||
{
|
||||
@ -291,7 +291,7 @@ tui_set_term_width_to (int w)
|
||||
}
|
||||
|
||||
|
||||
/* Accessor for the current layout. */
|
||||
/* Accessor for the current layout. */
|
||||
enum tui_layout_type
|
||||
tui_current_layout (void)
|
||||
{
|
||||
@ -379,7 +379,7 @@ tui_prev_win (struct tui_win_info *cur_win)
|
||||
}
|
||||
|
||||
|
||||
/* Answer the window represented by name. */
|
||||
/* Answer the window represented by name. */
|
||||
struct tui_win_info *
|
||||
tui_partial_win_by_name (char *name)
|
||||
{
|
||||
@ -650,7 +650,8 @@ tui_add_content_elements (struct tui_gen_win_info *win_info, int num_elements)
|
||||
init_content_element (element_ptr, win_info->type);
|
||||
win_info->content_size++;
|
||||
}
|
||||
else /* Things must be really hosed now! We ran out of memory!? */
|
||||
else /* Things must be really hosed now! We ran out of
|
||||
memory!? */
|
||||
return (-1);
|
||||
}
|
||||
}
|
||||
@ -659,8 +660,8 @@ tui_add_content_elements (struct tui_gen_win_info *win_info, int num_elements)
|
||||
}
|
||||
|
||||
|
||||
/* Delete all curses windows associated with win_info, leaving everything
|
||||
else intact. */
|
||||
/* Delete all curses windows associated with win_info, leaving
|
||||
everything else intact. */
|
||||
void
|
||||
tui_del_window (struct tui_win_info *win_info)
|
||||
{
|
||||
@ -814,8 +815,9 @@ tui_del_data_windows (tui_win_content content, int content_size)
|
||||
int i;
|
||||
|
||||
/*
|
||||
** Remember that data window content elements are of type struct tui_gen_win_info *,
|
||||
** each of which whose single element is a data element.
|
||||
** Remember that data window content elements are of type
|
||||
** struct tui_gen_win_info *, each of which whose single
|
||||
** element is a data element.
|
||||
*/
|
||||
for (i = 0; i < content_size; i++)
|
||||
{
|
||||
@ -837,8 +839,9 @@ tui_free_data_content (tui_win_content content, int content_size)
|
||||
int i;
|
||||
|
||||
/*
|
||||
** Remember that data window content elements are of type struct tui_gen_win_info *,
|
||||
** each of which whose single element is a data element.
|
||||
** Remember that data window content elements are of type
|
||||
** struct tui_gen_win_info *, each of which whose single
|
||||
** element is a data element.
|
||||
*/
|
||||
for (i = 0; i < content_size; i++)
|
||||
{
|
||||
@ -885,7 +888,7 @@ free_content_elements (tui_win_content content, int content_size, enum tui_win_t
|
||||
|
||||
if (type == SRC_WIN || type == DISASSEM_WIN)
|
||||
{
|
||||
/* free whole source block */
|
||||
/* Free whole source block. */
|
||||
xfree (content[0]->which_element.source.line);
|
||||
}
|
||||
else
|
||||
@ -905,7 +908,8 @@ free_content_elements (tui_win_content content, int content_size, enum tui_win_t
|
||||
case DATA_ITEM_WIN:
|
||||
/*
|
||||
** Note that data elements are not allocated
|
||||
** in a single block, but individually, as needed.
|
||||
** in a single block, but individually, as
|
||||
** needed.
|
||||
*/
|
||||
if (element->which_element.data.type != TUI_REGISTER)
|
||||
xfree ((void *)element->which_element.data.name);
|
||||
@ -923,6 +927,6 @@ free_content_elements (tui_win_content content, int content_size, enum tui_win_t
|
||||
}
|
||||
}
|
||||
if (type != DATA_WIN && type != DATA_ITEM_WIN)
|
||||
xfree (content[0]); /* free the element block */
|
||||
xfree (content[0]); /* Free the element block. */
|
||||
}
|
||||
}
|
||||
|
@ -34,24 +34,24 @@ struct tui_point
|
||||
int x, y;
|
||||
};
|
||||
|
||||
/* Generic window information */
|
||||
/* Generic window information. */
|
||||
struct tui_gen_win_info
|
||||
{
|
||||
WINDOW *handle; /* window handle */
|
||||
enum tui_win_type type; /* type of window */
|
||||
int width; /* window width */
|
||||
int height; /* window height */
|
||||
struct tui_point origin; /* origin of window */
|
||||
void **content; /* content of window */
|
||||
int content_size; /* Size of content (# of elements) */
|
||||
int content_in_use; /* Can it be used, or is it already used? */
|
||||
int viewport_height; /* viewport height */
|
||||
int last_visible_line; /* index of last visible line */
|
||||
int is_visible; /* whether the window is visible or not */
|
||||
char *title; /* Window title to display. */
|
||||
WINDOW *handle; /* Window handle. */
|
||||
enum tui_win_type type; /* Type of window. */
|
||||
int width; /* Window width. */
|
||||
int height; /* Window height. */
|
||||
struct tui_point origin; /* Origin of window. */
|
||||
void **content; /* Content of window. */
|
||||
int content_size; /* Size of content (# of elements). */
|
||||
int content_in_use; /* Can it be used, or is it already used? */
|
||||
int viewport_height; /* Viewport height. */
|
||||
int last_visible_line; /* Index of last visible line. */
|
||||
int is_visible; /* Whether the window is visible or not. */
|
||||
char *title; /* Window title to display. */
|
||||
};
|
||||
|
||||
/* Constant definitions */
|
||||
/* Constant definitions. */
|
||||
#define DEFAULT_TAB_LEN 8
|
||||
#define NO_SRC_STRING "[ No Source Available ]"
|
||||
#define NO_DISASSEM_STRING "[ No Assembly Available ]"
|
||||
@ -82,8 +82,10 @@ struct tui_gen_win_info
|
||||
#define PC_PREFIX "PC: "
|
||||
#define SINGLE_KEY "(SingleKey)"
|
||||
|
||||
/* Minimum/Maximum length of some fields displayed in the TUI status line. */
|
||||
#define MIN_LINE_WIDTH 4 /* Use at least 4 digits for line numbers. */
|
||||
/* Minimum/Maximum length of some fields displayed in the TUI status
|
||||
line. */
|
||||
#define MIN_LINE_WIDTH 4 /* Use at least 4 digits for line
|
||||
numbers. */
|
||||
#define MIN_PROC_WIDTH 12
|
||||
#define MAX_TARGET_WIDTH 10
|
||||
#define MAX_PID_WIDTH 14
|
||||
@ -115,7 +117,7 @@ struct tui_list
|
||||
};
|
||||
|
||||
|
||||
/* The kinds of layouts available */
|
||||
/* The kinds of layouts available. */
|
||||
enum tui_layout_type
|
||||
{
|
||||
SRC_COMMAND,
|
||||
@ -126,7 +128,7 @@ enum tui_layout_type
|
||||
UNDEFINED_LAYOUT
|
||||
};
|
||||
|
||||
/* Basic data types that can be displayed in the data window. */
|
||||
/* Basic data types that can be displayed in the data window. */
|
||||
enum tui_data_type
|
||||
{
|
||||
TUI_REGISTER,
|
||||
@ -135,7 +137,7 @@ enum tui_data_type
|
||||
TUI_STRUCT
|
||||
};
|
||||
|
||||
/* Types of register displays */
|
||||
/* Types of register displays. */
|
||||
enum tui_register_display_type
|
||||
{
|
||||
TUI_UNDEFINED_REGS,
|
||||
@ -146,7 +148,7 @@ enum tui_register_display_type
|
||||
TUI_GENERAL_AND_SPECIAL_REGS
|
||||
};
|
||||
|
||||
/* Structure describing source line or line address */
|
||||
/* Structure describing source line or line address. */
|
||||
struct tui_line_or_address
|
||||
{
|
||||
enum { LOA_LINE, LOA_ADDRESS } loa;
|
||||
@ -157,7 +159,7 @@ struct tui_line_or_address
|
||||
} u;
|
||||
};
|
||||
|
||||
/* Current Layout definition */
|
||||
/* Current Layout definition. */
|
||||
struct tui_layout_def
|
||||
{
|
||||
enum tui_win_type display_mode;
|
||||
@ -166,7 +168,7 @@ struct tui_layout_def
|
||||
enum tui_register_display_type float_regs_display_type;
|
||||
};
|
||||
|
||||
/* Elements in the Source/Disassembly Window */
|
||||
/* Elements in the Source/Disassembly Window. */
|
||||
struct tui_source_element
|
||||
{
|
||||
char *line;
|
||||
@ -176,11 +178,11 @@ struct tui_source_element
|
||||
};
|
||||
|
||||
|
||||
/* Elements in the data display window content */
|
||||
/* Elements in the data display window content. */
|
||||
struct tui_data_element
|
||||
{
|
||||
const char *name;
|
||||
int item_no; /* the register number, or data display number */
|
||||
int item_no; /* The register number, or data display number. */
|
||||
enum tui_data_type type;
|
||||
void *value;
|
||||
int highlight;
|
||||
@ -188,7 +190,7 @@ struct tui_data_element
|
||||
};
|
||||
|
||||
|
||||
/* Elements in the command window content */
|
||||
/* Elements in the command window content. */
|
||||
struct tui_command_element
|
||||
{
|
||||
char *line;
|
||||
@ -197,7 +199,7 @@ struct tui_command_element
|
||||
|
||||
#define MAX_LOCATOR_ELEMENT_LEN 100
|
||||
|
||||
/* Elements in the locator window content */
|
||||
/* Elements in the locator window content. */
|
||||
struct tui_locator_element
|
||||
{
|
||||
char file_name[MAX_LOCATOR_ELEMENT_LEN];
|
||||
@ -221,15 +223,15 @@ struct tui_locator_element
|
||||
|
||||
typedef char tui_exec_info_content[TUI_EXECINFO_SIZE];
|
||||
|
||||
/* An content element in a window */
|
||||
/* An content element in a window. */
|
||||
union tui_which_element
|
||||
{
|
||||
struct tui_source_element source; /* the source elements */
|
||||
struct tui_gen_win_info data_window; /* data display elements */
|
||||
struct tui_data_element data; /* elements of data_window */
|
||||
struct tui_command_element command; /* command elements */
|
||||
struct tui_locator_element locator; /* locator elements */
|
||||
tui_exec_info_content simple_string; /* simple char based elements */
|
||||
struct tui_source_element source; /* The source elements. */
|
||||
struct tui_gen_win_info data_window; /* Data display elements. */
|
||||
struct tui_data_element data; /* Elements of data_window. */
|
||||
struct tui_command_element command; /* Command elements. */
|
||||
struct tui_locator_element locator; /* Locator elements. */
|
||||
tui_exec_info_content simple_string; /* Simple char based elements. */
|
||||
};
|
||||
|
||||
struct tui_win_element
|
||||
@ -239,30 +241,31 @@ struct tui_win_element
|
||||
};
|
||||
|
||||
|
||||
/* This describes the content of the window. */
|
||||
/* This describes the content of the window. */
|
||||
typedef struct tui_win_element **tui_win_content;
|
||||
|
||||
|
||||
/* This struct defines the specific information about a data display window */
|
||||
/* This struct defines the specific information about a data display
|
||||
window. */
|
||||
struct tui_data_info
|
||||
{
|
||||
tui_win_content data_content; /* start of data display content */
|
||||
tui_win_content data_content; /* Start of data display content. */
|
||||
int data_content_count;
|
||||
tui_win_content regs_content; /* start of regs display content */
|
||||
tui_win_content regs_content; /* Start of regs display content. */
|
||||
int regs_content_count;
|
||||
enum tui_register_display_type regs_display_type;
|
||||
int regs_column_count;
|
||||
int display_regs; /* Should regs be displayed at all? */
|
||||
int display_regs; /* Should regs be displayed at all? */
|
||||
struct reggroup *current_group;
|
||||
};
|
||||
|
||||
|
||||
struct tui_source_info
|
||||
{
|
||||
int has_locator; /* Does locator belongs to this window? */
|
||||
int has_locator; /* Does locator belongs to this window? */
|
||||
/* Execution information window. */
|
||||
struct tui_gen_win_info *execution_info;
|
||||
int horizontal_offset; /* used for horizontal scroll */
|
||||
int horizontal_offset; /* Used for horizontal scroll. */
|
||||
struct tui_line_or_address start_line_or_addr;
|
||||
char *filename;
|
||||
};
|
||||
@ -270,16 +273,16 @@ struct tui_source_info
|
||||
|
||||
struct tui_command_info
|
||||
{
|
||||
int cur_line; /* The current line position */
|
||||
int curch; /* The current cursor position */
|
||||
int cur_line; /* The current line position. */
|
||||
int curch; /* The current cursor position. */
|
||||
int start_line;
|
||||
};
|
||||
|
||||
|
||||
/* This defines information about each logical window */
|
||||
/* This defines information about each logical window. */
|
||||
struct tui_win_info
|
||||
{
|
||||
struct tui_gen_win_info generic; /* general window information */
|
||||
struct tui_gen_win_info generic; /* General window information. */
|
||||
union
|
||||
{
|
||||
struct tui_source_info source_info;
|
||||
@ -288,8 +291,8 @@ struct tui_win_info
|
||||
void *opaque;
|
||||
}
|
||||
detail;
|
||||
int can_highlight; /* Can this window ever be highlighted? */
|
||||
int is_highlighted; /* Is this window highlighted? */
|
||||
int can_highlight; /* Can this window ever be highlighted? */
|
||||
int is_highlighted; /* Is this window highlighted? */
|
||||
};
|
||||
|
||||
extern int tui_win_is_source_type (enum tui_win_type win_type);
|
||||
@ -299,15 +302,15 @@ extern void tui_set_win_highlight (struct tui_win_info *win_info,
|
||||
int highlight);
|
||||
|
||||
|
||||
/* Global Data */
|
||||
/* Global Data. */
|
||||
extern struct tui_win_info *(tui_win_list[MAX_MAJOR_WINDOWS]);
|
||||
|
||||
#define TUI_SRC_WIN tui_win_list[SRC_WIN]
|
||||
#define TUI_DISASM_WIN tui_win_list[DISASSEM_WIN]
|
||||
#define TUI_DATA_WIN tui_win_list[DATA_WIN]
|
||||
#define TUI_CMD_WIN tui_win_list[CMD_WIN]
|
||||
#define TUI_SRC_WIN tui_win_list[SRC_WIN]
|
||||
#define TUI_DISASM_WIN tui_win_list[DISASSEM_WIN]
|
||||
#define TUI_DATA_WIN tui_win_list[DATA_WIN]
|
||||
#define TUI_CMD_WIN tui_win_list[CMD_WIN]
|
||||
|
||||
/* Data Manipulation Functions */
|
||||
/* Data Manipulation Functions. */
|
||||
extern void tui_initialize_static_data (void);
|
||||
extern struct tui_gen_win_info *tui_alloc_generic_win_info (void);
|
||||
extern struct tui_win_info *tui_alloc_win_info (enum tui_win_type);
|
||||
|
@ -55,10 +55,10 @@ tui_disassemble (struct tui_asm_line *asm_lines, CORE_ADDR pc, int count)
|
||||
{
|
||||
struct ui_file *gdb_dis_out;
|
||||
|
||||
/* now init the ui_file structure */
|
||||
/* Now init the ui_file structure. */
|
||||
gdb_dis_out = tui_sfileopen (256);
|
||||
|
||||
/* Now construct each line */
|
||||
/* Now construct each line. */
|
||||
for (; count > 0; count--, asm_lines++)
|
||||
{
|
||||
if (asm_lines->addr_string)
|
||||
@ -76,16 +76,16 @@ tui_disassemble (struct tui_asm_line *asm_lines, CORE_ADDR pc, int count)
|
||||
|
||||
asm_lines->insn = xstrdup (tui_file_get_strbuf (gdb_dis_out));
|
||||
|
||||
/* reset the buffer to empty */
|
||||
/* Reset the buffer to empty. */
|
||||
ui_file_rewind (gdb_dis_out);
|
||||
}
|
||||
ui_file_delete (gdb_dis_out);
|
||||
return pc;
|
||||
}
|
||||
|
||||
/* Find the disassembly address that corresponds to FROM lines
|
||||
above or below the PC. Variable sized instructions are taken
|
||||
into account by the algorithm. */
|
||||
/* Find the disassembly address that corresponds to FROM lines above
|
||||
or below the PC. Variable sized instructions are taken into
|
||||
account by the algorithm. */
|
||||
static CORE_ADDR
|
||||
tui_find_disassembly_address (CORE_ADDR pc, int from)
|
||||
{
|
||||
@ -114,9 +114,9 @@ tui_find_disassembly_address (CORE_ADDR pc, int from)
|
||||
int pos;
|
||||
struct minimal_symbol *msymbol;
|
||||
|
||||
/* Find backward an address which is a symbol
|
||||
and for which disassembling from that address will fill
|
||||
completely the window. */
|
||||
/* Find backward an address which is a symbol and for which
|
||||
disassembling from that address will fill completely the
|
||||
window. */
|
||||
pos = max_lines - 1;
|
||||
do {
|
||||
new_low -= 1 * max_lines;
|
||||
@ -131,11 +131,10 @@ tui_find_disassembly_address (CORE_ADDR pc, int from)
|
||||
last_addr = asm_lines[pos].addr;
|
||||
} while (last_addr > pc && msymbol);
|
||||
|
||||
/* Scan forward disassembling one instruction at a time
|
||||
until the last visible instruction of the window
|
||||
matches the pc. We keep the disassembled instructions
|
||||
in the 'lines' window and shift it downward (increasing
|
||||
its addresses). */
|
||||
/* Scan forward disassembling one instruction at a time until
|
||||
the last visible instruction of the window matches the pc.
|
||||
We keep the disassembled instructions in the 'lines' window
|
||||
and shift it downward (increasing its addresses). */
|
||||
if (last_addr < pc)
|
||||
do
|
||||
{
|
||||
@ -193,7 +192,8 @@ tui_set_disassem_content (CORE_ADDR pc)
|
||||
cur_pc = (CORE_ADDR)
|
||||
(((struct tui_win_element *) locator->content[0])->which_element.locator.addr);
|
||||
|
||||
max_lines = TUI_DISASM_WIN->generic.height - 2; /* account for hilite */
|
||||
max_lines = TUI_DISASM_WIN->generic.height - 2; /* Account for
|
||||
hilite. */
|
||||
|
||||
/* Get temporary table that will hold all strings (addr & insn). */
|
||||
asm_lines = (struct tui_asm_line*) alloca (sizeof (struct tui_asm_line)
|
||||
@ -223,7 +223,7 @@ tui_set_disassem_content (CORE_ADDR pc)
|
||||
line = (char*) alloca (max_size);
|
||||
insn_pos = (1 + (addr_size / tab_len)) * tab_len;
|
||||
|
||||
/* Now construct each line */
|
||||
/* Now construct each line. */
|
||||
for (i = 0; i < max_lines; i++)
|
||||
{
|
||||
struct tui_win_element *element;
|
||||
@ -235,7 +235,8 @@ tui_set_disassem_content (CORE_ADDR pc)
|
||||
strcpy (line, asm_lines[i].addr_string);
|
||||
cur_len = strlen (line);
|
||||
|
||||
/* Add spaces to make the instructions start on the same column */
|
||||
/* Add spaces to make the instructions start on the same
|
||||
column. */
|
||||
while (cur_len < insn_pos)
|
||||
{
|
||||
strcat (line, " ");
|
||||
@ -244,7 +245,7 @@ tui_set_disassem_content (CORE_ADDR pc)
|
||||
|
||||
strcat (line, asm_lines[i].insn);
|
||||
|
||||
/* Now copy the line taking the offset into account */
|
||||
/* Now copy the line taking the offset into account. */
|
||||
if (strlen (line) > offset)
|
||||
strcpy (src->line, &line[offset]);
|
||||
else
|
||||
@ -266,7 +267,7 @@ tui_set_disassem_content (CORE_ADDR pc)
|
||||
}
|
||||
|
||||
|
||||
/* Function to display the disassembly window with disassembled code. */
|
||||
/* Function to display the disassembly window with disassembled code. */
|
||||
void
|
||||
tui_show_disassem (CORE_ADDR start_addr)
|
||||
{
|
||||
@ -279,8 +280,8 @@ tui_show_disassem (CORE_ADDR start_addr)
|
||||
tui_add_win_to_layout (DISASSEM_WIN);
|
||||
tui_update_source_window (TUI_DISASM_WIN, s, val, FALSE);
|
||||
/*
|
||||
** if the focus was in the src win, put it in the asm win, if the
|
||||
** source view isn't split
|
||||
** If the focus was in the src win, put it in the asm win, if
|
||||
** the source view isn't split.
|
||||
*/
|
||||
if (tui_current_layout () != SRC_DISASSEM_COMMAND && win_with_focus == TUI_SRC_WIN)
|
||||
tui_set_win_focus_to (TUI_DISASM_WIN);
|
||||
@ -289,7 +290,7 @@ tui_show_disassem (CORE_ADDR start_addr)
|
||||
}
|
||||
|
||||
|
||||
/* Function to display the disassembly window. */
|
||||
/* Function to display the disassembly window. */
|
||||
void
|
||||
tui_show_disassem_and_update_source (CORE_ADDR start_addr)
|
||||
{
|
||||
@ -302,7 +303,8 @@ tui_show_disassem_and_update_source (CORE_ADDR start_addr)
|
||||
|
||||
/*
|
||||
** Update what is in the source window if it is displayed too,
|
||||
** note that it follows what is in the disassembly window and visa-versa
|
||||
** note that it follows what is in the disassembly window and
|
||||
** visa-versa.
|
||||
*/
|
||||
sal = find_pc_line (start_addr, 0);
|
||||
val.loa = LOA_LINE;
|
||||
@ -346,22 +348,22 @@ tui_get_begin_asm_address (void)
|
||||
else
|
||||
addr = 0;
|
||||
}
|
||||
else /* the target is executing */
|
||||
else /* The target is executing. */
|
||||
addr = element->addr;
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
/* Determine what the low address will be to display in the TUI's
|
||||
disassembly window. This may or may not be the same as the
|
||||
low address input. */
|
||||
disassembly window. This may or may not be the same as the low
|
||||
address input. */
|
||||
CORE_ADDR
|
||||
tui_get_low_disassembly_address (CORE_ADDR low, CORE_ADDR pc)
|
||||
{
|
||||
int pos;
|
||||
|
||||
/* Determine where to start the disassembly so that the pc is about in the
|
||||
middle of the viewport. */
|
||||
/* Determine where to start the disassembly so that the pc is about
|
||||
in the middle of the viewport. */
|
||||
pos = tui_default_win_viewport_height (DISASSEM_WIN, DISASSEM_COMMAND) / 2;
|
||||
pc = tui_find_disassembly_address (pc, -pos);
|
||||
|
||||
@ -390,7 +392,7 @@ tui_vertical_disassem_scroll (enum tui_scroll_direction scroll_direction,
|
||||
else
|
||||
s = cursal.symtab;
|
||||
|
||||
/* account for hilite */
|
||||
/* Account for hilite. */
|
||||
max_lines = TUI_DISASM_WIN->generic.height - 2;
|
||||
pc = content[0]->which_element.source.line_or_addr.u.addr;
|
||||
dir = (scroll_direction == FORWARD_SCROLL) ? max_lines : - max_lines;
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include "gdb_string.h"
|
||||
|
||||
/* A ``struct ui_file'' that is compatible with all the legacy
|
||||
code. */
|
||||
code. */
|
||||
|
||||
/* new */
|
||||
enum streamtype
|
||||
@ -111,8 +111,8 @@ tui_sfileopen (int n)
|
||||
tmpstream->ts_strbuf[0] = '\0';
|
||||
}
|
||||
else
|
||||
/* Do not allocate the buffer now. The first time something is printed
|
||||
one will be allocated by tui_file_adjust_strbuf() */
|
||||
/* Do not allocate the buffer now. The first time something is
|
||||
printed one will be allocated by tui_file_adjust_strbuf(). */
|
||||
tmpstream->ts_strbuf = NULL;
|
||||
tmpstream->ts_buflen = n;
|
||||
return file;
|
||||
@ -161,7 +161,7 @@ tui_file_put (struct ui_file *file,
|
||||
gdb_stderr are sent to the hook. Everything else is sent on to
|
||||
fputs to allow file I/O to be handled appropriately. */
|
||||
|
||||
/* FIXME: Should be broken up and moved to a TUI specific file. */
|
||||
/* FIXME: Should be broken up and moved to a TUI specific file. */
|
||||
|
||||
void
|
||||
tui_file_fputs (const char *linebuffer, struct ui_file *file)
|
||||
@ -189,8 +189,9 @@ tui_file_get_strbuf (struct ui_file *file)
|
||||
return (stream->ts_strbuf);
|
||||
}
|
||||
|
||||
/* adjust the length of the buffer by the amount necessary
|
||||
to accomodate appending a string of length N to the buffer contents */
|
||||
/* Adjust the length of the buffer by the amount necessary to
|
||||
accomodate appending a string of length N to the buffer
|
||||
contents. */
|
||||
void
|
||||
tui_file_adjust_strbuf (int n, struct ui_file *file)
|
||||
{
|
||||
@ -205,7 +206,7 @@ tui_file_adjust_strbuf (int n, struct ui_file *file)
|
||||
|
||||
if (stream->ts_strbuf)
|
||||
{
|
||||
/* There is already a buffer allocated */
|
||||
/* There is already a buffer allocated. */
|
||||
non_null_chars = strlen (stream->ts_strbuf);
|
||||
|
||||
if (n > (stream->ts_buflen - non_null_chars - 1))
|
||||
@ -215,7 +216,7 @@ tui_file_adjust_strbuf (int n, struct ui_file *file)
|
||||
}
|
||||
}
|
||||
else
|
||||
/* No buffer yet, so allocate one of the desired size */
|
||||
/* No buffer yet, so allocate one of the desired size. */
|
||||
stream->ts_strbuf = xmalloc ((n + 1) * sizeof (char));
|
||||
}
|
||||
|
||||
|
@ -77,7 +77,7 @@ tui_query_hook (const char *msg, va_list argp)
|
||||
echo ();
|
||||
while (1)
|
||||
{
|
||||
wrap_here (""); /* Flush any buffered output */
|
||||
wrap_here (""); /* Flush any buffered output. */
|
||||
gdb_flush (gdb_stdout);
|
||||
|
||||
vfprintf_filtered (gdb_stdout, msg, argp);
|
||||
@ -93,7 +93,7 @@ tui_query_hook (const char *msg, va_list argp)
|
||||
retval = 1;
|
||||
break;
|
||||
}
|
||||
/* Eat rest of input line, to EOF or newline */
|
||||
/* Eat rest of input line, to EOF or newline. */
|
||||
if (answer != '\n')
|
||||
do
|
||||
{
|
||||
@ -204,7 +204,8 @@ tui_target_wait_hook (ptid_t pid, struct target_waitstatus *status)
|
||||
}
|
||||
|
||||
/* The selected frame has changed. This is happens after a target
|
||||
stop or when the user explicitly changes the frame (up/down/thread/...). */
|
||||
stop or when the user explicitly changes the frame
|
||||
(up/down/thread/...). */
|
||||
static void
|
||||
tui_selected_frame_level_changed_hook (int level)
|
||||
{
|
||||
@ -215,17 +216,18 @@ tui_selected_frame_level_changed_hook (int level)
|
||||
return;
|
||||
|
||||
fi = get_selected_frame (NULL);
|
||||
/* Ensure that symbols for this frame are read in. Also, determine the
|
||||
source language of this frame, and switch to it if desired. */
|
||||
/* Ensure that symbols for this frame are read in. Also, determine
|
||||
the source language of this frame, and switch to it if
|
||||
desired. */
|
||||
if (fi)
|
||||
{
|
||||
struct symtab *s;
|
||||
|
||||
s = find_pc_symtab (get_frame_pc (fi));
|
||||
/* elz: this if here fixes the problem with the pc not being displayed
|
||||
in the tui asm layout, with no debug symbols. The value of s
|
||||
would be 0 here, and select_source_symtab would abort the
|
||||
command by calling the 'error' function */
|
||||
/* elz: This if here fixes the problem with the pc not being
|
||||
displayed in the tui asm layout, with no debug symbols. The
|
||||
value of s would be 0 here, and select_source_symtab would
|
||||
abort the command by calling the 'error' function. */
|
||||
if (s)
|
||||
select_source_symtab (s);
|
||||
|
||||
|
@ -33,7 +33,8 @@
|
||||
#include "tui/tui-io.h"
|
||||
#include "exceptions.h"
|
||||
|
||||
/* Set to 1 when the TUI mode must be activated when we first start gdb. */
|
||||
/* Set to 1 when the TUI mode must be activated when we first start
|
||||
gdb. */
|
||||
static int tui_start_enabled = 0;
|
||||
|
||||
/* Cleanup the tui before exiting. */
|
||||
@ -41,8 +42,8 @@ static int tui_start_enabled = 0;
|
||||
static void
|
||||
tui_exit (void)
|
||||
{
|
||||
/* Disable the tui. Curses mode is left leaving the screen
|
||||
in a clean state (see endwin()). */
|
||||
/* Disable the tui. Curses mode is left leaving the screen in a
|
||||
clean state (see endwin()). */
|
||||
tui_disable ();
|
||||
}
|
||||
|
||||
@ -67,8 +68,9 @@ tui_resume (void *data)
|
||||
{
|
||||
struct ui_file *stream;
|
||||
|
||||
/* gdb_setup_readline will change gdb_stdout. If the TUI was previously
|
||||
writing to gdb_stdout, then set it to the new gdb_stdout afterwards. */
|
||||
/* gdb_setup_readline will change gdb_stdout. If the TUI was
|
||||
previously writing to gdb_stdout, then set it to the new
|
||||
gdb_stdout afterwards. */
|
||||
|
||||
stream = cli_out_set_stream (tui_old_uiout, gdb_stdout);
|
||||
if (stream != gdb_stdout)
|
||||
@ -198,7 +200,7 @@ _initialize_tui_interp (void)
|
||||
};
|
||||
struct interp *tui_interp;
|
||||
|
||||
/* Create a default uiout builder for the TUI. */
|
||||
/* Create a default uiout builder for the TUI. */
|
||||
tui_out = tui_out_new (gdb_stdout);
|
||||
interp_add (interp_new (INTERP_TUI, NULL, tui_out, &procs));
|
||||
if (interpreter_p && strcmp (interpreter_p, INTERP_TUI) == 0)
|
||||
|
@ -84,36 +84,37 @@ key_is_command_char (int ch)
|
||||
When the TUI is enabled, gdb has two modes a curses and a standard
|
||||
mode.
|
||||
|
||||
In curses mode, the gdb outputs are made in a curses command window.
|
||||
For this, the gdb_stdout and gdb_stderr are redirected to the specific
|
||||
ui_file implemented by TUI. The output is handled by tui_puts().
|
||||
The input is also controlled by curses with tui_getc(). The readline
|
||||
library uses this function to get its input. Several readline hooks
|
||||
are installed to redirect readline output to the TUI (see also the
|
||||
note below).
|
||||
In curses mode, the gdb outputs are made in a curses command
|
||||
window. For this, the gdb_stdout and gdb_stderr are redirected to
|
||||
the specific ui_file implemented by TUI. The output is handled by
|
||||
tui_puts(). The input is also controlled by curses with
|
||||
tui_getc(). The readline library uses this function to get its
|
||||
input. Several readline hooks are installed to redirect readline
|
||||
output to the TUI (see also the note below).
|
||||
|
||||
In normal mode, the gdb outputs are restored to their origin, that
|
||||
is as if TUI is not used. Readline also uses its original getc()
|
||||
function with stdin.
|
||||
|
||||
Note SCz/2001-07-21: the current readline is not clean in its management of
|
||||
the output. Even if we install a redisplay handler, it sometimes writes on
|
||||
a stdout file. It is important to redirect every output produced by
|
||||
readline, otherwise the curses window will be garbled. This is implemented
|
||||
with a pipe that TUI reads and readline writes to. A gdb input handler
|
||||
is created so that reading the pipe is handled automatically.
|
||||
This will probably not work on non-Unix platforms. The best fix is
|
||||
to make readline clean enougth so that is never write on stdout.
|
||||
Note SCz/2001-07-21: the current readline is not clean in its
|
||||
management of the output. Even if we install a redisplay handler,
|
||||
it sometimes writes on a stdout file. It is important to redirect
|
||||
every output produced by readline, otherwise the curses window will
|
||||
be garbled. This is implemented with a pipe that TUI reads and
|
||||
readline writes to. A gdb input handler is created so that reading
|
||||
the pipe is handled automatically. This will probably not work on
|
||||
non-Unix platforms. The best fix is to make readline clean enougth
|
||||
so that is never write on stdout.
|
||||
|
||||
Note SCz/2002-09-01: we now use more readline hooks and it seems that
|
||||
with them we don't need the pipe anymore (verified by creating the pipe
|
||||
and closing its end so that write causes a SIGPIPE). The old pipe code
|
||||
is still there and can be conditionally removed by
|
||||
Note SCz/2002-09-01: we now use more readline hooks and it seems
|
||||
that with them we don't need the pipe anymore (verified by creating
|
||||
the pipe and closing its end so that write causes a SIGPIPE). The
|
||||
old pipe code is still there and can be conditionally removed by
|
||||
#undef TUI_USE_PIPE_FOR_READLINE. */
|
||||
|
||||
/* For gdb 5.3, prefer to continue the pipe hack as a backup wheel. */
|
||||
#define TUI_USE_PIPE_FOR_READLINE
|
||||
/*#undef TUI_USE_PIPE_FOR_READLINE*/
|
||||
/* #undef TUI_USE_PIPE_FOR_READLINE */
|
||||
|
||||
/* TUI output files. */
|
||||
static struct ui_file *tui_stdout;
|
||||
@ -207,7 +208,8 @@ tui_redisplay_readline (void)
|
||||
int start_line;
|
||||
|
||||
/* Detect when we temporarily left SingleKey and now the readline
|
||||
edit buffer is empty, automatically restore the SingleKey mode. */
|
||||
edit buffer is empty, automatically restore the SingleKey
|
||||
mode. */
|
||||
if (tui_current_key_mode == TUI_ONE_COMMAND_MODE && rl_end == 0)
|
||||
tui_set_key_mode (TUI_SINGLE_KEY_MODE);
|
||||
|
||||
@ -275,8 +277,9 @@ tui_redisplay_readline (void)
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
/* Readline callback to prepare the terminal. It is called once
|
||||
each time we enter readline. Terminal is already setup in curses mode. */
|
||||
/* Readline callback to prepare the terminal. It is called once each
|
||||
time we enter readline. Terminal is already setup in curses
|
||||
mode. */
|
||||
static void
|
||||
tui_prep_terminal (int notused1)
|
||||
{
|
||||
@ -287,8 +290,8 @@ tui_prep_terminal (int notused1)
|
||||
tui_rl_saved_prompt = xstrdup (rl_prompt);
|
||||
}
|
||||
|
||||
/* Readline callback to restore the terminal. It is called once
|
||||
each time we leave readline. There is nothing to do in curses mode. */
|
||||
/* Readline callback to restore the terminal. It is called once each
|
||||
time we leave readline. There is nothing to do in curses mode. */
|
||||
static void
|
||||
tui_deprep_terminal (void)
|
||||
{
|
||||
@ -317,7 +320,7 @@ tui_readline_output (int code, gdb_client_data data)
|
||||
are only interested in the basename, the portion following the
|
||||
final slash. Otherwise, we return what we were passed.
|
||||
|
||||
Comes from readline/complete.c */
|
||||
Comes from readline/complete.c. */
|
||||
static char *
|
||||
printable_part (char *pathname)
|
||||
{
|
||||
@ -331,9 +334,10 @@ printable_part (char *pathname)
|
||||
return (temp ? ++temp : pathname);
|
||||
}
|
||||
|
||||
/* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and we
|
||||
are using it, check for and output a single character for `special'
|
||||
filenames. Return the number of characters we output. */
|
||||
/* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and
|
||||
we are using it, check for and output a single character for
|
||||
`special' filenames. Return the number of characters we
|
||||
output. */
|
||||
|
||||
#define PUTX(c) \
|
||||
do { \
|
||||
@ -369,7 +373,7 @@ print_filename (char *to_print, char *full_pathname)
|
||||
}
|
||||
|
||||
/* The user must press "y" or "n". Non-zero return means "y" pressed.
|
||||
Comes from readline/complete.c */
|
||||
Comes from readline/complete.c. */
|
||||
static int
|
||||
get_y_or_n (void)
|
||||
{
|
||||
@ -411,7 +415,7 @@ tui_rl_display_match_list (char **matches, int len, int max)
|
||||
int screenwidth = TUI_CMD_WIN->generic.width;
|
||||
|
||||
/* If there are many items, then ask the user if she really wants to
|
||||
see them all. */
|
||||
see them all. */
|
||||
if (len >= rl_completion_query_items)
|
||||
{
|
||||
char msg[256];
|
||||
@ -425,25 +429,25 @@ tui_rl_display_match_list (char **matches, int len, int max)
|
||||
}
|
||||
}
|
||||
|
||||
/* How many items of MAX length can we fit in the screen window? */
|
||||
/* How many items of MAX length can we fit in the screen window? */
|
||||
max += 2;
|
||||
limit = screenwidth / max;
|
||||
if (limit != 1 && (limit * max == screenwidth))
|
||||
limit--;
|
||||
|
||||
/* Avoid a possible floating exception. If max > screenwidth,
|
||||
limit will be 0 and a divide-by-zero fault will result. */
|
||||
/* Avoid a possible floating exception. If max > screenwidth, limit
|
||||
will be 0 and a divide-by-zero fault will result. */
|
||||
if (limit == 0)
|
||||
limit = 1;
|
||||
|
||||
/* How many iterations of the printing loop? */
|
||||
/* How many iterations of the printing loop? */
|
||||
count = (len + (limit - 1)) / limit;
|
||||
|
||||
/* Watch out for special case. If LEN is less than LIMIT, then
|
||||
just do the inner printing loop.
|
||||
0 < len <= limit implies count = 1. */
|
||||
0 < len <= limit implies count = 1. */
|
||||
|
||||
/* Sort the items if they are not already sorted. */
|
||||
/* Sort the items if they are not already sorted. */
|
||||
if (rl_ignore_completion_duplicates == 0)
|
||||
qsort (matches + 1, len, sizeof (char *),
|
||||
(QSFUNC *)_rl_qsort_string_compare);
|
||||
@ -452,7 +456,7 @@ tui_rl_display_match_list (char **matches, int len, int max)
|
||||
|
||||
if (_rl_print_completions_horizontally == 0)
|
||||
{
|
||||
/* Print the sorted items, up-and-down alphabetically, like ls. */
|
||||
/* Print the sorted items, up-and-down alphabetically, like ls. */
|
||||
for (i = 1; i <= count; i++)
|
||||
{
|
||||
for (j = 0, l = i; j < limit; j++)
|
||||
@ -475,12 +479,12 @@ tui_rl_display_match_list (char **matches, int len, int max)
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Print the sorted items, across alphabetically, like ls -x. */
|
||||
/* Print the sorted items, across alphabetically, like ls -x. */
|
||||
for (i = 1; matches[i]; i++)
|
||||
{
|
||||
temp = printable_part (matches[i]);
|
||||
printed_len = print_filename (temp, matches[i]);
|
||||
/* Have we reached the end of this line? */
|
||||
/* Have we reached the end of this line? */
|
||||
if (matches[i+1])
|
||||
{
|
||||
if (i && (limit > 1) && (i % limit) == 0)
|
||||
@ -607,9 +611,9 @@ tui_initialize_io (void)
|
||||
tui_old_uiout = uiout = cli_out_new (gdb_stdout);
|
||||
|
||||
#ifdef TUI_USE_PIPE_FOR_READLINE
|
||||
/* Temporary solution for readline writing to stdout:
|
||||
redirect readline output in a pipe, read that pipe and
|
||||
output the content in the curses command window. */
|
||||
/* Temporary solution for readline writing to stdout: redirect
|
||||
readline output in a pipe, read that pipe and output the content
|
||||
in the curses command window. */
|
||||
if (pipe (tui_readline_pipe) != 0)
|
||||
{
|
||||
fprintf_unfiltered (gdb_stderr, "Cannot create pipe for readline");
|
||||
@ -636,8 +640,8 @@ tui_initialize_io (void)
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Get a character from the command window. This is called from the readline
|
||||
package. */
|
||||
/* Get a character from the command window. This is called from the
|
||||
readline package. */
|
||||
int
|
||||
tui_getc (FILE *fp)
|
||||
{
|
||||
@ -654,7 +658,8 @@ tui_getc (FILE *fp)
|
||||
ch = wgetch (w);
|
||||
ch = tui_handle_resize_during_io (ch);
|
||||
|
||||
/* The \n must be echoed because it will not be printed by readline. */
|
||||
/* The \n must be echoed because it will not be printed by
|
||||
readline. */
|
||||
if (ch == '\n')
|
||||
{
|
||||
/* When hitting return with an empty input, gdb executes the last
|
||||
@ -681,7 +686,7 @@ tui_getc (FILE *fp)
|
||||
}
|
||||
|
||||
if (key_is_command_char (ch))
|
||||
{ /* Handle prev/next/up/down here */
|
||||
{ /* Handle prev/next/up/down here. */
|
||||
ch = tui_dispatch_ctrl_char (ch);
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ show_layout (enum tui_layout_type layout)
|
||||
/*
|
||||
** Since the new layout may cause changes in window size, we
|
||||
** should free the content and reallocate on next display of
|
||||
** source/asm
|
||||
** source/asm.
|
||||
*/
|
||||
tui_free_all_source_wins_content ();
|
||||
tui_clear_source_windows ();
|
||||
@ -95,13 +95,13 @@ show_layout (enum tui_layout_type layout)
|
||||
}
|
||||
else
|
||||
{
|
||||
/* First make the current layout be invisible */
|
||||
/* First make the current layout be invisible. */
|
||||
tui_make_all_invisible ();
|
||||
tui_make_invisible (tui_locator_win_info_ptr ());
|
||||
|
||||
switch (layout)
|
||||
{
|
||||
/* Now show the new layout */
|
||||
/* Now show the new layout. */
|
||||
case SRC_COMMAND:
|
||||
show_source_command ();
|
||||
tui_add_to_source_windows (TUI_SRC_WIN);
|
||||
@ -166,7 +166,7 @@ tui_set_layout (enum tui_layout_type layout_type,
|
||||
{
|
||||
show_layout (new_layout);
|
||||
/*
|
||||
** Now determine where focus should be
|
||||
** Now determine where focus should be.
|
||||
*/
|
||||
if (win_with_focus != TUI_CMD_WIN)
|
||||
{
|
||||
@ -178,7 +178,7 @@ tui_set_layout (enum tui_layout_type layout_type,
|
||||
layout_def->split = FALSE;
|
||||
break;
|
||||
case DISASSEM_COMMAND:
|
||||
/* the previous layout was not showing
|
||||
/* The previous layout was not showing
|
||||
** code. this can happen if there is no
|
||||
** source available:
|
||||
** 1. if the source file is in another dir OR
|
||||
@ -191,7 +191,7 @@ tui_set_layout (enum tui_layout_type layout_type,
|
||||
layout_def->split = FALSE;
|
||||
break;
|
||||
case SRC_DISASSEM_COMMAND:
|
||||
/* the previous layout was not showing
|
||||
/* The previous layout was not showing
|
||||
** code. this can happen if there is no
|
||||
** source available:
|
||||
** 1. if the source file is in another dir OR
|
||||
@ -214,7 +214,7 @@ tui_set_layout (enum tui_layout_type layout_type,
|
||||
layout_def->split = FALSE;
|
||||
break;
|
||||
case DISASSEM_DATA_COMMAND:
|
||||
/* the previous layout was not showing
|
||||
/* The previous layout was not showing
|
||||
** code. this can happen if there is no
|
||||
** source available:
|
||||
** 1. if the source file is in another dir OR
|
||||
@ -417,7 +417,7 @@ tui_set_layout_for_display_command (const char *layout_name)
|
||||
for (i = 0; (i < strlen (layout_name)); i++)
|
||||
buf_ptr[i] = toupper (buf_ptr[i]);
|
||||
|
||||
/* First check for ambiguous input */
|
||||
/* First check for ambiguous input. */
|
||||
if (strlen (buf_ptr) <= 1 && (*buf_ptr == 'S' || *buf_ptr == '$'))
|
||||
{
|
||||
warning (_("Ambiguous command input."));
|
||||
@ -442,11 +442,11 @@ tui_set_layout_for_display_command (const char *layout_name)
|
||||
else
|
||||
new_layout = DISASSEM_DATA_COMMAND;
|
||||
|
||||
/* could ifdef out the following code. when compile with -z, there are null
|
||||
pointer references that cause a core dump if 'layout regs' is the first
|
||||
layout command issued by the user. HP has asked us to hook up this code
|
||||
- edie epstein
|
||||
*/
|
||||
/* Could ifdef out the following code. when compile with
|
||||
-z, there are null pointer references that cause a
|
||||
core dump if 'layout regs' is the first layout
|
||||
command issued by the user. HP has asked us to hook
|
||||
up this code. - edie epstein */
|
||||
if (subset_compare (buf_ptr, TUI_FLOAT_REGS_NAME))
|
||||
{
|
||||
if (TUI_DATA_WIN->detail.data_display_info.regs_display_type !=
|
||||
@ -475,15 +475,14 @@ tui_set_layout_for_display_command (const char *layout_name)
|
||||
dpy_type = TUI_GENERAL_REGS;
|
||||
}
|
||||
|
||||
/* end of potential ifdef
|
||||
*/
|
||||
/* End of potential ifdef.
|
||||
*/
|
||||
|
||||
/* if ifdefed out code above, then assume that the user wishes to display the
|
||||
general purpose registers
|
||||
*/
|
||||
/* If ifdefed out code above, then assume that the user
|
||||
wishes to display the general purpose registers .
|
||||
*/
|
||||
|
||||
/* dpy_type = TUI_GENERAL_REGS;
|
||||
*/
|
||||
/* dpy_type = TUI_GENERAL_REGS; */
|
||||
}
|
||||
else if (subset_compare (buf_ptr, "NEXT"))
|
||||
new_layout = next_layout ();
|
||||
@ -978,7 +977,7 @@ make_source_or_disasm_window (struct tui_win_info **win_info_ptr, enum tui_win_t
|
||||
}
|
||||
|
||||
|
||||
/* Show the Source/Command or the Disassem layout. */
|
||||
/* Show the Source/Command or the Disassem layout. */
|
||||
static void
|
||||
show_source_or_disasm_and_command (enum tui_layout_type layout_type)
|
||||
{
|
||||
|
@ -38,7 +38,7 @@ struct ui_out_data
|
||||
};
|
||||
typedef struct ui_out_data tui_out_data;
|
||||
|
||||
/* These are the CLI output functions */
|
||||
/* These are the CLI output functions. */
|
||||
|
||||
static void tui_table_begin (struct ui_out *uiout, int nbrofcols,
|
||||
int nr_rows, const char *tblid);
|
||||
@ -69,10 +69,10 @@ static void tui_message (struct ui_out *uiout, int verbosity,
|
||||
static void tui_wrap_hint (struct ui_out *uiout, char *identstring);
|
||||
static void tui_flush (struct ui_out *uiout);
|
||||
|
||||
/* This is the CLI ui-out implementation functions vector */
|
||||
/* This is the CLI ui-out implementation functions vector. */
|
||||
|
||||
/* FIXME: This can be initialized dynamically after default is set to
|
||||
handle initial output in main.c */
|
||||
handle initial output in main.c. */
|
||||
|
||||
static struct ui_out_impl tui_ui_out_impl =
|
||||
{
|
||||
@ -95,7 +95,7 @@ static struct ui_out_impl tui_ui_out_impl =
|
||||
0, /* Does not need MI hacks (i.e. needs CLI hacks). */
|
||||
};
|
||||
|
||||
/* Prototypes for local functions */
|
||||
/* Prototypes for local functions. */
|
||||
|
||||
extern void _initialize_tui_out (void);
|
||||
|
||||
@ -109,7 +109,7 @@ static void out_field_fmt (struct ui_out *uiout, int fldno,
|
||||
|
||||
/* (none yet) */
|
||||
|
||||
/* Mark beginning of a table */
|
||||
/* Mark beginning of a table. */
|
||||
|
||||
void
|
||||
tui_table_begin (struct ui_out *uiout, int nbrofcols,
|
||||
@ -121,11 +121,11 @@ tui_table_begin (struct ui_out *uiout, int nbrofcols,
|
||||
data->suppress_output = 1;
|
||||
else
|
||||
/* Only the table suppresses the output and, fortunately, a table
|
||||
is not a recursive data structure. */
|
||||
is not a recursive data structure. */
|
||||
gdb_assert (data->suppress_output == 0);
|
||||
}
|
||||
|
||||
/* Mark beginning of a table body */
|
||||
/* Mark beginning of a table body. */
|
||||
|
||||
void
|
||||
tui_table_body (struct ui_out *uiout)
|
||||
@ -133,11 +133,11 @@ tui_table_body (struct ui_out *uiout)
|
||||
tui_out_data *data = ui_out_data (uiout);
|
||||
if (data->suppress_output)
|
||||
return;
|
||||
/* first, close the table header line */
|
||||
/* First, close the table header line. */
|
||||
tui_text (uiout, "\n");
|
||||
}
|
||||
|
||||
/* Mark end of a table */
|
||||
/* Mark end of a table. */
|
||||
|
||||
void
|
||||
tui_table_end (struct ui_out *uiout)
|
||||
@ -146,7 +146,7 @@ tui_table_end (struct ui_out *uiout)
|
||||
data->suppress_output = 0;
|
||||
}
|
||||
|
||||
/* Specify table header */
|
||||
/* Specify table header. */
|
||||
|
||||
void
|
||||
tui_table_header (struct ui_out *uiout, int width, enum ui_align alignment,
|
||||
@ -159,7 +159,7 @@ tui_table_header (struct ui_out *uiout, int width, enum ui_align alignment,
|
||||
tui_field_string (uiout, 0, width, alignment, 0, colhdr);
|
||||
}
|
||||
|
||||
/* Mark beginning of a list */
|
||||
/* Mark beginning of a list. */
|
||||
|
||||
void
|
||||
tui_begin (struct ui_out *uiout,
|
||||
@ -172,7 +172,7 @@ tui_begin (struct ui_out *uiout,
|
||||
return;
|
||||
}
|
||||
|
||||
/* Mark end of a list */
|
||||
/* Mark end of a list. */
|
||||
|
||||
void
|
||||
tui_end (struct ui_out *uiout,
|
||||
@ -184,14 +184,14 @@ tui_end (struct ui_out *uiout,
|
||||
return;
|
||||
}
|
||||
|
||||
/* output an int field */
|
||||
/* Output an int field. */
|
||||
|
||||
void
|
||||
tui_field_int (struct ui_out *uiout, int fldno, int width,
|
||||
enum ui_align alignment,
|
||||
const char *fldname, int value)
|
||||
{
|
||||
char buffer[20]; /* FIXME: how many chars long a %d can become? */
|
||||
char buffer[20]; /* FIXME: how many chars long a %d can become? */
|
||||
|
||||
tui_out_data *data = ui_out_data (uiout);
|
||||
if (data->suppress_output)
|
||||
@ -209,7 +209,7 @@ tui_field_int (struct ui_out *uiout, int fldno, int width,
|
||||
tui_field_string (uiout, fldno, width, alignment, fldname, buffer);
|
||||
}
|
||||
|
||||
/* used to ommit a field */
|
||||
/* Used to ommit a field. */
|
||||
|
||||
void
|
||||
tui_field_skip (struct ui_out *uiout, int fldno, int width,
|
||||
@ -222,8 +222,8 @@ tui_field_skip (struct ui_out *uiout, int fldno, int width,
|
||||
tui_field_string (uiout, fldno, width, alignment, fldname, "");
|
||||
}
|
||||
|
||||
/* other specific tui_field_* end up here so alignment and field
|
||||
separators are both handled by tui_field_string */
|
||||
/* Other specific tui_field_* end up here so alignment and field
|
||||
separators are both handled by tui_field_string. */
|
||||
|
||||
void
|
||||
tui_field_string (struct ui_out *uiout,
|
||||
@ -285,7 +285,7 @@ tui_field_string (struct ui_out *uiout,
|
||||
field_separator ();
|
||||
}
|
||||
|
||||
/* This is the only field function that does not align */
|
||||
/* This is the only field function that does not align. */
|
||||
|
||||
void
|
||||
tui_field_fmt (struct ui_out *uiout, int fldno,
|
||||
@ -362,10 +362,10 @@ tui_flush (struct ui_out *uiout)
|
||||
gdb_flush (data->stream);
|
||||
}
|
||||
|
||||
/* local functions */
|
||||
/* Local functions. */
|
||||
|
||||
/* Like tui_field_fmt, but takes a variable number of args
|
||||
and makes a va_list and does not insert a separator */
|
||||
/* Like tui_field_fmt, but takes a variable number of args and makes a
|
||||
va_list and does not insert a separator. */
|
||||
|
||||
/* VARARGS */
|
||||
static void
|
||||
@ -382,7 +382,7 @@ out_field_fmt (struct ui_out *uiout, int fldno,
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
/* access to ui_out format private members */
|
||||
/* Access to ui_out format private members. */
|
||||
|
||||
static void
|
||||
field_separator (void)
|
||||
@ -391,7 +391,7 @@ field_separator (void)
|
||||
fputc_filtered (' ', data->stream);
|
||||
}
|
||||
|
||||
/* initalize private members at startup */
|
||||
/* Initalize private members at startup. */
|
||||
|
||||
struct ui_out *
|
||||
tui_out_new (struct ui_file *stream)
|
||||
@ -406,9 +406,9 @@ tui_out_new (struct ui_file *stream)
|
||||
return ui_out_new (&tui_ui_out_impl, data, flags);
|
||||
}
|
||||
|
||||
/* standard gdb initialization hook */
|
||||
/* Standard gdb initialization hook. */
|
||||
void
|
||||
_initialize_tui_out (void)
|
||||
{
|
||||
/* nothing needs to be done */
|
||||
/* Nothing needs to be done. */
|
||||
}
|
||||
|
@ -114,8 +114,8 @@ tui_line_from_reg_element_no (int element_no)
|
||||
}
|
||||
|
||||
|
||||
/* Answer the index of the first element in line_no. If line_no is past
|
||||
the register area (-1) is returned. */
|
||||
/* Answer the index of the first element in line_no. If line_no is
|
||||
past the register area (-1) is returned. */
|
||||
int
|
||||
tui_first_reg_element_no_inline (int line_no)
|
||||
{
|
||||
@ -162,7 +162,8 @@ tui_show_registers (struct reggroup *group)
|
||||
if (group == 0)
|
||||
group = general_reggroup;
|
||||
|
||||
/* Say that registers should be displayed, even if there is a problem. */
|
||||
/* Say that registers should be displayed, even if there is a
|
||||
problem. */
|
||||
display_info->display_regs = TRUE;
|
||||
|
||||
if (target_has_registers && target_has_stack && target_has_memory)
|
||||
@ -180,7 +181,7 @@ tui_show_registers (struct reggroup *group)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* Clear all notation of changed values */
|
||||
/* Clear all notation of changed values. */
|
||||
for (i = 0; i < display_info->regs_content_count; i++)
|
||||
{
|
||||
struct tui_gen_win_info *data_item_win;
|
||||
@ -198,8 +199,8 @@ tui_show_registers (struct reggroup *group)
|
||||
|
||||
|
||||
/* Set the data window to display the registers of the register group
|
||||
using the given frame. Values are refreshed only when refresh_values_only
|
||||
is TRUE. */
|
||||
using the given frame. Values are refreshed only when
|
||||
refresh_values_only is TRUE. */
|
||||
|
||||
static enum tui_status
|
||||
tui_show_register_group (struct gdbarch *gdbarch, struct reggroup *group,
|
||||
@ -257,7 +258,7 @@ tui_show_register_group (struct gdbarch *gdbarch, struct reggroup *group,
|
||||
display_info->regs_content_count = nr_regs;
|
||||
}
|
||||
|
||||
/* Now set the register names and values */
|
||||
/* Now set the register names and values. */
|
||||
pos = 0;
|
||||
for (regnum = 0;
|
||||
regnum < gdbarch_num_regs (current_gdbarch)
|
||||
@ -354,7 +355,8 @@ tui_display_registers_from (int start_element_no)
|
||||
(TUI_DATA_WIN->generic.width - 2) / display_info->regs_column_count;
|
||||
|
||||
/*
|
||||
** Now create each data "sub" window, and write the display into it.
|
||||
** Now create each data "sub" window, and write the display
|
||||
** into it.
|
||||
*/
|
||||
cur_y = 1;
|
||||
while (i < display_info->regs_content_count &&
|
||||
@ -367,7 +369,7 @@ tui_display_registers_from (int start_element_no)
|
||||
struct tui_gen_win_info *data_item_win;
|
||||
struct tui_data_element *data_element_ptr;
|
||||
|
||||
/* create the window if necessary */
|
||||
/* Create the window if necessary. */
|
||||
data_item_win = &display_info->regs_content[i]
|
||||
->which_element.data_window;
|
||||
data_element_ptr = &((struct tui_win_element *)
|
||||
@ -396,9 +398,9 @@ tui_display_registers_from (int start_element_no)
|
||||
/* Get the printable representation of the register
|
||||
and display it. */
|
||||
tui_display_register (data_element_ptr, data_item_win);
|
||||
i++; /* next register */
|
||||
i++; /* Next register. */
|
||||
}
|
||||
cur_y++; /* next row; */
|
||||
cur_y++; /* Next row. */
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -426,8 +428,9 @@ tui_display_reg_element_at_line (int start_element_no, int start_line_no)
|
||||
first_line_on_last_page = 0;
|
||||
/*
|
||||
** If there is no other data displayed except registers,
|
||||
** and the element_no causes us to scroll past the end of the
|
||||
** registers, adjust what element to really start the display at.
|
||||
** and the element_no causes us to scroll past the end of
|
||||
** the registers, adjust what element to really start the
|
||||
** display at.
|
||||
*/
|
||||
if (TUI_DATA_WIN->detail.data_display_info.data_content_count <= 0 &&
|
||||
start_line_no > first_line_on_last_page)
|
||||
@ -452,10 +455,10 @@ tui_display_registers_from_line (int line_no, int force_display)
|
||||
if (line_no < 0)
|
||||
line = 0;
|
||||
else if (force_display)
|
||||
{ /*
|
||||
** If we must display regs (force_display is true), then make
|
||||
** sure that we don't display off the end of the registers.
|
||||
*/
|
||||
{ /*
|
||||
** If we must display regs (force_display is true), then make
|
||||
** sure that we don't display off the end of the registers.
|
||||
*/
|
||||
if (line_no >= tui_last_regs_line_no ())
|
||||
{
|
||||
if ((line = tui_line_from_reg_element_no (
|
||||
@ -477,7 +480,7 @@ tui_display_registers_from_line (int line_no, int force_display)
|
||||
return line;
|
||||
}
|
||||
|
||||
return (-1); /* nothing was displayed */
|
||||
return (-1); /* Nothing was displayed. */
|
||||
}
|
||||
|
||||
|
||||
@ -522,8 +525,8 @@ tui_check_register_values (struct frame_info *frame)
|
||||
}
|
||||
}
|
||||
|
||||
/* Display a register in a window. If hilite is TRUE,
|
||||
then the value will be displayed in reverse video */
|
||||
/* Display a register in a window. If hilite is TRUE, then the value
|
||||
will be displayed in reverse video. */
|
||||
static void
|
||||
tui_display_register (struct tui_data_element *data,
|
||||
struct tui_gen_win_info *win_info)
|
||||
@ -702,9 +705,9 @@ tui_register_format (struct gdbarch *gdbarch, struct frame_info *frame,
|
||||
do_cleanups (cleanups);
|
||||
}
|
||||
|
||||
/* Get the register value from the given frame and format it for
|
||||
the display. When changep is set, check if the new register value
|
||||
has changed with respect to the previous call. */
|
||||
/* Get the register value from the given frame and format it for the
|
||||
display. When changep is set, check if the new register value has
|
||||
changed with respect to the previous call. */
|
||||
static enum tui_status
|
||||
tui_get_register (struct gdbarch *gdbarch, struct frame_info *frame,
|
||||
struct tui_data_element *data, int regnum, int *changedp)
|
||||
|
@ -25,7 +25,7 @@
|
||||
#ifndef TUI_REGS_H
|
||||
#define TUI_REGS_H
|
||||
|
||||
#include "tui/tui-data.h" /* For struct tui_register_display_type. */
|
||||
#include "tui/tui-data.h" /* For struct tui_register_display_type. */
|
||||
|
||||
extern void tui_check_register_values (struct frame_info *);
|
||||
extern void tui_show_registers (struct reggroup *group);
|
||||
|
@ -54,8 +54,8 @@ tui_set_source_content (struct symtab *s, int line_no, int noerror)
|
||||
if ((ret = tui_alloc_source_buffer (TUI_SRC_WIN)) == TUI_SUCCESS)
|
||||
{
|
||||
line_width = TUI_SRC_WIN->generic.width - 1;
|
||||
/* Take hilite (window border) into account, when calculating
|
||||
the number of lines */
|
||||
/* Take hilite (window border) into account, when
|
||||
calculating the number of lines. */
|
||||
nlines = (line_no + (TUI_SRC_WIN->generic.height - 2)) - line_no;
|
||||
desc = open_source_file (s);
|
||||
if (desc < 0)
|
||||
@ -99,8 +99,8 @@ tui_set_source_content (struct symtab *s, int line_no, int noerror)
|
||||
xfree (src->filename);
|
||||
src->filename = xstrdup (s->filename);
|
||||
|
||||
/* Determine the threshold for the length of the line
|
||||
and the offset to start the display. */
|
||||
/* Determine the threshold for the length of the
|
||||
line and the offset to start the display. */
|
||||
offset = src->horizontal_offset;
|
||||
threshold = (line_width - 1) + offset;
|
||||
stream = fdopen (desc, FOPEN_RT);
|
||||
@ -116,14 +116,14 @@ tui_set_source_content (struct symtab *s, int line_no, int noerror)
|
||||
struct tui_win_element *element = (struct tui_win_element *)
|
||||
TUI_SRC_WIN->generic.content[cur_line];
|
||||
|
||||
/* get the first character in the line */
|
||||
/* Get the first character in the line. */
|
||||
c = fgetc (stream);
|
||||
|
||||
if (offset == 0)
|
||||
src_line = ((struct tui_win_element *)
|
||||
TUI_SRC_WIN->generic.content[
|
||||
cur_line])->which_element.source.line;
|
||||
/* Init the line with the line number */
|
||||
/* Init the line with the line number. */
|
||||
sprintf (src_line, "%-6d", cur_line_no);
|
||||
cur_len = strlen (src_line);
|
||||
i = cur_len -
|
||||
@ -136,8 +136,8 @@ tui_set_source_content (struct symtab *s, int line_no, int noerror)
|
||||
}
|
||||
src_line[cur_len] = (char) 0;
|
||||
|
||||
/* Set whether element is the execution point and
|
||||
whether there is a break point on it. */
|
||||
/* Set whether element is the execution point
|
||||
and whether there is a break point on it. */
|
||||
element->which_element.source.line_or_addr.loa =
|
||||
LOA_LINE;
|
||||
element->which_element.source.line_or_addr.u.line_no =
|
||||
@ -167,11 +167,11 @@ tui_set_source_content (struct symtab *s, int line_no, int noerror)
|
||||
src_line[i] = '?';
|
||||
}
|
||||
else
|
||||
{ /* Store the charcter in the line
|
||||
buffer. If it is a tab, then
|
||||
translate to the correct number of
|
||||
chars so we don't overwrite our
|
||||
buffer. */
|
||||
{ /* Store the charcter in the
|
||||
line buffer. If it is a tab,
|
||||
then translate to the correct
|
||||
number of chars so we don't
|
||||
overwrite our buffer. */
|
||||
if (c == '\t')
|
||||
{
|
||||
int j, max_tab_len = tui_default_tab_len ();
|
||||
@ -190,8 +190,8 @@ tui_set_source_content (struct symtab *s, int line_no, int noerror)
|
||||
src_line[i + 1] = 0;
|
||||
}
|
||||
else
|
||||
{ /* If we have not reached EOL, then eat
|
||||
chars until we do */
|
||||
{ /* If we have not reached EOL, then
|
||||
eat chars until we do. */
|
||||
while (c != EOF && c != '\n' && c != '\r')
|
||||
c = fgetc (stream);
|
||||
/* Handle non-'\n' end-of-line. */
|
||||
@ -207,7 +207,8 @@ tui_set_source_content (struct symtab *s, int line_no, int noerror)
|
||||
while (c != EOF && c != '\n' && c != '\r' &&
|
||||
i < threshold && (c = fgetc (stream)));
|
||||
}
|
||||
/* Now copy the line taking the offset into account */
|
||||
/* Now copy the line taking the offset into
|
||||
account. */
|
||||
if (strlen (src_line) > offset)
|
||||
strcpy (((struct tui_win_element *) TUI_SRC_WIN->generic.content[
|
||||
cur_line])->which_element.source.line,
|
||||
@ -232,9 +233,9 @@ tui_set_source_content (struct symtab *s, int line_no, int noerror)
|
||||
}
|
||||
|
||||
|
||||
/* elz: this function sets the contents of the source window to empty
|
||||
/* elz: This function sets the contents of the source window to empty
|
||||
except for a line in the middle with a warning message about the
|
||||
source not being available. This function is called by
|
||||
source not being available. This function is called by
|
||||
tui_erase_source_contents(), which in turn is invoked when the
|
||||
source files cannot be accessed. */
|
||||
|
||||
@ -248,13 +249,13 @@ tui_set_source_content_nil (struct tui_win_info *win_info, char *warning_string)
|
||||
line_width = win_info->generic.width - 1;
|
||||
n_lines = win_info->generic.height - 2;
|
||||
|
||||
/* set to empty each line in the window, except for the one
|
||||
which contains the message */
|
||||
/* Set to empty each line in the window, except for the one which
|
||||
contains the message. */
|
||||
while (curr_line < win_info->generic.content_size)
|
||||
{
|
||||
/* set the information related to each displayed line
|
||||
to null: i.e. the line number is 0, there is no bp,
|
||||
it is not where the program is stopped */
|
||||
/* Set the information related to each displayed line to null:
|
||||
i.e. the line number is 0, there is no bp, it is not where
|
||||
the program is stopped. */
|
||||
|
||||
struct tui_win_element *element =
|
||||
(struct tui_win_element *) win_info->generic.content[curr_line];
|
||||
@ -263,14 +264,15 @@ tui_set_source_content_nil (struct tui_win_info *win_info, char *warning_string)
|
||||
element->which_element.source.is_exec_point = FALSE;
|
||||
element->which_element.source.has_break = FALSE;
|
||||
|
||||
/* set the contents of the line to blank */
|
||||
/* Set the contents of the line to blank. */
|
||||
element->which_element.source.line[0] = (char) 0;
|
||||
|
||||
/* if the current line is in the middle of the screen, then we
|
||||
/* If the current line is in the middle of the screen, then we
|
||||
want to display the 'no source available' message in it.
|
||||
Note: the 'weird' arithmetic with the line width and height
|
||||
comes from the function tui_erase_source_content(). We need
|
||||
to keep the screen and the window's actual contents in synch. */
|
||||
comes from the function tui_erase_source_content(). We need
|
||||
to keep the screen and the window's actual contents in
|
||||
synch. */
|
||||
|
||||
if (curr_line == (n_lines / 2 + 1))
|
||||
{
|
||||
@ -348,8 +350,8 @@ tui_vertical_source_scroll (enum tui_scroll_direction scroll_direction,
|
||||
l.u.line_no = content[0]->which_element.source.line_or_addr.u.line_no
|
||||
+ num_to_scroll;
|
||||
if (l.u.line_no > s->nlines)
|
||||
/*line = s->nlines - win_info->generic.content_size + 1; */
|
||||
/*elz: fix for dts 23398 */
|
||||
/* line = s->nlines - win_info->generic.content_size + 1; */
|
||||
/* elz: fix for dts 23398. */
|
||||
l.u.line_no = content[0]->which_element.source.line_or_addr.u.line_no;
|
||||
}
|
||||
else
|
||||
|
@ -56,9 +56,9 @@ static void tui_set_locator_info (const char *filename, const char *procname,
|
||||
static void tui_update_command (char *, int);
|
||||
|
||||
|
||||
/* Create the status line to display as much information as we
|
||||
can on this single line: target name, process number, current
|
||||
function, current line, current PC, SingleKey mode. */
|
||||
/* Create the status line to display as much information as we can on
|
||||
this single line: target name, process number, current function,
|
||||
current line, current PC, SingleKey mode. */
|
||||
static char*
|
||||
tui_make_status_line (struct tui_locator_element *loc)
|
||||
{
|
||||
@ -145,13 +145,13 @@ tui_make_status_line (struct tui_locator_element *loc)
|
||||
}
|
||||
}
|
||||
|
||||
/* Now convert elements to string form */
|
||||
/* Now convert elements to string form. */
|
||||
pname = loc->proc_name;
|
||||
|
||||
/* Now create the locator line from the string version
|
||||
of the elements. We could use sprintf() here but
|
||||
that wouldn't ensure that we don't overrun the size
|
||||
of the allocated buffer. strcat_to_buf() will. */
|
||||
/* Now create the locator line from the string version of the
|
||||
elements. We could use sprintf() here but that wouldn't ensure
|
||||
that we don't overrun the size of the allocated buffer.
|
||||
strcat_to_buf() will. */
|
||||
*string = (char) 0;
|
||||
|
||||
if (target_width > 0)
|
||||
@ -174,7 +174,7 @@ tui_make_status_line (struct tui_locator_element *loc)
|
||||
strcat_to_buf (string, status_size, " ");
|
||||
}
|
||||
|
||||
/* procedure/class name */
|
||||
/* Procedure/class name. */
|
||||
if (proc_width > 0)
|
||||
{
|
||||
if (strlen (pname) > proc_width)
|
||||
@ -207,9 +207,9 @@ tui_make_status_line (struct tui_locator_element *loc)
|
||||
return string;
|
||||
}
|
||||
|
||||
/* Get a printable name for the function at the address.
|
||||
The symbol name is demangled if demangling is turned on.
|
||||
Returns a pointer to a static area holding the result. */
|
||||
/* Get a printable name for the function at the address. The symbol
|
||||
name is demangled if demangling is turned on. Returns a pointer to
|
||||
a static area holding the result. */
|
||||
static char*
|
||||
tui_get_function_from_frame (struct frame_info *fi)
|
||||
{
|
||||
@ -220,9 +220,9 @@ tui_get_function_from_frame (struct frame_info *fi)
|
||||
print_address_symbolic (get_frame_pc (fi), stream, demangle, "");
|
||||
p = tui_file_get_strbuf (stream);
|
||||
|
||||
/* Use simple heuristics to isolate the function name. The symbol can
|
||||
be demangled and we can have function parameters. Remove them because
|
||||
the status line is too short to display them. */
|
||||
/* Use simple heuristics to isolate the function name. The symbol
|
||||
can be demangled and we can have function parameters. Remove
|
||||
them because the status line is too short to display them. */
|
||||
if (*p == '<')
|
||||
p++;
|
||||
strncpy (name, p, sizeof (name));
|
||||
|
@ -227,8 +227,8 @@ show_tui_border_kind (struct ui_file *file, int from_tty,
|
||||
}
|
||||
|
||||
|
||||
/* Tui internal configuration variables. These variables are
|
||||
updated by tui_update_variables to reflect the tui configuration
|
||||
/* Tui internal configuration variables. These variables are updated
|
||||
by tui_update_variables to reflect the tui configuration
|
||||
variables. */
|
||||
chtype tui_border_vline;
|
||||
chtype tui_border_hline;
|
||||
@ -349,11 +349,11 @@ _initialize_tui_win (void)
|
||||
add_prefix_cmd ("tui", class_tui, set_tui_cmd,
|
||||
_("TUI configuration variables"),
|
||||
&tui_setlist, "set tui ",
|
||||
0/*allow-unknown*/, &setlist);
|
||||
0 /* allow-unknown */, &setlist);
|
||||
add_prefix_cmd ("tui", class_tui, show_tui_cmd,
|
||||
_("TUI configuration variables"),
|
||||
&tui_showlist, "show tui ",
|
||||
0/*allow-unknown*/, &showlist);
|
||||
0 /* allow-unknown */, &showlist);
|
||||
|
||||
add_com ("refresh", class_tui, tui_refresh_all_command,
|
||||
_("Refresh the terminal display.\n"));
|
||||
@ -461,7 +461,7 @@ tui_update_gdb_sizes (void)
|
||||
}
|
||||
|
||||
|
||||
/* Set the logical focus to win_info. */
|
||||
/* Set the logical focus to win_info. */
|
||||
void
|
||||
tui_set_win_focus_to (struct tui_win_info *win_info)
|
||||
{
|
||||
@ -570,7 +570,7 @@ tui_scroll_right (struct tui_win_info *win_to_scroll, int num_to_scroll)
|
||||
}
|
||||
|
||||
|
||||
/* Scroll a window. Arguments are passed through a va_list. */
|
||||
/* Scroll a window. Arguments are passed through a va_list. */
|
||||
void
|
||||
tui_scroll (enum tui_scroll_direction direction,
|
||||
struct tui_win_info *win_to_scroll,
|
||||
@ -652,7 +652,7 @@ tui_resize_all (void)
|
||||
#ifdef HAVE_RESIZE_TERM
|
||||
resize_term (screenheight, screenwidth);
|
||||
#endif
|
||||
/* turn keypad off while we resize */
|
||||
/* Turn keypad off while we resize. */
|
||||
if (win_with_focus != TUI_CMD_WIN)
|
||||
keypad (TUI_CMD_WIN->generic.handle, FALSE);
|
||||
tui_update_gdb_sizes ();
|
||||
@ -670,7 +670,7 @@ tui_resize_all (void)
|
||||
else
|
||||
cmd_split_diff++;
|
||||
}
|
||||
/* now adjust each window */
|
||||
/* Now adjust each window. */
|
||||
clear ();
|
||||
refresh ();
|
||||
switch (cur_layout)
|
||||
@ -680,7 +680,7 @@ tui_resize_all (void)
|
||||
first_win = (struct tui_win_info *) (tui_source_windows ())->list[0];
|
||||
first_win->generic.width += width_diff;
|
||||
locator->width += width_diff;
|
||||
/* check for invalid heights */
|
||||
/* Check for invalid heights. */
|
||||
if (height_diff == 0)
|
||||
new_height = first_win->generic.height;
|
||||
else if ((first_win->generic.height + split_diff) >=
|
||||
@ -716,8 +716,8 @@ tui_resize_all (void)
|
||||
second_win = (struct tui_win_info *) (tui_source_windows ())->list[0];
|
||||
second_win->generic.width += width_diff;
|
||||
}
|
||||
/* Change the first window's height/width */
|
||||
/* check for invalid heights */
|
||||
/* Change the first window's height/width. */
|
||||
/* Check for invalid heights. */
|
||||
if (height_diff == 0)
|
||||
new_height = first_win->generic.height;
|
||||
else if ((first_win->generic.height +
|
||||
@ -732,8 +732,8 @@ tui_resize_all (void)
|
||||
|
||||
locator->width += width_diff;
|
||||
|
||||
/* Change the second window's height/width */
|
||||
/* check for invalid heights */
|
||||
/* Change the second window's height/width. */
|
||||
/* Check for invalid heights. */
|
||||
if (height_diff == 0)
|
||||
new_height = second_win->generic.height;
|
||||
else if ((first_win->generic.height +
|
||||
@ -753,7 +753,7 @@ tui_resize_all (void)
|
||||
second_win->generic.origin.y = first_win->generic.height - 1;
|
||||
make_invisible_and_set_new_height (second_win, new_height);
|
||||
|
||||
/* Change the command window's height/width */
|
||||
/* Change the command window's height/width. */
|
||||
TUI_CMD_WIN->generic.origin.y = locator->origin.y + 1;
|
||||
make_invisible_and_set_new_height (
|
||||
TUI_CMD_WIN, TUI_CMD_WIN->generic.height + cmd_split_diff);
|
||||
@ -767,8 +767,8 @@ tui_resize_all (void)
|
||||
break;
|
||||
}
|
||||
/*
|
||||
** Now remove all invisible windows, and their content so that they get
|
||||
** created again when called for with the new size
|
||||
** Now remove all invisible windows, and their content so that
|
||||
** they get created again when called for with the new size.
|
||||
*/
|
||||
for (win_type = SRC_WIN; (win_type < MAX_MAJOR_WINDOWS); win_type++)
|
||||
{
|
||||
@ -780,7 +780,8 @@ tui_resize_all (void)
|
||||
}
|
||||
}
|
||||
tui_set_win_resized_to (TRUE);
|
||||
/* turn keypad back on, unless focus is in the command window */
|
||||
/* Turn keypad back on, unless focus is in the command
|
||||
window. */
|
||||
if (win_with_focus != TUI_CMD_WIN)
|
||||
keypad (TUI_CMD_WIN->generic.handle, TRUE);
|
||||
}
|
||||
@ -944,7 +945,7 @@ tui_refresh_all_command (char *arg, int from_tty)
|
||||
}
|
||||
|
||||
|
||||
/* Set the height of the specified window. */
|
||||
/* Set the height of the specified window. */
|
||||
static void
|
||||
tui_set_tab_width_command (char *arg, int from_tty)
|
||||
{
|
||||
@ -963,7 +964,7 @@ tui_set_tab_width_command (char *arg, int from_tty)
|
||||
}
|
||||
|
||||
|
||||
/* Set the height of the specified window. */
|
||||
/* Set the height of the specified window. */
|
||||
static void
|
||||
tui_set_win_height (char *arg, int from_tty)
|
||||
{
|
||||
@ -984,7 +985,7 @@ tui_set_win_height (char *arg, int from_tty)
|
||||
*buf_ptr = (char) 0;
|
||||
|
||||
/*
|
||||
** Validate the window name
|
||||
** Validate the window name.
|
||||
*/
|
||||
for (i = 0; i < strlen (wname); i++)
|
||||
wname[i] = toupper (wname[i]);
|
||||
@ -995,7 +996,7 @@ tui_set_win_height (char *arg, int from_tty)
|
||||
The window name specified must be valid and visible.\n"));
|
||||
else
|
||||
{
|
||||
/* Process the size */
|
||||
/* Process the size. */
|
||||
while (*(++buf_ptr) == ' ')
|
||||
;
|
||||
|
||||
@ -1023,7 +1024,7 @@ The window name specified must be valid and visible.\n"));
|
||||
new_height = win_info->generic.height + input_no;
|
||||
/*
|
||||
** Now change the window's height, and adjust all
|
||||
** other windows around it
|
||||
** other windows around it.
|
||||
*/
|
||||
if (tui_adjust_win_heights (win_info,
|
||||
new_height) == TUI_FAILURE)
|
||||
@ -1048,7 +1049,7 @@ The window name specified must be valid and visible.\n"));
|
||||
printf_filtered (WIN_HEIGHT_USAGE);
|
||||
}
|
||||
|
||||
/* Set the height of the specified window, with va_list. */
|
||||
/* Set the height of the specified window, with va_list. */
|
||||
static void
|
||||
tui_set_win_height_command (char *arg, int from_tty)
|
||||
{
|
||||
@ -1059,7 +1060,8 @@ tui_set_win_height_command (char *arg, int from_tty)
|
||||
|
||||
|
||||
/* XDB Compatibility command for setting the window height. This will
|
||||
increase or decrease the command window by the specified amount. */
|
||||
increase or decrease the command window by the specified
|
||||
amount. */
|
||||
static void
|
||||
tui_xdb_set_win_height (char *arg, int from_tty)
|
||||
{
|
||||
@ -1070,7 +1072,7 @@ tui_xdb_set_win_height (char *arg, int from_tty)
|
||||
int input_no = atoi (arg);
|
||||
|
||||
if (input_no > 0)
|
||||
{ /* Add 1 for the locator */
|
||||
{ /* Add 1 for the locator. */
|
||||
int new_height = tui_term_height () - (input_no + 1);
|
||||
|
||||
if (!new_height_ok (tui_win_list[CMD_WIN], new_height) ||
|
||||
@ -1151,11 +1153,11 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info, int new_height)
|
||||
second_win = (tui_source_windows ())->list[0];
|
||||
}
|
||||
if (primary_win_info == TUI_CMD_WIN)
|
||||
{ /*
|
||||
** Split the change in height accross the 1st & 2nd windows
|
||||
** adjusting them as well.
|
||||
*/
|
||||
int first_split_diff = diff / 2; /* subtract the locator */
|
||||
{ /*
|
||||
** Split the change in height accross the 1st & 2nd
|
||||
** windows, adjusting them as well.
|
||||
*/
|
||||
int first_split_diff = diff / 2; /* Subtract the locator. */
|
||||
int second_split_diff = first_split_diff;
|
||||
|
||||
if (diff % 2)
|
||||
@ -1174,7 +1176,8 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info, int new_height)
|
||||
second_split_diff++;
|
||||
}
|
||||
}
|
||||
/* make sure that the minimum hieghts are honored */
|
||||
/* Make sure that the minimum hieghts are
|
||||
honored. */
|
||||
while ((first_win->generic.height + first_split_diff) < 3)
|
||||
{
|
||||
first_split_diff++;
|
||||
@ -1197,10 +1200,10 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info, int new_height)
|
||||
else
|
||||
{
|
||||
if ((TUI_CMD_WIN->generic.height + diff) < 1)
|
||||
{ /*
|
||||
** If there is no way to increase the command window
|
||||
** take real estate from the 1st or 2nd window.
|
||||
*/
|
||||
{ /*
|
||||
** If there is no way to increase the command window
|
||||
** take real estate from the 1st or 2nd window.
|
||||
*/
|
||||
if ((TUI_CMD_WIN->generic.height + diff) < 1)
|
||||
{
|
||||
int i;
|
||||
@ -1247,7 +1250,8 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info, int new_height)
|
||||
|
||||
|
||||
/* Function make the target window (and auxillary windows associated
|
||||
with the targer) invisible, and set the new height and location. */
|
||||
with the targer) invisible, and set the new height and
|
||||
location. */
|
||||
static void
|
||||
make_invisible_and_set_new_height (struct tui_win_info *win_info, int height)
|
||||
{
|
||||
@ -1263,7 +1267,7 @@ make_invisible_and_set_new_height (struct tui_win_info *win_info, int height)
|
||||
if (win_info != TUI_CMD_WIN)
|
||||
win_info->generic.viewport_height--;
|
||||
|
||||
/* Now deal with the auxillary windows associated with win_info */
|
||||
/* Now deal with the auxillary windows associated with win_info. */
|
||||
switch (win_info->generic.type)
|
||||
{
|
||||
case SRC_WIN:
|
||||
@ -1287,7 +1291,7 @@ make_invisible_and_set_new_height (struct tui_win_info *win_info, int height)
|
||||
}
|
||||
break;
|
||||
case DATA_WIN:
|
||||
/* delete all data item windows */
|
||||
/* Delete all data item windows. */
|
||||
for (i = 0; i < win_info->generic.content_size; i++)
|
||||
{
|
||||
gen_win_info = (struct tui_gen_win_info *) & ((struct tui_win_element *)
|
||||
@ -1389,7 +1393,7 @@ new_height_ok (struct tui_win_info *primary_win_info, int new_height)
|
||||
new_height <= (tui_term_height () - 2) &&
|
||||
new_height >= MIN_WIN_HEIGHT));
|
||||
if (ok)
|
||||
{ /* check the total height */
|
||||
{ /* Check the total height. */
|
||||
struct tui_win_info *win_info;
|
||||
|
||||
if (primary_win_info == TUI_CMD_WIN)
|
||||
@ -1424,10 +1428,10 @@ new_height_ok (struct tui_win_info *primary_win_info, int new_height)
|
||||
*/
|
||||
total_height = cur_total_height =
|
||||
(first_win->generic.height + second_win->generic.height - 1)
|
||||
+ TUI_CMD_WIN->generic.height + 1 /*locator */ ;
|
||||
+ TUI_CMD_WIN->generic.height + 1; /* Locator. */
|
||||
if (primary_win_info == TUI_CMD_WIN)
|
||||
{
|
||||
/* locator included since first & second win share a line */
|
||||
/* Locator included since first & second win share a line. */
|
||||
ok = ((first_win->generic.height +
|
||||
second_win->generic.height + diff) >=
|
||||
(MIN_WIN_HEIGHT * 2) &&
|
||||
@ -1445,14 +1449,14 @@ new_height_ok (struct tui_win_info *primary_win_info, int new_height)
|
||||
/*
|
||||
** First see if we can increase/decrease the command
|
||||
** window. And make sure that the command window is
|
||||
** at least 1 line
|
||||
** at least 1 line.
|
||||
*/
|
||||
ok = ((TUI_CMD_WIN->generic.height + diff) > 0);
|
||||
if (!ok)
|
||||
{ /*
|
||||
** Looks like we have to increase/decrease one of
|
||||
** the other windows
|
||||
*/
|
||||
{ /*
|
||||
** Looks like we have to increase/decrease one of
|
||||
** the other windows.
|
||||
*/
|
||||
if (primary_win_info == first_win)
|
||||
ok = (second_win->generic.height + diff) >= min_height;
|
||||
else
|
||||
@ -1493,13 +1497,13 @@ parse_scrolling_args (char *arg, struct tui_win_info **win_to_scroll,
|
||||
|
||||
/*
|
||||
** First set up the default window to scroll, in case there is no
|
||||
** window name arg
|
||||
** window name arg.
|
||||
*/
|
||||
if (arg != (char *) NULL)
|
||||
{
|
||||
char *buf, *buf_ptr;
|
||||
|
||||
/* process the number of lines to scroll */
|
||||
/* Process the number of lines to scroll. */
|
||||
buf = buf_ptr = xstrdup (arg);
|
||||
if (isdigit (*buf_ptr))
|
||||
{
|
||||
@ -1518,7 +1522,7 @@ parse_scrolling_args (char *arg, struct tui_win_info **win_to_scroll,
|
||||
*num_to_scroll = atoi (num_str);
|
||||
}
|
||||
|
||||
/* process the window name if one is specified */
|
||||
/* Process the window name if one is specified. */
|
||||
if (buf_ptr != (char *) NULL)
|
||||
{
|
||||
char *wname;
|
||||
@ -1533,7 +1537,7 @@ parse_scrolling_args (char *arg, struct tui_win_info **win_to_scroll,
|
||||
else
|
||||
wname = "?";
|
||||
|
||||
/* Validate the window name */
|
||||
/* Validate the window name. */
|
||||
for (i = 0; i < strlen (wname); i++)
|
||||
wname[i] = toupper (wname[i]);
|
||||
*win_to_scroll = tui_partial_win_by_name (wname);
|
||||
|
@ -74,12 +74,12 @@ tui_first_data_element_no_in_line (int line_no)
|
||||
|
||||
/*
|
||||
** First see if there is a register on line_no, and if so, set the
|
||||
** first element number
|
||||
** first element number.
|
||||
*/
|
||||
if ((first_element_no = tui_first_reg_element_no_inline (line_no)) == -1)
|
||||
{ /*
|
||||
** Looking at the general data, the 1st element on line_no
|
||||
*/
|
||||
{ /*
|
||||
** Looking at the general data, the 1st element on line_no.
|
||||
*/
|
||||
}
|
||||
|
||||
return first_element_no;
|
||||
@ -142,7 +142,7 @@ tui_display_all_data (void)
|
||||
tui_check_and_display_highlight_if_needed (TUI_DATA_WIN);
|
||||
tui_display_registers_from (0);
|
||||
/*
|
||||
** Then display the other data
|
||||
** Then display the other data.
|
||||
*/
|
||||
if (TUI_DATA_WIN->detail.data_display_info.data_content !=
|
||||
(tui_win_content) NULL &&
|
||||
@ -165,7 +165,8 @@ tui_display_data_from_line (int line_no)
|
||||
|
||||
tui_check_and_display_highlight_if_needed (TUI_DATA_WIN);
|
||||
|
||||
/* there is no general data, force regs to display (if there are any) */
|
||||
/* There is no general data, force regs to display (if there are
|
||||
any). */
|
||||
if (TUI_DATA_WIN->detail.data_display_info.data_content_count <= 0)
|
||||
tui_display_registers_from_line (_line_no, TRUE);
|
||||
else
|
||||
@ -174,30 +175,30 @@ tui_display_data_from_line (int line_no)
|
||||
int regs_last_line = tui_last_regs_line_no ();
|
||||
|
||||
|
||||
/* display regs if we can */
|
||||
/* Display regs if we can. */
|
||||
if (tui_display_registers_from_line (_line_no, FALSE) < 0)
|
||||
{ /*
|
||||
** _line_no is past the regs display, so calc where the
|
||||
** start data element is
|
||||
*/
|
||||
{ /*
|
||||
** _line_no is past the regs display, so calc where the
|
||||
** start data element is.
|
||||
*/
|
||||
if (regs_last_line < _line_no)
|
||||
{ /* figure out how many lines each element is to obtain
|
||||
the start element_no */
|
||||
{ /* Figure out how many lines each element is to obtain
|
||||
the start element_no. */
|
||||
}
|
||||
}
|
||||
else
|
||||
{ /*
|
||||
** calculate the starting element of the data display, given
|
||||
** regs_last_line and how many lines each element is, up to
|
||||
** _line_no
|
||||
*/
|
||||
{ /*
|
||||
** Calculate the starting element of the data display,
|
||||
** given regs_last_line and how many lines each element
|
||||
** is, up to _line_no.
|
||||
*/
|
||||
}
|
||||
/* Now display the data , starting at element_no */
|
||||
/* Now display the data , starting at element_no. */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Display data starting at element element_no. */
|
||||
/* Display data starting at element element_no. */
|
||||
void
|
||||
tui_display_data_from (int element_no, int reuse_windows)
|
||||
{
|
||||
@ -206,7 +207,7 @@ tui_display_data_from (int element_no, int reuse_windows)
|
||||
if (element_no < TUI_DATA_WIN->detail.data_display_info.regs_content_count)
|
||||
first_line = tui_line_from_reg_element_no (element_no);
|
||||
else
|
||||
{ /* calculate the first_line from the element number */
|
||||
{ /* Calculate the first_line from the element number. */
|
||||
}
|
||||
|
||||
if (first_line >= 0)
|
||||
@ -228,19 +229,20 @@ tui_refresh_data_win (void)
|
||||
{
|
||||
int first_element = tui_first_data_item_displayed ();
|
||||
|
||||
if (first_element >= 0) /* re-use existing windows */
|
||||
if (first_element >= 0) /* Re-use existing windows. */
|
||||
tui_display_data_from (first_element, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Function to check the data values and hilite any that have changed. */
|
||||
/* Function to check the data values and hilite any that have
|
||||
changed. */
|
||||
void
|
||||
tui_check_data_values (struct frame_info *frame)
|
||||
{
|
||||
tui_check_register_values (frame);
|
||||
|
||||
/* Now check any other data values that there are */
|
||||
/* Now check any other data values that there are. */
|
||||
if (TUI_DATA_WIN != NULL && TUI_DATA_WIN->generic.is_visible)
|
||||
{
|
||||
int i;
|
||||
@ -268,7 +270,7 @@ tui_check_data_values (struct frame_info *frame)
|
||||
}
|
||||
|
||||
|
||||
/* Scroll the data window vertically forward or backward. */
|
||||
/* Scroll the data window vertically forward or backward. */
|
||||
void
|
||||
tui_vertical_data_scroll (enum tui_scroll_direction scroll_direction, int num_to_scroll)
|
||||
{
|
||||
@ -279,9 +281,8 @@ tui_vertical_data_scroll (enum tui_scroll_direction scroll_direction, int num_to
|
||||
if (first_element_no < TUI_DATA_WIN->detail.data_display_info.regs_content_count)
|
||||
first_line = tui_line_from_reg_element_no (first_element_no);
|
||||
else
|
||||
{ /* calculate the first line from the element number which is in
|
||||
** the general data content
|
||||
*/
|
||||
{ /* Calculate the first line from the element number which is in
|
||||
the general data content. */
|
||||
}
|
||||
|
||||
if (first_line >= 0)
|
||||
|
@ -34,7 +34,7 @@
|
||||
** PUBLIC FUNCTIONS
|
||||
***********************/
|
||||
|
||||
/* Refresh the window. */
|
||||
/* Refresh the window. */
|
||||
void
|
||||
tui_refresh_win (struct tui_gen_win_info *win_info)
|
||||
{
|
||||
@ -55,7 +55,7 @@ tui_refresh_win (struct tui_gen_win_info *win_info)
|
||||
}
|
||||
else if (win_info->type == CMD_WIN)
|
||||
{
|
||||
/* Do nothing */
|
||||
/* Do nothing. */
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -67,7 +67,7 @@ tui_refresh_win (struct tui_gen_win_info *win_info)
|
||||
}
|
||||
|
||||
|
||||
/* Function to delete the curses window, checking for NULL. */
|
||||
/* Function to delete the curses window, checking for NULL. */
|
||||
void
|
||||
tui_delete_win (WINDOW *window)
|
||||
{
|
||||
@ -175,7 +175,7 @@ tui_make_window (struct tui_gen_win_info *win_info, int box_it)
|
||||
static void
|
||||
make_visible (struct tui_gen_win_info *win_info, int visible)
|
||||
{
|
||||
/* Don't tear down/recreate command window */
|
||||
/* Don't tear down/recreate command window. */
|
||||
if (win_info->type == CMD_WIN)
|
||||
return;
|
||||
|
||||
@ -213,7 +213,8 @@ tui_make_invisible (struct tui_gen_win_info *win_info)
|
||||
}
|
||||
|
||||
|
||||
/* Makes all windows invisible (except the command and locator windows). */
|
||||
/* Makes all windows invisible (except the command and locator
|
||||
windows). */
|
||||
static void
|
||||
make_all_visible (int visible)
|
||||
{
|
||||
|
@ -114,7 +114,7 @@ tui_update_source_window_as_is (struct tui_win_info *win_info, struct symtab *s,
|
||||
set_current_source_symtab_and_line (&sal);
|
||||
/*
|
||||
** If the focus was in the asm win, put it in the src
|
||||
** win if we don't have a split layout
|
||||
** win if we don't have a split layout.
|
||||
*/
|
||||
if (tui_win_with_focus () == TUI_DISASM_WIN &&
|
||||
tui_current_layout () != SRC_DISASSEM_COMMAND)
|
||||
@ -245,10 +245,10 @@ tui_erase_source_content (struct tui_win_info *win_info, int display_prompt)
|
||||
x_pos,
|
||||
no_src_str);
|
||||
|
||||
/* elz: added this function call to set the real contents of
|
||||
the window to what is on the screen, so that later calls
|
||||
to refresh, do display
|
||||
the correct stuff, and not the old image */
|
||||
/* elz: Added this function call to set the real contents of
|
||||
the window to what is on the screen, so that later calls
|
||||
to refresh, do display the correct stuff, and not the old
|
||||
image. */
|
||||
|
||||
tui_set_source_content_nil (win_info, no_src_str);
|
||||
}
|
||||
@ -337,7 +337,9 @@ tui_horizontal_source_scroll (struct tui_win_info *win_info,
|
||||
}
|
||||
|
||||
|
||||
/* Set or clear the has_break flag in the line whose line is line_no. */
|
||||
/* Set or clear the has_break flag in the line whose line is
|
||||
line_no. */
|
||||
|
||||
void
|
||||
tui_set_is_exec_point_at (struct tui_line_or_address l, struct tui_win_info *win_info)
|
||||
{
|
||||
@ -394,10 +396,12 @@ tui_update_all_breakpoint_info (void)
|
||||
}
|
||||
|
||||
|
||||
/* Scan the source window and the breakpoints to update the
|
||||
has_break information for each line.
|
||||
Returns 1 if something changed and the execution window
|
||||
must be refreshed. */
|
||||
/* Scan the source window and the breakpoints to update the has_break
|
||||
information for each line.
|
||||
|
||||
Returns 1 if something changed and the execution window must be
|
||||
refreshed. */
|
||||
|
||||
int
|
||||
tui_update_breakpoint_info (struct tui_win_info *win, int current_only)
|
||||
{
|
||||
@ -570,7 +574,7 @@ tui_alloc_source_buffer (struct tui_win_info *win_info)
|
||||
char *src_line_buf;
|
||||
int i, line_width, max_lines;
|
||||
|
||||
max_lines = win_info->generic.height; /* less the highlight box */
|
||||
max_lines = win_info->generic.height; /* Less the highlight box. */
|
||||
line_width = win_info->generic.width - 1;
|
||||
/*
|
||||
* Allocate the buffer for the source lines. Do this only once
|
||||
@ -587,7 +591,7 @@ tui_alloc_source_buffer (struct tui_win_info *win_info)
|
||||
gdb_stderr);
|
||||
return TUI_FAILURE;
|
||||
}
|
||||
/* allocate the content list */
|
||||
/* Allocate the content list. */
|
||||
if ((win_info->generic.content =
|
||||
(void **) tui_alloc_content (max_lines, SRC_WIN)) == NULL)
|
||||
{
|
||||
|
@ -68,6 +68,6 @@ extern int tui_addr_is_displayed (CORE_ADDR, struct tui_win_info *, int);
|
||||
|
||||
|
||||
/* Constant definitions. */
|
||||
#define SCROLL_THRESHOLD 2 /* threshold for lazy scroll */
|
||||
#define SCROLL_THRESHOLD 2 /* Threshold for lazy scroll. */
|
||||
|
||||
#endif
|
||||
|
@ -70,7 +70,8 @@ struct tui_char_command
|
||||
const char *cmd;
|
||||
};
|
||||
|
||||
/* Key mapping to gdb commands when the TUI is using the single key mode. */
|
||||
/* Key mapping to gdb commands when the TUI is using the single key
|
||||
mode. */
|
||||
static const struct tui_char_command tui_commands[] = {
|
||||
{ 'c', "continue" },
|
||||
{ 'd', "down" },
|
||||
@ -103,19 +104,22 @@ tui_rl_switch_mode (int notused1, int notused2)
|
||||
tui_enable ();
|
||||
}
|
||||
|
||||
/* Clear the readline in case switching occurred in middle of something. */
|
||||
/* Clear the readline in case switching occurred in middle of
|
||||
something. */
|
||||
if (rl_end)
|
||||
rl_kill_text (0, rl_end);
|
||||
|
||||
/* Since we left the curses mode, the terminal mode is restored to
|
||||
some previous state. That state may not be suitable for readline
|
||||
to work correctly (it may be restored in line mode). We force an
|
||||
exit of the current readline so that readline is re-entered and it
|
||||
will be able to setup the terminal for its needs. By re-entering
|
||||
in readline, we also redisplay its prompt in the non-curses mode. */
|
||||
exit of the current readline so that readline is re-entered and
|
||||
it will be able to setup the terminal for its needs. By
|
||||
re-entering in readline, we also redisplay its prompt in the
|
||||
non-curses mode. */
|
||||
rl_newline (1, '\n');
|
||||
|
||||
/* Make sure the \n we are returning does not repeat the last command. */
|
||||
/* Make sure the \n we are returning does not repeat the last
|
||||
command. */
|
||||
dont_repeat ();
|
||||
return 0;
|
||||
}
|
||||
@ -123,13 +127,13 @@ tui_rl_switch_mode (int notused1, int notused2)
|
||||
/* TUI readline command.
|
||||
Change the TUI layout to show a next layout.
|
||||
This function is bound to CTRL-X 2. It is intended to provide
|
||||
a functionality close to the Emacs split-window command. We always
|
||||
show two windows (src+asm), (src+regs) or (asm+regs). */
|
||||
a functionality close to the Emacs split-window command. We
|
||||
always show two windows (src+asm), (src+regs) or (asm+regs). */
|
||||
static int
|
||||
tui_rl_change_windows (int notused1, int notused2)
|
||||
{
|
||||
if (!tui_active)
|
||||
tui_rl_switch_mode (0/*notused*/, 0/*notused*/);
|
||||
tui_rl_switch_mode (0 /* notused */, 0 /* notused */);
|
||||
|
||||
if (tui_active)
|
||||
{
|
||||
@ -138,8 +142,8 @@ tui_rl_change_windows (int notused1, int notused2)
|
||||
|
||||
new_layout = tui_current_layout ();
|
||||
|
||||
/* Select a new layout to have a rolling layout behavior
|
||||
with always two windows (except when undefined). */
|
||||
/* Select a new layout to have a rolling layout behavior with
|
||||
always two windows (except when undefined). */
|
||||
switch (new_layout)
|
||||
{
|
||||
case SRC_COMMAND:
|
||||
@ -177,7 +181,7 @@ static int
|
||||
tui_rl_delete_other_windows (int notused1, int notused2)
|
||||
{
|
||||
if (!tui_active)
|
||||
tui_rl_switch_mode (0/*notused*/, 0/*notused*/);
|
||||
tui_rl_switch_mode (0 /* notused */, 0 /* notused */);
|
||||
|
||||
if (tui_active)
|
||||
{
|
||||
@ -214,7 +218,7 @@ tui_rl_other_window (int count, int key)
|
||||
struct tui_win_info *win_info;
|
||||
|
||||
if (!tui_active)
|
||||
tui_rl_switch_mode (0/*notused*/, 0/*notused*/);
|
||||
tui_rl_switch_mode (0 /* notused */, 0 /* notused */);
|
||||
|
||||
win_info = tui_next_win (tui_win_with_focus ());
|
||||
if (win_info)
|
||||
@ -239,8 +243,8 @@ tui_rl_command_key (int count, int key)
|
||||
{
|
||||
if (tui_commands[i].key == key)
|
||||
{
|
||||
/* Must save the command because it can be modified
|
||||
by execute_command. */
|
||||
/* Must save the command because it can be modified by
|
||||
execute_command. */
|
||||
char *cmd = alloca (strlen (tui_commands[i].cmd) + 1);
|
||||
strcpy (cmd, tui_commands[i].cmd);
|
||||
execute_command (cmd, TRUE);
|
||||
@ -267,7 +271,7 @@ static int
|
||||
tui_rl_next_keymap (int notused1, int notused2)
|
||||
{
|
||||
if (!tui_active)
|
||||
tui_rl_switch_mode (0/*notused*/, 0/*notused*/);
|
||||
tui_rl_switch_mode (0 /* notused */, 0 /* notused */);
|
||||
|
||||
tui_set_key_mode (tui_current_key_mode == TUI_COMMAND_MODE
|
||||
? TUI_SINGLE_KEY_MODE : TUI_COMMAND_MODE);
|
||||
@ -288,7 +292,8 @@ tui_rl_startup_hook (void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Change the TUI key mode by installing the appropriate readline keymap. */
|
||||
/* Change the TUI key mode by installing the appropriate readline
|
||||
keymap. */
|
||||
void
|
||||
tui_set_key_mode (enum tui_key_mode mode)
|
||||
{
|
||||
@ -375,7 +380,7 @@ tui_enable (void)
|
||||
|
||||
cbreak ();
|
||||
noecho ();
|
||||
/*timeout (1);*/
|
||||
/* timeout (1); */
|
||||
nodelay(w, FALSE);
|
||||
nl();
|
||||
keypad (w, TRUE);
|
||||
@ -465,7 +470,7 @@ strcat_to_buf (char *buf, int buflen, const char *item_to_add)
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* Solaris <sys/termios.h> defines CTRL. */
|
||||
/* Solaris <sys/termios.h> defines CTRL. */
|
||||
#ifndef CTRL
|
||||
#define CTRL(x) (x & ~0140)
|
||||
#endif
|
||||
@ -479,7 +484,7 @@ tui_reset (void)
|
||||
struct termio mode;
|
||||
|
||||
/*
|
||||
** reset the teletype mode bits to a sensible state.
|
||||
** Reset the teletype mode bits to a sensible state.
|
||||
** Copied tset.c
|
||||
*/
|
||||
#if defined (TIOCGETC)
|
||||
@ -507,7 +512,7 @@ tui_reset (void)
|
||||
tbuf.t_startc = CHK (tbuf.t_startc, CTRL ('Q'));
|
||||
tbuf.t_stopc = CHK (tbuf.t_stopc, CTRL ('S'));
|
||||
tbuf.t_eofc = CHK (tbuf.t_eofc, CTRL ('D'));
|
||||
/* brkc is left alone */
|
||||
/* brkc is left alone. */
|
||||
ioctl (FILEDES, TIOCSETC, &tbuf);
|
||||
#endif /* TIOCGETC */
|
||||
mode.sg_flags &= ~(RAW
|
||||
@ -525,7 +530,7 @@ void
|
||||
tui_show_source (const char *file, int line)
|
||||
{
|
||||
struct symtab_and_line cursal = get_current_source_symtab_and_line ();
|
||||
/* make sure that the source window is displayed */
|
||||
/* Make sure that the source window is displayed. */
|
||||
tui_add_win_to_layout (SRC_WIN);
|
||||
|
||||
tui_update_source_windows_with_line (cursal.symtab, line);
|
||||
|
@ -36,7 +36,7 @@ enum tui_status
|
||||
TUI_FAILURE
|
||||
};
|
||||
|
||||
/* Types of windows */
|
||||
/* Types of windows. */
|
||||
enum tui_win_type
|
||||
{
|
||||
SRC_WIN = 0,
|
||||
@ -80,13 +80,15 @@ enum tui_key_mode
|
||||
/* SingleKey mode with some keys bound to gdb commands. */
|
||||
TUI_SINGLE_KEY_MODE,
|
||||
|
||||
/* Read/edit one command and return to SingleKey after it's processed. */
|
||||
/* Read/edit one command and return to SingleKey after it's
|
||||
processed. */
|
||||
TUI_ONE_COMMAND_MODE
|
||||
};
|
||||
|
||||
extern enum tui_key_mode tui_current_key_mode;
|
||||
|
||||
/* Change the TUI key mode by installing the appropriate readline keymap. */
|
||||
/* Change the TUI key mode by installing the appropriate readline
|
||||
keymap. */
|
||||
extern void tui_set_key_mode (enum tui_key_mode mode);
|
||||
|
||||
extern int tui_active;
|
||||
|
Loading…
Reference in New Issue
Block a user