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 ee17d50..4b5a876 100644 (file)
@@ -1,5 +1,12 @@
 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.
        (struct tui_data_item_window): Update.
 
index 2fcb42d..d3cce1c 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 e4b2313..fc129ab 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 65aa516..2be2049 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 ();
     }
 }