[RFC,2/8] Add a "context" argument to add_setshow_enum_cmd

Message ID 20180906211303.11029-3-tom@tromey.com
State Superseded
Headers show
Series
  • add terminal styling to gdb
Related show

Commit Message

Tom Tromey Sept. 6, 2018, 9:12 p.m.
This adds a "context" argument to add_setshow_enum_cmd.  Now
add_setshow_enum_cmd will call set_cmd_context on both of the new
commands.  This is used in a later patch.

gdb/ChangeLog
2018-09-06  Tom Tromey  <tom@tromey.com>

	* command.h (add_setshow_enum_cmd): Add "context" argument.
	* cli/cli-decode.c (add_setshow_enum_cmd): Add "context"
	argument.  Call set_cmd_context.
---
 gdb/ChangeLog        |  6 ++++++
 gdb/cli/cli-decode.c | 10 +++++++---
 gdb/command.h        |  3 ++-
 3 files changed, 15 insertions(+), 4 deletions(-)

-- 
2.13.6

Patch

diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index 83dd67efe3f..4a75c41c910 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -495,16 +495,20 @@  add_setshow_enum_cmd (const char *name,
 		      cmd_const_sfunc_ftype *set_func,
 		      show_value_ftype *show_func,
 		      struct cmd_list_element **set_list,
-		      struct cmd_list_element **show_list)
+		      struct cmd_list_element **show_list,
+		      void *context)
 {
-  struct cmd_list_element *c;
+  struct cmd_list_element *c, *show;
 
   add_setshow_cmd_full (name, theclass, var_enum, var,
 			set_doc, show_doc, help_doc,
 			set_func, show_func,
 			set_list, show_list,
-			&c, NULL);
+			&c, &show);
   c->enums = enumlist;
+
+  set_cmd_context (c, context);
+  set_cmd_context (show, context);
 }
 
 const char * const auto_boolean_enums[] = { "on", "off", "auto", NULL };
diff --git a/gdb/command.h b/gdb/command.h
index 3dde2475cb1..cf4def2bcdb 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -300,7 +300,8 @@  extern void add_setshow_enum_cmd (const char *name,
 				  cmd_const_sfunc_ftype *set_func,
 				  show_value_ftype *show_func,
 				  struct cmd_list_element **set_list,
-				  struct cmd_list_element **show_list);
+				  struct cmd_list_element **show_list,
+				  void *context = nullptr);
 
 extern void add_setshow_auto_boolean_cmd (const char *name,
 					  enum command_class theclass,