diff options
Diffstat (limited to 'gdb/tui/tui-io.c')
-rw-r--r-- | gdb/tui/tui-io.c | 36 |
1 files changed, 10 insertions, 26 deletions
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'; |