diff options
Diffstat (limited to 'gdb/tui/tui.c')
-rw-r--r-- | gdb/tui/tui.c | 128 |
1 files changed, 56 insertions, 72 deletions
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c index 5b9cff0..2da728f 100644 --- a/gdb/tui/tui.c +++ b/gdb/tui/tui.c @@ -1,7 +1,7 @@ /* General functions for the WDB TUI. - Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, - Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software + Foundation, Inc. Contributed by Hewlett-Packard Company. @@ -38,6 +38,7 @@ #include "defs.h" #include "gdbcmd.h" #include "tui/tui.h" +#include "tui/tui-hooks.h" #include "tui/tui-data.h" #include "tui/tui-layout.h" #include "tui/tui-io.h" @@ -54,19 +55,13 @@ #include "symtab.h" #include "source.h" -#ifdef HAVE_NCURSES_H -#include <ncurses.h> -#else -#ifdef HAVE_CURSES_H -#include <curses.h> -#endif -#endif +#include "gdb_curses.h" /* Tells whether the TUI is active or not. */ int tui_active = 0; static int tui_finish_init = 1; -enum tui_key_mode tui_current_key_mode = tui_command_mode; +enum tui_key_mode tui_current_key_mode = TUI_COMMAND_MODE; struct tui_char_command { @@ -137,10 +132,10 @@ tui_rl_change_windows (int notused1, int notused2) if (tui_active) { - TuiLayoutType new_layout; - TuiRegisterDisplayType regs_type = TUI_UNDEFINED_REGS; + enum tui_layout_type new_layout; + enum tui_register_display_type regs_type = TUI_UNDEFINED_REGS; - new_layout = currentLayout (); + new_layout = tui_current_layout (); /* Select a new layout to have a rolling layout behavior with always two windows (except when undefined). */ @@ -170,7 +165,7 @@ tui_rl_change_windows (int notused1, int notused2) new_layout = SRC_COMMAND; break; } - tuiSetLayout (new_layout, regs_type); + tui_set_layout (new_layout, regs_type); } return 0; } @@ -185,10 +180,10 @@ tui_rl_delete_other_windows (int notused1, int notused2) if (tui_active) { - TuiLayoutType new_layout; - TuiRegisterDisplayType regs_type = TUI_UNDEFINED_REGS; + enum tui_layout_type new_layout; + enum tui_register_display_type regs_type = TUI_UNDEFINED_REGS; - new_layout = currentLayout (); + new_layout = tui_current_layout (); /* Kill one window. */ switch (new_layout) @@ -205,7 +200,7 @@ tui_rl_delete_other_windows (int notused1, int notused2) new_layout = DISASSEM_COMMAND; break; } - tuiSetLayout (new_layout, regs_type); + tui_set_layout (new_layout, regs_type); } return 0; } @@ -215,18 +210,18 @@ tui_rl_delete_other_windows (int notused1, int notused2) static int tui_rl_other_window (int count, int key) { - TuiWinInfoPtr winInfo; + struct tui_win_info * win_info; if (!tui_active) tui_rl_switch_mode (0/*notused*/, 0/*notused*/); - winInfo = tuiNextWin (tuiWinWithFocus ()); - if (winInfo) + win_info = tui_next_win (tui_win_with_focus ()); + if (win_info) { - tuiSetWinFocusTo (winInfo); - if (dataWin && dataWin->generic.isVisible) - tuiRefreshDataWin (); - keypad (cmdWin->generic.handle, (winInfo != cmdWin)); + tui_set_win_focus_to (win_info); + if (TUI_DATA_WIN && TUI_DATA_WIN->generic.is_visible) + tui_refresh_data_win (); + keypad (TUI_CMD_WIN->generic.handle, (win_info != TUI_CMD_WIN)); } return 0; } @@ -261,7 +256,7 @@ tui_rl_command_key (int count, int key) static int tui_rl_command_mode (int count, int key) { - tui_set_key_mode (tui_one_command_mode); + tui_set_key_mode (TUI_ONE_COMMAND_MODE); return rl_insert (count, key); } @@ -273,8 +268,8 @@ tui_rl_next_keymap (int notused1, int notused2) if (!tui_active) 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); + tui_set_key_mode (tui_current_key_mode == TUI_COMMAND_MODE + ? TUI_SINGLE_KEY_MODE : TUI_COMMAND_MODE); return 0; } @@ -283,11 +278,11 @@ tui_rl_next_keymap (int notused1, int notused2) the command window is cleaner. It will be displayed if we temporarily leave the SingleKey mode. */ static int -tui_rl_startup_hook () +tui_rl_startup_hook (void) { rl_already_prompted = 1; - if (tui_current_key_mode != tui_command_mode) - tui_set_key_mode (tui_single_key_mode); + if (tui_current_key_mode != TUI_COMMAND_MODE) + tui_set_key_mode (TUI_SINGLE_KEY_MODE); tui_redisplay_readline (); return 0; } @@ -297,15 +292,15 @@ void tui_set_key_mode (enum tui_key_mode mode) { tui_current_key_mode = mode; - rl_set_keymap (mode == tui_single_key_mode + rl_set_keymap (mode == TUI_SINGLE_KEY_MODE ? tui_keymap : tui_readline_standard_keymap); - tuiShowLocatorContent (); + tui_show_locator_content (); } /* Initialize readline and configure the keymap for the switching key shortcut. */ void -tui_initialize_readline () +tui_initialize_readline (void) { int i; Keymap tui_ctlx_keymap; @@ -384,15 +379,15 @@ tui_enable (void) nl(); keypad (w, TRUE); rl_initialize (); - setTermHeightTo (LINES); - setTermWidthTo (COLS); + tui_set_term_height_to (LINES); + tui_set_term_width_to (COLS); def_prog_mode (); - tuiShowFrameInfo (0); - tuiSetLayout (SRC_COMMAND, TUI_UNDEFINED_REGS); - tuiSetWinFocusTo (srcWin); - keypad (cmdWin->generic.handle, TRUE); - wrefresh (cmdWin->generic.handle); + tui_show_frame_info (0); + tui_set_layout (SRC_COMMAND, TUI_UNDEFINED_REGS); + tui_set_win_focus_to (TUI_SRC_WIN); + keypad (TUI_CMD_WIN->generic.handle, TRUE); + wrefresh (TUI_CMD_WIN->generic.handle); tui_finish_init = 0; } else @@ -413,11 +408,11 @@ tui_enable (void) tui_active = 1; if (deprecated_selected_frame) - tuiShowFrameInfo (deprecated_selected_frame); + tui_show_frame_info (deprecated_selected_frame); /* Restore TUI keymap. */ tui_set_key_mode (tui_current_key_mode); - tuiRefreshAll (); + tui_refresh_all_win (); /* Update gdb's knowledge of its terminal. */ target_terminal_save_ours (); @@ -456,26 +451,15 @@ tui_disable (void) tui_update_gdb_sizes (); } -/* Wrapper on top of free() to ensure that input address - is greater than 0x0. */ void -tuiFree (char *ptr) +strcat_to_buf (char *buf, int buflen, const char *item_to_add) { - if (ptr != (char *) NULL) + if (item_to_add != (char *) NULL && buf != (char *) NULL) { - xfree (ptr); - } -} - -void -strcat_to_buf (char *buf, int buflen, const char *itemToAdd) -{ - if (itemToAdd != (char *) NULL && buf != (char *) NULL) - { - if ((strlen (buf) + strlen (itemToAdd)) <= buflen) - strcat (buf, itemToAdd); + if ((strlen (buf) + strlen (item_to_add)) <= buflen) + strcat (buf, item_to_add); else - strncat (buf, itemToAdd, (buflen - strlen (buf))); + strncat (buf, item_to_add, (buflen - strlen (buf))); } } @@ -489,7 +473,7 @@ strcat_to_buf (char *buf, int buflen, const char *itemToAdd) #define CHK(val, dft) (val<=0 ? dft : val) static void -_tuiReset (void) +tui_reset (void) { struct termio mode; @@ -555,7 +539,7 @@ _tuiReset (void) #endif /* USG */ return; -} /* _tuiReset */ +} #endif void @@ -563,40 +547,40 @@ 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 */ - tuiAddWinToLayout (SRC_WIN); + tui_add_win_to_layout (SRC_WIN); - tuiUpdateSourceWindowsWithLine (cursal.symtab, line); - tuiUpdateLocatorFilename (file); + tui_update_source_windows_with_line (cursal.symtab, line); + tui_update_locator_filename (file); } void tui_show_assembly (CORE_ADDR addr) { - tuiAddWinToLayout (DISASSEM_WIN); - tuiUpdateSourceWindowsWithAddr (addr); + tui_add_win_to_layout (DISASSEM_WIN); + tui_update_source_windows_with_addr (addr); } int -tui_is_window_visible (TuiWinType type) +tui_is_window_visible (enum tui_win_type type) { if (tui_active == 0) return 0; - if (winList[type] == 0) + if (tui_win_list[type] == 0) return 0; - return winList[type]->generic.isVisible; + return tui_win_list[type]->generic.is_visible; } int tui_get_command_dimension (int *width, int *height) { - if (!tui_active || !m_winPtrNotNull (cmdWin)) + if (!tui_active || (TUI_CMD_WIN == NULL)) { return 0; } - *width = cmdWin->generic.width; - *height = cmdWin->generic.height; + *width = TUI_CMD_WIN->generic.width; + *height = TUI_CMD_WIN->generic.height; return 1; } |