[binutils-gdb] Fix vertical scrolling of TUI source window

Eli Zaretskii eliz@sourceware.org
Sat Mar 16 17:55:00 GMT 2019


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ab42892fb7d265e72a85e918d4f5c6dfeee3fcd8

commit ab42892fb7d265e72a85e918d4f5c6dfeee3fcd8
Author: Eli Zaretskii <eliz@gnu.org>
Date:   Sat Mar 16 19:53:46 2019 +0200

    Fix vertical scrolling of TUI source window
    
    gdb/ChangeLog:
    2019-03-16  Eli Zaretskii  <eliz@gnu.org>
    
    	* source-cache.c (source_cache::get_source_lines): Call
    	find_source_lines to initialize s->nlines.  This fixes vertical
    	scrolling of TUI source window when the DOWN arrow is pressed.

Diff:
---
 gdb/ChangeLog      | 6 ++++++
 gdb/source-cache.c | 7 +++++++
 2 files changed, 13 insertions(+)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 13024ce..bf003123 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-03-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* source-cache.c (source_cache::get_source_lines): Call
+	find_source_lines to initialize s->nlines.  This fixes vertical
+	scrolling of TUI source window when the DOWN arrow is pressed.
+
 2019-03-16  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
 
 	* auto-load.c (_initialize_auto_load): Fix 'This options has'.
diff --git a/gdb/source-cache.c b/gdb/source-cache.c
index 1ed2601..9211f09 100644
--- a/gdb/source-cache.c
+++ b/gdb/source-cache.c
@@ -200,6 +200,13 @@ source_cache::get_source_lines (struct symtab *s, int first_line,
 	  std::ifstream input (fullname);
 	  if (input.is_open ())
 	    {
+	      if (s->line_charpos == 0)
+		{
+		  scoped_fd desc = open_source_file (s);
+		  if (desc.get () < 0)
+		    return false;
+		  find_source_lines (s, desc.get ());
+		}
 	      srchilite::SourceHighlight highlighter ("esc.outlang");
 	      highlighter.setStyleFile("esc.style");



More information about the Gdb-cvs mailing list