Simplify source window clearing
authorTom Tromey <tom@tromey.com>
Sat, 29 Jun 2019 04:55:45 +0000 (22:55 -0600)
committerTom Tromey <tom@tromey.com>
Wed, 17 Jul 2019 18:19:09 +0000 (12:19 -0600)
When a TUI source window is empty, it displays a "No Source Available"
message.  The function tui_set_source_content_nil also made sure to
put this message into the window's "content" field.

However, I believe this isn't really necessary.  Instead, it's simpler
to just empty the contents and let curses handle the refreshing.

gdb/ChangeLog
2019-07-17  Tom Tromey  <tom@tromey.com>

* tui/tui-winsource.c (tui_erase_source_content): Clear the
window's contents.
* tui/tui-source.h (tui_set_source_content_nil): Don't declare.
* tui/tui-source.c (tui_set_source_content_nil): Remove.

gdb/ChangeLog
gdb/tui/tui-source.c
gdb/tui/tui-source.h
gdb/tui/tui-winsource.c

index ee17d503b13787e5e28ad279c946608443ad5c5a..4b5a8760da9416ad0999f57b13d708c4b5016ff5 100644 (file)
@@ -1,3 +1,10 @@
+2019-07-17  Tom Tromey  <tom@tromey.com>
+
+       * tui/tui-winsource.c (tui_erase_source_content): Clear the
+       window's contents.
+       * tui/tui-source.h (tui_set_source_content_nil): Don't declare.
+       * tui/tui-source.c (tui_set_source_content_nil): Remove.
+
 2019-07-17  Tom Tromey  <tom@tromey.com>
 
        * tui/tui-data.h (UNDEFINED_ITEM): Remove define.
index 2fcb42d929941ea27a7ba7598a7f15f0bac2f18f..d3cce1c30033678971e588b1d5cc37aebed2a9c4 100644 (file)
@@ -209,69 +209,6 @@ tui_set_source_content (tui_source_window_base *win_info,
 }
 
 
-/* elz: This function sets the contents of the source window to empty
-   except for a line in the middle with a warning message about the
-   source not being available.  This function is called by
-   tui_erase_source_contents(), which in turn is invoked when the
-   source files cannot be accessed.  */
-
-void
-tui_set_source_content_nil (struct tui_source_window_base *win_info,
-                           const char *warning_string)
-{
-  int line_width;
-  int n_lines;
-  int curr_line = 0;
-
-  line_width = win_info->width - 1;
-  n_lines = win_info->height - 2;
-
-  /* Set to empty each line in the window, except for the one which
-     contains the message.  */
-  while (curr_line < win_info->content.size ())
-    {
-      /* Set the information related to each displayed line to null:
-         i.e. the line number is 0, there is no bp, it is not where
-         the program is stopped.  */
-
-      struct tui_source_element *element = &win_info->content[curr_line];
-
-      element->line_or_addr.loa = LOA_LINE;
-      element->line_or_addr.u.line_no = 0;
-      element->is_exec_point = false;
-      element->break_mode = 0;
-
-      /* Set the contents of the line to blank.  */
-      element->line[0] = (char) 0;
-
-      /* If the current line is in the middle of the screen, then we
-         want to display the 'no source available' message in it.
-         Note: the 'weird' arithmetic with the line width and height
-         comes from the function tui_erase_source_content().  We need
-         to keep the screen and the window's actual contents in
-         synch.  */
-
-      if (curr_line == (n_lines / 2 + 1))
-       {
-         int xpos;
-         int warning_length = strlen (warning_string);
-         char *src_line;
-
-         if (warning_length >= ((line_width - 1) / 2))
-           xpos = 1;
-         else
-           xpos = (line_width - 1) / 2 - warning_length;
-
-         src_line = xstrprintf ("%s%s", n_spaces (xpos), warning_string);
-         xfree (element->line);
-         element->line = src_line;
-       }
-
-      curr_line++;
-    }
-}
-
-
 /* Function to display source in the source window.  This function
    initializes the horizontal scroll to 0.  */
 void
index e4b23133af99603e37f347d866209a7f92f96f96..fc129ab8f264475d8c5f768f889f84b57d7c9f1c 100644 (file)
@@ -27,9 +27,6 @@
 struct symtab;
 struct tui_win_info;
 
-extern void tui_set_source_content_nil (struct tui_source_window_base *,
-                                       const char *);
-
 extern enum tui_status tui_set_source_content (tui_source_window_base *,
                                               struct symtab *, 
                                               int, int);
index 65aa5164122e97c4c94d47c025e11d86c56237d6..2be20492f477f81f0efb277abb212d185f8d177e 100644 (file)
@@ -250,13 +250,7 @@ tui_erase_source_content (struct tui_source_window_base *win_info)
                 x_pos,
                 (char *) no_src_str);
 
-      /* elz: Added this function call to set the real contents of
-        the window to what is on the screen, so that later calls
-        to refresh, do display the correct stuff, and not the old
-        image.  */
-
-      tui_set_source_content_nil (win_info, no_src_str);
-
+      win_info->content.clear ();
       win_info->refresh_window ();
     }
 }