[11/13] constify command prefix

Message ID 1406055319-26380-12-git-send-email-tromey@redhat.com
State Committed
Headers

Commit Message

Tom Tromey July 22, 2014, 6:55 p.m. UTC
  This constifies the "prefix" argument to the various command-adding
functions.

2014-07-22  Tom Tromey  <tromey@redhat.com>

	* cli/cli-decode.c (print_help_for_command): Make "prefix" const.
	(add_prefix_cmd, add_abbrev_prefix_cmd, apropos_cmd, help_list)
	(help_cmd_list): Constify.
	(lookup_cmd): Update.
	* cli/cli-decode.h (struct cmd_list_element) <prefixname>: Now
	const.
	(help_cmd_list, apropos_cmd): Update.
	* cli/cli-script.c (show_user): Update.
	* cli/cli-setshow.c (cmd_show_list): Make "prefix" const.
	* cli/cli-setshow.h (cmd_show_list): Update.
	* command.h (add_prefix_cmd, add_abbrev_prefix_cmd, help_list)
	(cmd_show_list): Update.
	* guile/scm-cmd.c (cmdscm_destroyer): Update.
	* python/py-cmd.c (cmdpy_destroyer): Update.
---
 gdb/ChangeLog         | 17 +++++++++++++++++
 gdb/cli/cli-decode.c  | 21 +++++++++++----------
 gdb/cli/cli-decode.h  |  6 +++---
 gdb/cli/cli-script.c  |  2 +-
 gdb/cli/cli-setshow.c |  2 +-
 gdb/cli/cli-setshow.h |  2 +-
 gdb/command.h         |  8 ++++----
 gdb/guile/scm-cmd.c   |  2 +-
 gdb/python/py-cmd.c   |  2 +-
 9 files changed, 40 insertions(+), 22 deletions(-)
  

Comments

Pedro Alves July 24, 2014, 2 a.m. UTC | #1
Looks good to me.

Thanks,
Pedro Alves

On 07/22/2014 07:55 PM, Tom Tromey wrote:
> This constifies the "prefix" argument to the various command-adding
> functions.
> 
> 2014-07-22  Tom Tromey  <tromey@redhat.com>
> 
> 	* cli/cli-decode.c (print_help_for_command): Make "prefix" const.
> 	(add_prefix_cmd, add_abbrev_prefix_cmd, apropos_cmd, help_list)
> 	(help_cmd_list): Constify.
> 	(lookup_cmd): Update.
> 	* cli/cli-decode.h (struct cmd_list_element) <prefixname>: Now
> 	const.
> 	(help_cmd_list, apropos_cmd): Update.
> 	* cli/cli-script.c (show_user): Update.
> 	* cli/cli-setshow.c (cmd_show_list): Make "prefix" const.
> 	* cli/cli-setshow.h (cmd_show_list): Update.
> 	* command.h (add_prefix_cmd, add_abbrev_prefix_cmd, help_list)
> 	(cmd_show_list): Update.
> 	* guile/scm-cmd.c (cmdscm_destroyer): Update.
> 	* python/py-cmd.c (cmdpy_destroyer): Update.
> ---
>  gdb/ChangeLog         | 17 +++++++++++++++++
>  gdb/cli/cli-decode.c  | 21 +++++++++++----------
>  gdb/cli/cli-decode.h  |  6 +++---
>  gdb/cli/cli-script.c  |  2 +-
>  gdb/cli/cli-setshow.c |  2 +-
>  gdb/cli/cli-setshow.h |  2 +-
>  gdb/command.h         |  8 ++++----
>  gdb/guile/scm-cmd.c   |  2 +-
>  gdb/python/py-cmd.c   |  2 +-
>  9 files changed, 40 insertions(+), 22 deletions(-)
> 
> diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
> index a08cc45..622cf5f 100644
> --- a/gdb/cli/cli-decode.c
> +++ b/gdb/cli/cli-decode.c
> @@ -93,8 +93,8 @@ set_cmd_prefix (struct cmd_list_element *c, struct cmd_list_element **list)
>  }
>  
>  static void
> -print_help_for_command (struct cmd_list_element *c, char *prefix, int recurse,
> -			struct ui_file *stream);
> +print_help_for_command (struct cmd_list_element *c, const char *prefix,
> +			int recurse, struct ui_file *stream);
>  
>  
>  /* Set the callback function for the specified command.  For each both
> @@ -330,7 +330,7 @@ struct cmd_list_element *
>  add_prefix_cmd (const char *name, enum command_class class,
>  		cmd_cfunc_ftype *fun,
>  		char *doc, struct cmd_list_element **prefixlist,
> -		char *prefixname, int allow_unknown,
> +		const char *prefixname, int allow_unknown,
>  		struct cmd_list_element **list)
>  {
>    struct cmd_list_element *c = add_cmd (name, class, fun, doc, list);
> @@ -357,7 +357,8 @@ add_prefix_cmd (const char *name, enum command_class class,
>  struct cmd_list_element *
>  add_abbrev_prefix_cmd (const char *name, enum command_class class,
>  		       cmd_cfunc_ftype *fun, char *doc,
> -		       struct cmd_list_element **prefixlist, char *prefixname,
> +		       struct cmd_list_element **prefixlist,
> +		       const char *prefixname,
>  		       int allow_unknown, struct cmd_list_element **list)
>  {
>    struct cmd_list_element *c = add_cmd (name, class, fun, doc, list);
> @@ -883,7 +884,7 @@ add_com_alias (const char *name, const char *oldname, enum command_class class,
>  void 
>  apropos_cmd (struct ui_file *stream, 
>  	     struct cmd_list_element *commandlist,
> -	     struct re_pattern_buffer *regex, char *prefix)
> +	     struct re_pattern_buffer *regex, const char *prefix)
>  {
>    struct cmd_list_element *c;
>    int returnvalue;
> @@ -1011,7 +1012,7 @@ help_cmd (const char *command, struct ui_file *stream)
>   * If you call this routine with a class >= 0, it recurses.
>   */
>  void
> -help_list (struct cmd_list_element *list, char *cmdtype,
> +help_list (struct cmd_list_element *list, const char *cmdtype,
>  	   enum command_class class, struct ui_file *stream)
>  {
>    int len;
> @@ -1145,8 +1146,8 @@ print_doc_line (struct ui_file *stream, char *str)
>     If RECURSE is non-zero, also print one-line descriptions
>     of all prefixed subcommands.  */
>  static void
> -print_help_for_command (struct cmd_list_element *c, char *prefix, int recurse,
> -			struct ui_file *stream)
> +print_help_for_command (struct cmd_list_element *c, const char *prefix,
> +			int recurse, struct ui_file *stream)
>  {
>    fprintf_filtered (stream, "%s%s -- ", prefix, c->name);
>    print_doc_line (stream, c->doc);
> @@ -1179,7 +1180,7 @@ print_help_for_command (struct cmd_list_element *c, char *prefix, int recurse,
>   */
>  void
>  help_cmd_list (struct cmd_list_element *list, enum command_class class,
> -	       char *prefix, int recurse, struct ui_file *stream)
> +	       const char *prefix, int recurse, struct ui_file *stream)
>  {
>    struct cmd_list_element *c;
>  
> @@ -1505,7 +1506,7 @@ lookup_cmd (const char **line, struct cmd_list_element *list, char *cmdtype,
>           values.  */
>        int local_allow_unknown = (last_list ? last_list->allow_unknown :
>  				 allow_unknown);
> -      char *local_cmdtype = last_list ? last_list->prefixname : cmdtype;
> +      const char *local_cmdtype = last_list ? last_list->prefixname : cmdtype;
>        struct cmd_list_element *local_list =
>  	(last_list ? *(last_list->prefixlist) : list);
>  
> diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
> index 9cd887d..1ddafd3 100644
> --- a/gdb/cli/cli-decode.h
> +++ b/gdb/cli/cli-decode.h
> @@ -156,7 +156,7 @@ struct cmd_list_element
>         plus any others needed to get to it.  Should end in a space.
>         It is used before the word "command" in describing the
>         commands reached through this prefix.  */
> -    char *prefixname;
> +    const char *prefixname;
>  
>      /* The prefix command of this command.  */
>      struct cmd_list_element *prefix;
> @@ -212,14 +212,14 @@ struct cmd_list_element
>    };
>  
>  extern void help_cmd_list (struct cmd_list_element *, enum command_class,
> -			   char *, int, struct ui_file *);
> +			   const char *, int, struct ui_file *);
>  
>  /* Functions that implement commands about CLI commands.  */
>  
>  extern void help_cmd (const char *, struct ui_file *);
>  
>  extern void apropos_cmd (struct ui_file *, struct cmd_list_element *,
> -                         struct re_pattern_buffer *, char *);
> +                         struct re_pattern_buffer *, const char *);
>  
>  /* Used to mark commands that don't do anything.  If we just leave the
>     function field NULL, the command is interpreted as a help topic, or
> diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
> index 7dc1ba4..1147073 100644
> --- a/gdb/cli/cli-script.c
> +++ b/gdb/cli/cli-script.c
> @@ -1707,7 +1707,7 @@ show_user_1 (struct cmd_list_element *c, const char *prefix, const char *name,
>  
>    if (c->prefixlist != NULL)
>      {
> -      char *prefixname = c->prefixname;
> +      const char *prefixname = c->prefixname;
>  
>        for (c = *c->prefixlist; c != NULL; c = c->next)
>  	if (c->class == class_user || c->prefixlist != NULL)
> diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
> index 61ff085..0f936a4 100644
> --- a/gdb/cli/cli-setshow.c
> +++ b/gdb/cli/cli-setshow.c
> @@ -670,7 +670,7 @@ do_show_command (const char *arg, int from_tty, struct cmd_list_element *c)
>  /* Show all the settings in a list of show commands.  */
>  
>  void
> -cmd_show_list (struct cmd_list_element *list, int from_tty, char *prefix)
> +cmd_show_list (struct cmd_list_element *list, int from_tty, const char *prefix)
>  {
>    struct cleanup *showlist_chain;
>    struct ui_out *uiout = current_uiout;
> diff --git a/gdb/cli/cli-setshow.h b/gdb/cli/cli-setshow.h
> index 7619bad..38a8148 100644
> --- a/gdb/cli/cli-setshow.h
> +++ b/gdb/cli/cli-setshow.h
> @@ -29,6 +29,6 @@ extern void do_show_command (const char *arg, int from_tty,
>  			     struct cmd_list_element *c);
>  
>  extern void cmd_show_list (struct cmd_list_element *list, int from_tty,
> -			   char *prefix);
> +			   const char *prefix);
>  
>  #endif /* !defined (CLI_SETSHOW_H) */
> diff --git a/gdb/command.h b/gdb/command.h
> index 1d63d2b..e676237 100644
> --- a/gdb/command.h
> +++ b/gdb/command.h
> @@ -134,7 +134,7 @@ extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class
>  						cmd_cfunc_ftype *fun,
>  						char *,
>  						struct cmd_list_element **,
> -						char *, int,
> +						const char *, int,
>  						struct cmd_list_element **);
>  
>  extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
> @@ -142,7 +142,7 @@ extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
>  						       cmd_cfunc_ftype *fun,
>  						       char *,
>  						       struct cmd_list_element
> -						       **, char *, int,
> +						       **, const char *, int,
>  						       struct cmd_list_element
>  						       **);
>  
> @@ -224,7 +224,7 @@ extern VEC (char_ptr) *complete_on_enum (const char *const *enumlist,
>  
>  /* Functions that implement commands about CLI commands.  */
>  
> -extern void help_list (struct cmd_list_element *, char *,
> +extern void help_list (struct cmd_list_element *, const char *,
>  		       enum command_class, struct ui_file *);
>  
>  /* Method for show a set/show variable's VALUE on FILE.  If this
> @@ -374,7 +374,7 @@ extern void
>  
>  /* Do a "show" command for each thing on a command list.  */
>  
> -extern void cmd_show_list (struct cmd_list_element *, int, char *);
> +extern void cmd_show_list (struct cmd_list_element *, int, const char *);
>  
>  /* Used everywhere whenever at least one parameter is required and
>     none is specified.  */
> diff --git a/gdb/guile/scm-cmd.c b/gdb/guile/scm-cmd.c
> index 57979c8..7b8e3a5 100644
> --- a/gdb/guile/scm-cmd.c
> +++ b/gdb/guile/scm-cmd.c
> @@ -291,7 +291,7 @@ cmdscm_destroyer (struct cmd_list_element *self, void *context)
>    /* We allocated the name, doc string, and perhaps the prefix name.  */
>    xfree ((char *) self->name);
>    xfree (self->doc);
> -  xfree (self->prefixname);
> +  xfree ((char *) self->prefixname);
>  }
>  
>  /* Called by gdb to invoke the command.  */
> diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c
> index 524ba5a..f8f1f05 100644
> --- a/gdb/python/py-cmd.c
> +++ b/gdb/python/py-cmd.c
> @@ -109,7 +109,7 @@ cmdpy_destroyer (struct cmd_list_element *self, void *context)
>       name.  */
>    xfree ((char *) self->name);
>    xfree (self->doc);
> -  xfree (self->prefixname);
> +  xfree ((char *) self->prefixname);
>  
>    do_cleanups (cleanup);
>  }
>
  

Patch

diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index a08cc45..622cf5f 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -93,8 +93,8 @@  set_cmd_prefix (struct cmd_list_element *c, struct cmd_list_element **list)
 }
 
 static void
-print_help_for_command (struct cmd_list_element *c, char *prefix, int recurse,
-			struct ui_file *stream);
+print_help_for_command (struct cmd_list_element *c, const char *prefix,
+			int recurse, struct ui_file *stream);
 
 
 /* Set the callback function for the specified command.  For each both
@@ -330,7 +330,7 @@  struct cmd_list_element *
 add_prefix_cmd (const char *name, enum command_class class,
 		cmd_cfunc_ftype *fun,
 		char *doc, struct cmd_list_element **prefixlist,
-		char *prefixname, int allow_unknown,
+		const char *prefixname, int allow_unknown,
 		struct cmd_list_element **list)
 {
   struct cmd_list_element *c = add_cmd (name, class, fun, doc, list);
@@ -357,7 +357,8 @@  add_prefix_cmd (const char *name, enum command_class class,
 struct cmd_list_element *
 add_abbrev_prefix_cmd (const char *name, enum command_class class,
 		       cmd_cfunc_ftype *fun, char *doc,
-		       struct cmd_list_element **prefixlist, char *prefixname,
+		       struct cmd_list_element **prefixlist,
+		       const char *prefixname,
 		       int allow_unknown, struct cmd_list_element **list)
 {
   struct cmd_list_element *c = add_cmd (name, class, fun, doc, list);
@@ -883,7 +884,7 @@  add_com_alias (const char *name, const char *oldname, enum command_class class,
 void 
 apropos_cmd (struct ui_file *stream, 
 	     struct cmd_list_element *commandlist,
-	     struct re_pattern_buffer *regex, char *prefix)
+	     struct re_pattern_buffer *regex, const char *prefix)
 {
   struct cmd_list_element *c;
   int returnvalue;
@@ -1011,7 +1012,7 @@  help_cmd (const char *command, struct ui_file *stream)
  * If you call this routine with a class >= 0, it recurses.
  */
 void
-help_list (struct cmd_list_element *list, char *cmdtype,
+help_list (struct cmd_list_element *list, const char *cmdtype,
 	   enum command_class class, struct ui_file *stream)
 {
   int len;
@@ -1145,8 +1146,8 @@  print_doc_line (struct ui_file *stream, char *str)
    If RECURSE is non-zero, also print one-line descriptions
    of all prefixed subcommands.  */
 static void
-print_help_for_command (struct cmd_list_element *c, char *prefix, int recurse,
-			struct ui_file *stream)
+print_help_for_command (struct cmd_list_element *c, const char *prefix,
+			int recurse, struct ui_file *stream)
 {
   fprintf_filtered (stream, "%s%s -- ", prefix, c->name);
   print_doc_line (stream, c->doc);
@@ -1179,7 +1180,7 @@  print_help_for_command (struct cmd_list_element *c, char *prefix, int recurse,
  */
 void
 help_cmd_list (struct cmd_list_element *list, enum command_class class,
-	       char *prefix, int recurse, struct ui_file *stream)
+	       const char *prefix, int recurse, struct ui_file *stream)
 {
   struct cmd_list_element *c;
 
@@ -1505,7 +1506,7 @@  lookup_cmd (const char **line, struct cmd_list_element *list, char *cmdtype,
          values.  */
       int local_allow_unknown = (last_list ? last_list->allow_unknown :
 				 allow_unknown);
-      char *local_cmdtype = last_list ? last_list->prefixname : cmdtype;
+      const char *local_cmdtype = last_list ? last_list->prefixname : cmdtype;
       struct cmd_list_element *local_list =
 	(last_list ? *(last_list->prefixlist) : list);
 
diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
index 9cd887d..1ddafd3 100644
--- a/gdb/cli/cli-decode.h
+++ b/gdb/cli/cli-decode.h
@@ -156,7 +156,7 @@  struct cmd_list_element
        plus any others needed to get to it.  Should end in a space.
        It is used before the word "command" in describing the
        commands reached through this prefix.  */
-    char *prefixname;
+    const char *prefixname;
 
     /* The prefix command of this command.  */
     struct cmd_list_element *prefix;
@@ -212,14 +212,14 @@  struct cmd_list_element
   };
 
 extern void help_cmd_list (struct cmd_list_element *, enum command_class,
-			   char *, int, struct ui_file *);
+			   const char *, int, struct ui_file *);
 
 /* Functions that implement commands about CLI commands.  */
 
 extern void help_cmd (const char *, struct ui_file *);
 
 extern void apropos_cmd (struct ui_file *, struct cmd_list_element *,
-                         struct re_pattern_buffer *, char *);
+                         struct re_pattern_buffer *, const char *);
 
 /* Used to mark commands that don't do anything.  If we just leave the
    function field NULL, the command is interpreted as a help topic, or
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 7dc1ba4..1147073 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -1707,7 +1707,7 @@  show_user_1 (struct cmd_list_element *c, const char *prefix, const char *name,
 
   if (c->prefixlist != NULL)
     {
-      char *prefixname = c->prefixname;
+      const char *prefixname = c->prefixname;
 
       for (c = *c->prefixlist; c != NULL; c = c->next)
 	if (c->class == class_user || c->prefixlist != NULL)
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index 61ff085..0f936a4 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -670,7 +670,7 @@  do_show_command (const char *arg, int from_tty, struct cmd_list_element *c)
 /* Show all the settings in a list of show commands.  */
 
 void
-cmd_show_list (struct cmd_list_element *list, int from_tty, char *prefix)
+cmd_show_list (struct cmd_list_element *list, int from_tty, const char *prefix)
 {
   struct cleanup *showlist_chain;
   struct ui_out *uiout = current_uiout;
diff --git a/gdb/cli/cli-setshow.h b/gdb/cli/cli-setshow.h
index 7619bad..38a8148 100644
--- a/gdb/cli/cli-setshow.h
+++ b/gdb/cli/cli-setshow.h
@@ -29,6 +29,6 @@  extern void do_show_command (const char *arg, int from_tty,
 			     struct cmd_list_element *c);
 
 extern void cmd_show_list (struct cmd_list_element *list, int from_tty,
-			   char *prefix);
+			   const char *prefix);
 
 #endif /* !defined (CLI_SETSHOW_H) */
diff --git a/gdb/command.h b/gdb/command.h
index 1d63d2b..e676237 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -134,7 +134,7 @@  extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class
 						cmd_cfunc_ftype *fun,
 						char *,
 						struct cmd_list_element **,
-						char *, int,
+						const char *, int,
 						struct cmd_list_element **);
 
 extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
@@ -142,7 +142,7 @@  extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
 						       cmd_cfunc_ftype *fun,
 						       char *,
 						       struct cmd_list_element
-						       **, char *, int,
+						       **, const char *, int,
 						       struct cmd_list_element
 						       **);
 
@@ -224,7 +224,7 @@  extern VEC (char_ptr) *complete_on_enum (const char *const *enumlist,
 
 /* Functions that implement commands about CLI commands.  */
 
-extern void help_list (struct cmd_list_element *, char *,
+extern void help_list (struct cmd_list_element *, const char *,
 		       enum command_class, struct ui_file *);
 
 /* Method for show a set/show variable's VALUE on FILE.  If this
@@ -374,7 +374,7 @@  extern void
 
 /* Do a "show" command for each thing on a command list.  */
 
-extern void cmd_show_list (struct cmd_list_element *, int, char *);
+extern void cmd_show_list (struct cmd_list_element *, int, const char *);
 
 /* Used everywhere whenever at least one parameter is required and
    none is specified.  */
diff --git a/gdb/guile/scm-cmd.c b/gdb/guile/scm-cmd.c
index 57979c8..7b8e3a5 100644
--- a/gdb/guile/scm-cmd.c
+++ b/gdb/guile/scm-cmd.c
@@ -291,7 +291,7 @@  cmdscm_destroyer (struct cmd_list_element *self, void *context)
   /* We allocated the name, doc string, and perhaps the prefix name.  */
   xfree ((char *) self->name);
   xfree (self->doc);
-  xfree (self->prefixname);
+  xfree ((char *) self->prefixname);
 }
 
 /* Called by gdb to invoke the command.  */
diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c
index 524ba5a..f8f1f05 100644
--- a/gdb/python/py-cmd.c
+++ b/gdb/python/py-cmd.c
@@ -109,7 +109,7 @@  cmdpy_destroyer (struct cmd_list_element *self, void *context)
      name.  */
   xfree ((char *) self->name);
   xfree (self->doc);
-  xfree (self->prefixname);
+  xfree ((char *) self->prefixname);
 
   do_cleanups (cleanup);
 }