Change tui_make_status_line to be a method
authorTom Tromey <tom@tromey.com>
Tue, 23 Jul 2019 22:43:20 +0000 (16:43 -0600)
committerTom Tromey <tom@tromey.com>
Fri, 20 Sep 2019 19:49:05 +0000 (13:49 -0600)
This changes tui_make_status_line to be a method on
tui_locator_window.  This is a minor cleanup.

This also changes the new method to use the locator's width, rather
than the terminal width.  This is important if we ever want to allow
windows to be made more narrow.

gdb/ChangeLog
2019-09-20  Tom Tromey  <tom@tromey.com>

* tui/tui-stack.h (struct tui_locator_window) <make_status_line>:
Declare.
* tui/tui-stack.c (tui_locator_window::make_status_line): Rename
from tui_make_status_line.
(tui_locator_window::rerender): Update.

gdb/ChangeLog
gdb/tui/tui-stack.c
gdb/tui/tui-stack.h

index 862748efc1cfc4ca3a570446d79b01f181fccf33..b6a15347b52791d51bde4cf1fee2ba303fec3a76 100644 (file)
@@ -1,3 +1,11 @@
+2019-09-20  Tom Tromey  <tom@tromey.com>
+
+       * tui/tui-stack.h (struct tui_locator_window) <make_status_line>:
+       Declare.
+       * tui/tui-stack.c (tui_locator_window::make_status_line): Rename
+       from tui_make_status_line.
+       (tui_locator_window::rerender): Update.
+
 2019-09-20  Tom Tromey  <tom@tromey.com>
 
        * tui/tui-stack.c (tui_make_status_line): Return std::string.
index a2e4a161bb77722aba9deeb89f8006a393b7ff59..163a5ad7255fb612b9a56df62e233c4f08cd63e9 100644 (file)
@@ -63,13 +63,10 @@ tui_locator_win_info_ptr (void)
   return &_locator;
 }
 
-/* Create the status line to display as much information as we can on
-   this single line: target name, process number, current function,
-   current line, current PC, SingleKey mode.  */
-static std::string
-tui_make_status_line (struct tui_locator_window *loc)
+std::string
+tui_locator_window::make_status_line () const
 {
-  char line_buf[50], *pname;
+  char line_buf[50];
   int status_size;
   int proc_width;
   const char *pid_name;
@@ -94,11 +91,11 @@ tui_make_status_line (struct tui_locator_window *loc)
   if (pid_width > MAX_PID_WIDTH)
     pid_width = MAX_PID_WIDTH;
 
-  status_size = tui_term_width ();
+  status_size = width;
 
   /* Translate line number and obtain its size.  */
-  if (loc->line_no > 0)
-    xsnprintf (line_buf, sizeof (line_buf), "%d", loc->line_no);
+  if (line_no > 0)
+    xsnprintf (line_buf, sizeof (line_buf), "%d", line_no);
   else
     strcpy (line_buf, "??");
   line_width = strlen (line_buf);
@@ -106,8 +103,8 @@ tui_make_status_line (struct tui_locator_window *loc)
     line_width = MIN_LINE_WIDTH;
 
   /* Translate PC address.  */
-  std::string pc_out (loc->gdbarch
-                     ? paddress (loc->gdbarch, loc->addr)
+  std::string pc_out (gdbarch
+                     ? paddress (gdbarch, addr)
                      : "??");
   const char *pc_buf = pc_out.c_str ();
   int pc_width = pc_out.size ();
@@ -150,9 +147,6 @@ tui_make_status_line (struct tui_locator_window *loc)
         }
     }
 
-  /* Now convert elements to string form.  */
-  pname = loc->proc_name;
-
   /* Now create the locator line from the string version of the
      elements.  */
   string_file string;
@@ -172,12 +166,12 @@ tui_make_status_line (struct tui_locator_window *loc)
   /* Procedure/class name.  */
   if (proc_width > 0)
     {
-      if (strlen (pname) > proc_width)
+      if (strlen (proc_name) > proc_width)
         string.printf ("%s%*.*s* ", PROC_PREFIX,
-                      1 - proc_width, proc_width - 1, pname);
+                      1 - proc_width, proc_width - 1, proc_name);
       else
         string.printf ("%s%*.*s ", PROC_PREFIX,
-                      -proc_width, proc_width, pname);
+                      -proc_width, proc_width, proc_name);
     }
 
   if (line_width > 0)
@@ -234,7 +228,7 @@ tui_locator_window::rerender ()
 {
   if (handle != NULL)
     {
-      std::string string = tui_make_status_line (this);
+      std::string string = make_status_line ();
       wmove (handle, 0, 0);
       /* We ignore the return value from wstandout and wstandend, casting
         them to void in order to avoid a compiler warning.  The warning
index 86239b0d284ac5cd60fd082701662f370c64299c..b6ffa986a6f93f50d16d961a06f549dd7261ca98 100644 (file)
@@ -63,6 +63,14 @@ struct tui_locator_window : public tui_gen_win_info
   CORE_ADDR addr = 0;
   /* Architecture associated with code at this location.  */
   struct gdbarch *gdbarch = nullptr;
+
+private:
+
+  /* Create the status line to display as much information as we can
+     on this single line: target name, process number, current
+     function, current line, current PC, SingleKey mode.  */
+
+  std::string make_status_line () const;
 };
 
 extern void tui_update_locator_fullname (const char *);
This page took 0.033106 seconds and 4 git commands to generate.