This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Deprecate and replace the "tabset" command


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

commit 7806cea72329a354c36ed8b2177d03f9d5e2673f
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Sep 2 19:41:41 2018 -0600

    Deprecate and replace the "tabset" command
    
    The "tabset" command sets the tab width as used by the TUI for source
    and disassembly display.
    
    This command has long seemed to be misnamed to me.  It is more in
    keeping with gdb design to call it "set tui tab-width".  Also, making
    this change allows for the corresponding "show" command to work.
    
    gdb/ChangeLog
    2018-10-19  Tom Tromey  <tom@tromey.com>
    
    	PR tui/18388:
    	* NEWS: Mention tabset deprecation.
    	* tui/tui-win.c (tui_tab_width, internal_tab_width): New globals.
    	(update_tab_width): New function.
    	(tui_set_tab_width, tui_show_tab_width): New functions.
    	(tui_set_tab_width_command): Use update_tab_width.
    	(_initialize_tui_win): Move to end of file.  Deprecate "tabset".
    	Add new "set tui tab-width" command.
    	* tui/tui-source.c (tui_set_source_content): Update.
    	* tui/tui-disasm.c (tui_set_disassem_content): Update.
    	* tui/tui-data.h (tui_default_tab_len, tui_set_default_tab_len):
    	Don't declare.
    	(tui_tab_width): Declare.
    	* tui/tui-data.c (default_tab_len, tui_default_tab_len)
    	(tui_set_default_tab_len): Remove.
    
    gdb/doc/ChangeLog
    2018-10-19  Tom Tromey  <tom@tromey.com>
    
    	PR tui/18388:
    	* gdb.texinfo (TUI Commands): Remove tabset documentation.
    	(TUI Configuration): Document "set tui tab-width".

Diff:
---
 gdb/ChangeLog        |  18 +++
 gdb/NEWS             |   4 +
 gdb/doc/ChangeLog    |   6 +
 gdb/doc/gdb.texinfo  |  15 +--
 gdb/tui/tui-data.c   |  17 ---
 gdb/tui/tui-data.h   |   4 +-
 gdb/tui/tui-disasm.c |   2 +-
 gdb/tui/tui-source.c |   8 +-
 gdb/tui/tui-win.c    | 313 ++++++++++++++++++++++++++++++---------------------
 9 files changed, 227 insertions(+), 160 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 57a0a95..c703922 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,23 @@
 2018-10-19  Tom Tromey  <tom@tromey.com>
 
+	PR tui/18388:
+	* NEWS: Mention tabset deprecation.
+	* tui/tui-win.c (tui_tab_width, internal_tab_width): New globals.
+	(update_tab_width): New function.
+	(tui_set_tab_width, tui_show_tab_width): New functions.
+	(tui_set_tab_width_command): Use update_tab_width.
+	(_initialize_tui_win): Move to end of file.  Deprecate "tabset".
+	Add new "set tui tab-width" command.
+	* tui/tui-source.c (tui_set_source_content): Update.
+	* tui/tui-disasm.c (tui_set_disassem_content): Update.
+	* tui/tui-data.h (tui_default_tab_len, tui_set_default_tab_len):
+	Don't declare.
+	(tui_tab_width): Declare.
+	* tui/tui-data.c (default_tab_len, tui_default_tab_len)
+	(tui_set_default_tab_len): Remove.
+
+2018-10-19  Tom Tromey  <tom@tromey.com>
+
 	* tui/tui-io.h (key_is_start_sequence, key_is_end_sequence)
 	(key_is_backspace, tui_getc): Don't declare.
 	* tui/tui-io.c (key_is_start_sequence): Now static.
diff --git a/gdb/NEWS b/gdb/NEWS
index 126e61e..1f311a4 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -79,6 +79,10 @@ thread apply [all | COUNT | -COUNT] [FLAG]... COMMAND
   FLAG arguments allow to control what output to produce and how to handle
   errors raised when applying COMMAND to a thread.
 
+set tui tab-width NCHARS
+show tui tab-width NCHARS
+  "set tui tab-width" replaces the "tabset" command, which has been deprecated.
+
 * MI changes
 
   ** The '-data-disassemble' MI command now accepts an '-a' option to
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 0cab170..4eee031 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,9 @@
+2018-10-19  Tom Tromey  <tom@tromey.com>
+
+	PR tui/18388:
+	* gdb.texinfo (TUI Commands): Remove tabset documentation.
+	(TUI Configuration): Document "set tui tab-width".
+
 2018-10-09  Tom Tromey  <tom@tromey.com>
 
 	* python.texi (Inferiors In Python): Link to "Frames In Python",
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index b0dc3bf..e985a7c 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -26780,13 +26780,6 @@ decrease it.  The @var{name} parameter can be one of @code{src} (the
 source window), @code{cmd} (the command window), @code{asm} (the
 disassembly window), or @code{regs} (the register display window).
 
-@item tabset @var{nchars}
-@kindex tabset
-Set the width of tab stops to be @var{nchars} characters.  This
-setting affects the display of TAB characters in the source and
-assembly windows.
-@end table
-
 @node TUI Configuration
 @section TUI Configuration Variables
 @cindex TUI configuration variables
@@ -26838,6 +26831,14 @@ Use extra bright or bold mode.
 @item bold-standout
 Use extra bright or bold and standout mode.
 @end table
+
+@item set tui tab-width @var{nchars}
+@kindex set tui tab-width
+@kindex tabset
+Set the width of tab stops to be @var{nchars} characters.  This
+setting affects the display of TAB characters in the source and
+assembly windows.
+@end table
 @end table
 
 @node Emacs
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index 66693af..4391f0d 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -40,7 +40,6 @@ static struct tui_gen_win_info _locator;
 static struct tui_gen_win_info exec_info[2];
 static struct tui_win_info *src_win_list[2];
 static struct tui_list source_windows = {src_win_list, 0};
-static int default_tab_len = DEFAULT_TAB_LEN;
 static struct tui_win_info *win_with_focus = NULL;
 static struct tui_layout_def layout_def = {
   SRC_WIN,			/* DISPLAY_MODE */
@@ -136,22 +135,6 @@ tui_set_win_with_focus (struct tui_win_info *win_info)
 }
 
 
-/* Answer the length in chars, of tabs.  */
-int
-tui_default_tab_len (void)
-{
-  return default_tab_len;
-}
-
-
-/* Set the length in chars, of tabs.  */
-void
-tui_set_default_tab_len (int len)
-{
-  default_tab_len = len;
-}
-
-
 /* Accessor for the current source window.  Usually there is only one
    source window (either source or disassembly), but both can be
    displayed at the same time.  */
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 79a438d..231534f 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -331,8 +331,6 @@ extern void tui_clear_source_windows (void);
 extern void tui_clear_source_windows_detail (void);
 extern void tui_clear_win_detail (struct tui_win_info *);
 extern void tui_add_to_source_windows (struct tui_win_info *);
-extern int tui_default_tab_len (void);
-extern void tui_set_default_tab_len (int);
 extern struct tui_win_info *tui_win_with_focus (void);
 extern void tui_set_win_with_focus (struct tui_win_info *);
 extern struct tui_layout_def *tui_layout_def (void);
@@ -344,4 +342,6 @@ extern struct tui_win_info *tui_prev_win (struct tui_win_info *);
 
 extern void tui_add_to_source_windows (struct tui_win_info *);
 
+extern unsigned int tui_tab_width;
+
 #endif /* TUI_DATA_H */
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 1bbfd1e..da461c1 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -171,7 +171,7 @@ tui_set_disassem_content (struct gdbarch *gdbarch, CORE_ADDR pc)
   int max_lines, line_width;
   CORE_ADDR cur_pc;
   struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
-  int tab_len = tui_default_tab_len ();
+  int tab_len = tui_tab_width;
   struct tui_asm_line *asm_lines;
   int insn_pos;
   int addr_size, insn_size;
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index de8b77e..a26b7b0 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -131,9 +131,9 @@ tui_set_source_content (struct symtab *s,
 		      /* Init the line with the line number.  */
 		      sprintf (src_line, "%-6d", cur_line_no);
 		      cur_len = strlen (src_line);
-		      i = cur_len - ((cur_len / tui_default_tab_len ())
-				     * tui_default_tab_len ());
-		      while (i < tui_default_tab_len ())
+		      i = cur_len - ((cur_len / tui_tab_width)
+				     * tui_tab_width);
+		      while (i < tui_tab_width)
 			{
 			  src_line[cur_len] = ' ';
 			  i++;
@@ -181,7 +181,7 @@ tui_set_source_content (struct symtab *s,
 				      if (c == '\t')
 					{
 					  int j, max_tab_len
-					    = tui_default_tab_len ();
+					    = tui_tab_width;
 
 					  for (j = i - ((i / max_tab_len)
 							* max_tab_len);
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index bcd0e54..0234ed4 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -430,113 +430,6 @@ winheight_completer (struct cmd_list_element *ignore,
   window_name_completer (tracker, 0, text, word);
 }
 
-/* Function to initialize gdb commands, for tui window
-   manipulation.  */
-
-void
-_initialize_tui_win (void)
-{
-  static struct cmd_list_element *tui_setlist;
-  static struct cmd_list_element *tui_showlist;
-  struct cmd_list_element *cmd;
-
-  /* Define the classes of commands.
-     They will appear in the help list in the reverse of this order.  */
-  add_prefix_cmd ("tui", class_tui, set_tui_cmd,
-                  _("TUI configuration variables"),
-		  &tui_setlist, "set tui ",
-		  0 /* allow-unknown */, &setlist);
-  add_prefix_cmd ("tui", class_tui, show_tui_cmd,
-                  _("TUI configuration variables"),
-		  &tui_showlist, "show tui ",
-		  0 /* allow-unknown */, &showlist);
-
-  add_com ("refresh", class_tui, tui_refresh_all_command,
-           _("Refresh the terminal display.\n"));
-  add_com ("tabset", class_tui, tui_set_tab_width_command, _("\
-Set the width (in characters) of tab stops.\n\
-Usage: tabset N\n"));
-  cmd = add_com ("winheight", class_tui, tui_set_win_height_command, _("\
-Set or modify the height of a specified window.\n"
-WIN_HEIGHT_USAGE
-"Window names are:\n\
-src  : the source window\n\
-cmd  : the command window\n\
-asm  : the disassembly window\n\
-regs : the register display\n"));
-  add_com_alias ("wh", "winheight", class_tui, 0);
-  set_cmd_completer (cmd, winheight_completer);
-  add_info ("win", tui_all_windows_info,
-	    _("List of all displayed windows.\n"));
-  cmd = add_com ("focus", class_tui, tui_set_focus_command, _("\
-Set focus to named window or next/prev window.\n"
-FOCUS_USAGE
-"Valid Window names are:\n\
-src  : the source window\n\
-asm  : the disassembly window\n\
-regs : the register display\n\
-cmd  : the command window\n"));
-  add_com_alias ("fs", "focus", class_tui, 0);
-  set_cmd_completer (cmd, focus_completer);
-  add_com ("+", class_tui, tui_scroll_forward_command, _("\
-Scroll window forward.\n\
-Usage: + [WIN] [N]\n"));
-  add_com ("-", class_tui, tui_scroll_backward_command, _("\
-Scroll window backward.\n\
-Usage: - [WIN] [N]\n"));
-  add_com ("<", class_tui, tui_scroll_left_command, _("\
-Scroll window text to the left.\n\
-Usage: < [WIN] [N]\n"));
-  add_com (">", class_tui, tui_scroll_right_command, _("\
-Scroll window text to the right.\n\
-Usage: > [WIN] [N]\n"));
-
-  /* Define the tui control variables.  */
-  add_setshow_enum_cmd ("border-kind", no_class, tui_border_kind_enums,
-			&tui_border_kind, _("\
-Set the kind of border for TUI windows."), _("\
-Show the kind of border for TUI windows."), _("\
-This variable controls the border of TUI windows:\n\
-space           use a white space\n\
-ascii           use ascii characters + - | for the border\n\
-acs             use the Alternate Character Set"),
-			tui_set_var_cmd,
-			show_tui_border_kind,
-			&tui_setlist, &tui_showlist);
-
-  add_setshow_enum_cmd ("border-mode", no_class, tui_border_mode_enums,
-			&tui_border_mode, _("\
-Set the attribute mode to use for the TUI window borders."), _("\
-Show the attribute mode to use for the TUI window borders."), _("\
-This variable controls the attributes to use for the window borders:\n\
-normal          normal display\n\
-standout        use highlight mode of terminal\n\
-reverse         use reverse video mode\n\
-half            use half bright\n\
-half-standout   use half bright and standout mode\n\
-bold            use extra bright or bold\n\
-bold-standout   use extra bright or bold with standout mode"),
-			tui_set_var_cmd,
-			show_tui_border_mode,
-			&tui_setlist, &tui_showlist);
-
-  add_setshow_enum_cmd ("active-border-mode", no_class, tui_border_mode_enums,
-			&tui_active_border_mode, _("\
-Set the attribute mode to use for the active TUI window border."), _("\
-Show the attribute mode to use for the active TUI window border."), _("\
-This variable controls the attributes to use for the active window border:\n\
-normal          normal display\n\
-standout        use highlight mode of terminal\n\
-reverse         use reverse video mode\n\
-half            use half bright\n\
-half-standout   use half bright and standout mode\n\
-bold            use extra bright or bold\n\
-bold-standout   use extra bright or bold with standout mode"),
-			tui_set_var_cmd,
-			show_tui_active_border_mode,
-			&tui_setlist, &tui_showlist);
-}
-
 /* Update gdb's knowledge of the terminal size.  */
 void
 tui_update_gdb_sizes (void)
@@ -1113,6 +1006,65 @@ tui_refresh_all_command (const char *arg, int from_tty)
   tui_refresh_all_win ();
 }
 
+/* The tab width that should be used by the TUI.  */
+
+unsigned int tui_tab_width = DEFAULT_TAB_LEN;
+
+/* The tab width as set by the user.  */
+
+static unsigned int internal_tab_width = DEFAULT_TAB_LEN;
+
+/* After the tab width is set, call this to update the relevant
+   windows.  */
+
+static void
+update_tab_width ()
+{
+  /* We don't really change the height of any windows, but
+     calling these 2 functions causes a complete regeneration
+     and redisplay of the window's contents, which will take
+     the new tab width into account.  */
+  if (tui_win_list[SRC_WIN]
+      && tui_win_list[SRC_WIN]->generic.is_visible)
+    {
+      make_invisible_and_set_new_height (TUI_SRC_WIN,
+					 TUI_SRC_WIN->generic.height);
+      make_visible_with_new_height (TUI_SRC_WIN);
+    }
+  if (tui_win_list[DISASSEM_WIN]
+      && tui_win_list[DISASSEM_WIN]->generic.is_visible)
+    {
+      make_invisible_and_set_new_height (TUI_DISASM_WIN,
+					 TUI_DISASM_WIN->generic.height);
+      make_visible_with_new_height (TUI_DISASM_WIN);
+    }
+}
+
+/* Callback for "set tui tab-width".  */
+
+static void
+tui_set_tab_width (const char *ignore,
+		   int from_tty, struct cmd_list_element *c)
+{
+  if (internal_tab_width == 0)
+    {
+      internal_tab_width = tui_tab_width;
+      error (_("Tab width must not be 0"));
+    }
+
+  tui_tab_width = internal_tab_width;
+  update_tab_width ();
+}
+
+/* Callback for "show tui tab-width".  */
+
+static void
+tui_show_tab_width (struct ui_file *file, int from_tty,
+		    struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (gdb_stdout, _("TUI tab width is %s spaces.\n"), value);
+
+}
 
 /* Set the tab width of the specified window.  */
 static void
@@ -1125,30 +1077,15 @@ tui_set_tab_width_command (const char *arg, int from_tty)
       int ts;
 
       ts = atoi (arg);
-      if (ts > 0)
+      if (ts <= 0)
+	warning (_("Tab widths greater than 0 must be specified."));
+      else
 	{
-	  tui_set_default_tab_len (ts);
-	  /* We don't really change the height of any windows, but
-	     calling these 2 functions causes a complete regeneration
-	     and redisplay of the window's contents, which will take
-	     the new tab width into account.  */
-	  if (tui_win_list[SRC_WIN]
-	      && tui_win_list[SRC_WIN]->generic.is_visible)
-	    {
-	      make_invisible_and_set_new_height (TUI_SRC_WIN,
-						 TUI_SRC_WIN->generic.height);
-	      make_visible_with_new_height (TUI_SRC_WIN);
-	    }
-	  if (tui_win_list[DISASSEM_WIN]
-	      && tui_win_list[DISASSEM_WIN]->generic.is_visible)
-	    {
-	      make_invisible_and_set_new_height (TUI_DISASM_WIN,
-						 TUI_DISASM_WIN->generic.height);
-	      make_visible_with_new_height (TUI_DISASM_WIN);
-	    }
+	  internal_tab_width = ts;
+	  tui_tab_width = ts;
+
+	  update_tab_width ();
 	}
-      else
-	warning (_("Tab widths greater than 0 must be specified."));
     }
 }
 
@@ -1706,3 +1643,121 @@ The window name specified must be valid and visible.\n"));
 	}
     }
 }
+
+/* Function to initialize gdb commands, for tui window
+   manipulation.  */
+
+void
+_initialize_tui_win (void)
+{
+  static struct cmd_list_element *tui_setlist;
+  static struct cmd_list_element *tui_showlist;
+  struct cmd_list_element *cmd;
+
+  /* Define the classes of commands.
+     They will appear in the help list in the reverse of this order.  */
+  add_prefix_cmd ("tui", class_tui, set_tui_cmd,
+                  _("TUI configuration variables"),
+		  &tui_setlist, "set tui ",
+		  0 /* allow-unknown */, &setlist);
+  add_prefix_cmd ("tui", class_tui, show_tui_cmd,
+                  _("TUI configuration variables"),
+		  &tui_showlist, "show tui ",
+		  0 /* allow-unknown */, &showlist);
+
+  add_com ("refresh", class_tui, tui_refresh_all_command,
+           _("Refresh the terminal display.\n"));
+
+  cmd = add_com ("tabset", class_tui, tui_set_tab_width_command, _("\
+Set the width (in characters) of tab stops.\n\
+Usage: tabset N\n"));
+  deprecate_cmd (cmd, "set tui tab-width");
+
+  cmd = add_com ("winheight", class_tui, tui_set_win_height_command, _("\
+Set or modify the height of a specified window.\n"
+WIN_HEIGHT_USAGE
+"Window names are:\n\
+src  : the source window\n\
+cmd  : the command window\n\
+asm  : the disassembly window\n\
+regs : the register display\n"));
+  add_com_alias ("wh", "winheight", class_tui, 0);
+  set_cmd_completer (cmd, winheight_completer);
+  add_info ("win", tui_all_windows_info,
+	    _("List of all displayed windows.\n"));
+  cmd = add_com ("focus", class_tui, tui_set_focus_command, _("\
+Set focus to named window or next/prev window.\n"
+FOCUS_USAGE
+"Valid Window names are:\n\
+src  : the source window\n\
+asm  : the disassembly window\n\
+regs : the register display\n\
+cmd  : the command window\n"));
+  add_com_alias ("fs", "focus", class_tui, 0);
+  set_cmd_completer (cmd, focus_completer);
+  add_com ("+", class_tui, tui_scroll_forward_command, _("\
+Scroll window forward.\n\
+Usage: + [WIN] [N]\n"));
+  add_com ("-", class_tui, tui_scroll_backward_command, _("\
+Scroll window backward.\n\
+Usage: - [WIN] [N]\n"));
+  add_com ("<", class_tui, tui_scroll_left_command, _("\
+Scroll window text to the left.\n\
+Usage: < [WIN] [N]\n"));
+  add_com (">", class_tui, tui_scroll_right_command, _("\
+Scroll window text to the right.\n\
+Usage: > [WIN] [N]\n"));
+
+  /* Define the tui control variables.  */
+  add_setshow_enum_cmd ("border-kind", no_class, tui_border_kind_enums,
+			&tui_border_kind, _("\
+Set the kind of border for TUI windows."), _("\
+Show the kind of border for TUI windows."), _("\
+This variable controls the border of TUI windows:\n\
+space           use a white space\n\
+ascii           use ascii characters + - | for the border\n\
+acs             use the Alternate Character Set"),
+			tui_set_var_cmd,
+			show_tui_border_kind,
+			&tui_setlist, &tui_showlist);
+
+  add_setshow_enum_cmd ("border-mode", no_class, tui_border_mode_enums,
+			&tui_border_mode, _("\
+Set the attribute mode to use for the TUI window borders."), _("\
+Show the attribute mode to use for the TUI window borders."), _("\
+This variable controls the attributes to use for the window borders:\n\
+normal          normal display\n\
+standout        use highlight mode of terminal\n\
+reverse         use reverse video mode\n\
+half            use half bright\n\
+half-standout   use half bright and standout mode\n\
+bold            use extra bright or bold\n\
+bold-standout   use extra bright or bold with standout mode"),
+			tui_set_var_cmd,
+			show_tui_border_mode,
+			&tui_setlist, &tui_showlist);
+
+  add_setshow_enum_cmd ("active-border-mode", no_class, tui_border_mode_enums,
+			&tui_active_border_mode, _("\
+Set the attribute mode to use for the active TUI window border."), _("\
+Show the attribute mode to use for the active TUI window border."), _("\
+This variable controls the attributes to use for the active window border:\n\
+normal          normal display\n\
+standout        use highlight mode of terminal\n\
+reverse         use reverse video mode\n\
+half            use half bright\n\
+half-standout   use half bright and standout mode\n\
+bold            use extra bright or bold\n\
+bold-standout   use extra bright or bold with standout mode"),
+			tui_set_var_cmd,
+			show_tui_active_border_mode,
+			&tui_setlist, &tui_showlist);
+
+  add_setshow_zuinteger_cmd ("tab-width", no_class,
+			     &internal_tab_width, _("\
+Set the tab width, in characters, for the TUI."), _("\
+Show the tab witdh, in characters, for the TUI"), _("\
+This variable controls how many spaces are used to display a tab character."),
+			     tui_set_tab_width, tui_show_tab_width,
+			     &tui_setlist, &tui_showlist);
+}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]