diff options
Diffstat (limited to 'gdb/tui')
-rw-r--r-- | gdb/tui/tui-data.c | 5 | ||||
-rw-r--r-- | gdb/tui/tui-data.h | 2 | ||||
-rw-r--r-- | gdb/tui/tui-io.c | 36 | ||||
-rw-r--r-- | gdb/tui/tui-win.c | 6 |
4 files changed, 12 insertions, 37 deletions
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index 0c350d8..f610d9c 100644 --- a/gdb/tui/tui-data.c +++ b/gdb/tui/tui-data.c @@ -212,8 +212,7 @@ tui_clear_win_detail (struct tui_win_info *win_info) win_info->detail.source_info.horizontal_offset = 0; break; case CMD_WIN: - win_info->detail.command_info.cur_line = - win_info->detail.command_info.curch = 0; + wmove (win_info->generic.handle, 0, 0); break; case DATA_WIN: win_info->detail.data_display_info.data_content = @@ -546,8 +545,6 @@ init_win_info (struct tui_win_info *win_info) win_info->detail.data_display_info.current_group = 0; break; case CMD_WIN: - win_info->detail.command_info.cur_line = 0; - win_info->detail.command_info.curch = 0; break; default: win_info->detail.opaque = NULL; diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h index 0e7e31e..df1fe6c 100644 --- a/gdb/tui/tui-data.h +++ b/gdb/tui/tui-data.h @@ -265,8 +265,6 @@ struct tui_source_info struct tui_command_info { - int cur_line; /* The current line position. */ - int curch; /* The current cursor position. */ int start_line; }; diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c index 97906ce..f0ff5c0 100644 --- a/gdb/tui/tui-io.c +++ b/gdb/tui/tui-io.c @@ -187,10 +187,7 @@ tui_puts (const char *string) else if (c == '\n') tui_skip_line = -1; } - getyx (w, TUI_CMD_WIN->detail.command_info.cur_line, - TUI_CMD_WIN->detail.command_info.curch); - TUI_CMD_WIN->detail.command_info.start_line - = TUI_CMD_WIN->detail.command_info.cur_line; + TUI_CMD_WIN->detail.command_info.start_line = getcury (w); } /* Readline callback. @@ -271,24 +268,16 @@ tui_redisplay_readline (void) waddch (w, c); } if (c == '\n') - { - getyx (w, TUI_CMD_WIN->detail.command_info.start_line, - TUI_CMD_WIN->detail.command_info.curch); - } + TUI_CMD_WIN->detail.command_info.start_line = getcury (w); getyx (w, line, col); if (col < prev_col) height++; prev_col = col; } wclrtobot (w); - getyx (w, TUI_CMD_WIN->detail.command_info.start_line, - TUI_CMD_WIN->detail.command_info.curch); + TUI_CMD_WIN->detail.command_info.start_line = getcury (w); if (c_line >= 0) - { - wmove (w, c_line, c_pos); - TUI_CMD_WIN->detail.command_info.cur_line = c_line; - TUI_CMD_WIN->detail.command_info.curch = c_pos; - } + wmove (w, c_line, c_pos); TUI_CMD_WIN->detail.command_info.start_line -= height - 1; wrefresh (w); @@ -371,10 +360,11 @@ static void tui_mld_erase_entire_line (const struct match_list_displayer *displayer) { WINDOW *w = TUI_CMD_WIN->generic.handle; + int cur_y = getcury (w); - wmove (w, TUI_CMD_WIN->detail.command_info.cur_line, 0); + wmove (w, cur_y, 0); wclrtoeol (w); - wmove (w, TUI_CMD_WIN->detail.command_info.cur_line, 0); + wmove (w, cur_y, 0); } /* TUI version of displayer.beep. */ @@ -521,10 +511,6 @@ tui_cont_sig (int sig) /* Force a refresh of the screen. */ tui_refresh_all_win (); - /* Update cursor position on the screen. */ - wmove (TUI_CMD_WIN->generic.handle, - TUI_CMD_WIN->detail.command_info.start_line, - TUI_CMD_WIN->detail.command_info.curch); wrefresh (TUI_CMD_WIN->generic.handle); } signal (sig, tui_cont_sig); @@ -601,7 +587,7 @@ tui_getc (FILE *fp) user we recognized the command. */ if (rl_end == 0) { - wmove (w, TUI_CMD_WIN->detail.command_info.cur_line, 0); + wmove (w, getcury (w), 0); /* Clear the line. This will blink the gdb prompt since it will be redrawn at the same line. */ @@ -614,8 +600,8 @@ tui_getc (FILE *fp) /* Move cursor to the end of the command line before emitting the newline. We need to do so because when ncurses outputs a newline it truncates any text that appears past the end of the cursor. */ - int px = TUI_CMD_WIN->detail.command_info.curch; - int py = TUI_CMD_WIN->detail.command_info.cur_line; + int px, py; + getyx (w, py, px); px += rl_end - rl_point; py += px / TUI_CMD_WIN->generic.width; px %= TUI_CMD_WIN->generic.width; @@ -627,8 +613,6 @@ tui_getc (FILE *fp) /* Handle prev/next/up/down here. */ ch = tui_dispatch_ctrl_char (ch); - if (ch == '\n' || ch == '\r' || ch == '\f') - TUI_CMD_WIN->detail.command_info.curch = 0; if (ch == KEY_BACKSPACE) return '\b'; diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index 29ad279..6768d35 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -1525,8 +1525,6 @@ make_visible_with_new_height (struct tui_win_info *win_info) tui_display_all_data (); break; case CMD_WIN: - win_info->detail.command_info.cur_line = 0; - win_info->detail.command_info.curch = 0; #ifdef HAVE_WRESIZE wresize (TUI_CMD_WIN->generic.handle, TUI_CMD_WIN->generic.height, @@ -1535,9 +1533,7 @@ make_visible_with_new_height (struct tui_win_info *win_info) mvwin (TUI_CMD_WIN->generic.handle, TUI_CMD_WIN->generic.origin.y, TUI_CMD_WIN->generic.origin.x); - wmove (win_info->generic.handle, - win_info->detail.command_info.cur_line, - win_info->detail.command_info.curch); + wmove (win_info->generic.handle, 0, 0); break; default: break; |