Skip to content
  • Patrick Palka's avatar
    Remove fields curch and cur_line from TUI_CMD_WIN · 6f1cb6ea
    Patrick Palka authored
    These fields are currently used to track the location of the cursor
    inside the command window.  But their usefulness is questionable because
    ncurses already internally keeps track of the location of the cursor,
    whose coordinates we can query using the functions getyx(), getcurx() or
    getcury().  It is an unnecessary pain to keep these fields in sync with
    ncurses, and their meaning is not well-defined anyway.  For instance, it
    is not clear whether the coordinates held in these fields are
    authoritative, or whether the coordinates reported by ncurses are.
    
    So to keep things simple, this patch removes these fields and replaces
    existing reads of these fields with calls to the appropriate ncurses
    querying functions, and replaces writes to these fields with calls to
    wmove() (when necessary and applicable).
    
    In the function tui_cont_sig(), I removed the call to wmove() entirely
    because moving to (start_line, curch) makes no sense.  The move should
    have been to (cur_line, curch) -- which would now be a no-op.
    
    Tested on x86_64 Fedora 22, no obvious regressions.
    
    gdb/ChangeLog:
    
    	* 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).
    6f1cb6ea