Fix vertical scrolling of TUI source window
authorEli Zaretskii <eliz@gnu.org>
Sat, 16 Mar 2019 17:53:46 +0000 (19:53 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 16 Mar 2019 17:57:48 +0000 (19:57 +0200)
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.

(cherry picked from commit ab42892fb7d265e72a85e918d4f5c6dfeee3fcd8)

gdb/ChangeLog
gdb/source-cache.c

index 6da0282..5db2799 100644 (file)
@@ -1,5 +1,11 @@
 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  Eli Zaretskii  <eliz@gnu.org>
+
        * tui/tui-winsource.c (tui_show_source_line): Revert "Use
        wclrtoeol in tui_show_source_line".  This reverts changes made in
        commit 4a3045920bbe4e50a0f4920b0fdc4e88ef23015c.
index 1ed2601..9211f09 100644 (file)
@@ -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");