aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog18
-rw-r--r--gdb/tui/tui-data.c5
-rw-r--r--gdb/tui/tui-data.h2
-rw-r--r--gdb/tui/tui-io.c36
-rw-r--r--gdb/tui/tui-win.c6
5 files changed, 30 insertions, 37 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4496808..9e609ae 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,21 @@
+2015-08-21 Patrick Palka <patrick@parcs.ath.cx>
+
+ * tui/tui-data.h (tui_command_info): Remove fields cur_line and
+ curch.
+ * tui/tui-data.c (tui_clear_win_detail) [CMD_WIN]: Don't set
+ cur_line or curch, instead call wmove().
+ (init_win_info) [CMD_WIN]: Likewise.
+ * tui/tui-io.c (tui_puts): Likewise. Don't read cur_line,
+ instead call getcury().
+ (tui_redisplay_readline): Don't set cur_line or curch.
+ (tui_mld_erase_entire_line): Don't read cur_line, instead call
+ getcury().
+ (tui_cont_sig): Remove call to wmove.
+ (tui_getc): Don't read cur_line or curch, instead call getcury()
+ or getyx(). Don't set curch.
+ * tui/tui-win.c (make_visible_with_new_height) [CMD_WIN]: Don't
+ set cur_line or curch. Always move cursor to (0,0).
+
2015-08-20 Pedro Alves <palves@redhat.com>
* infrun.c (print_target_wait_results): Make extern.
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;