[12/13] constify command docs

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

Commit Message

Tom Tromey July 22, 2014, 6:55 p.m. UTC
  This makes the command "doc" parameter const.

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

	* cli/cli-decode.c (add_cmd, add_prefix_cmd)
	(add_abbrev_prefix_cmd, add_set_or_show_cmd, add_info)
	(add_info_alias, add_com): Make "doc" const.
	(print_doc_line): Make "str" const.
	(delete_cmd): Update.
	* cli/cli-decode.h (struct cmd_list_element) <doc>: Now const.
	(print_doc_line): Update.
	* cli/cli-script.c (document_command): Update.
	* command.h (add_cmd, add_prefix_cmd, add_abbrev_prefix_cmd)
	(add_com, add_info, add_info_alias): Update.
	* guile/scm-cmd.c (cmdscm_destroyer): Update.
	* python/py-cmd.c (cmdpy_destroyer): Update.
---
 gdb/ChangeLog        | 15 +++++++++++++++
 gdb/cli/cli-decode.c | 20 ++++++++++----------
 gdb/cli/cli-decode.h |  4 ++--
 gdb/cli/cli-script.c | 13 ++++++++-----
 gdb/command.h        | 13 +++++++------
 gdb/guile/scm-cmd.c  |  2 +-
 gdb/python/py-cmd.c  |  2 +-
 gdb/value.c          |  2 +-
 8 files changed, 45 insertions(+), 26 deletions(-)
  

Comments

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

Thanks,
Pedro Alves

On 07/22/2014 07:55 PM, Tom Tromey wrote:
> This makes the command "doc" parameter const.
> 
> 2014-07-22  Tom Tromey  <tromey@redhat.com>
> 
> 	* cli/cli-decode.c (add_cmd, add_prefix_cmd)
> 	(add_abbrev_prefix_cmd, add_set_or_show_cmd, add_info)
> 	(add_info_alias, add_com): Make "doc" const.
> 	(print_doc_line): Make "str" const.
> 	(delete_cmd): Update.
> 	* cli/cli-decode.h (struct cmd_list_element) <doc>: Now const.
> 	(print_doc_line): Update.
> 	* cli/cli-script.c (document_command): Update.
> 	* command.h (add_cmd, add_prefix_cmd, add_abbrev_prefix_cmd)
> 	(add_com, add_info, add_info_alias): Update.
> 	* guile/scm-cmd.c (cmdscm_destroyer): Update.
> 	* python/py-cmd.c (cmdpy_destroyer): Update.
> ---
>  gdb/ChangeLog        | 15 +++++++++++++++
>  gdb/cli/cli-decode.c | 20 ++++++++++----------
>  gdb/cli/cli-decode.h |  4 ++--
>  gdb/cli/cli-script.c | 13 ++++++++-----
>  gdb/command.h        | 13 +++++++------
>  gdb/guile/scm-cmd.c  |  2 +-
>  gdb/python/py-cmd.c  |  2 +-
>  gdb/value.c          |  2 +-
>  8 files changed, 45 insertions(+), 26 deletions(-)
> 
> diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
> index 622cf5f..819aea8 100644
> --- a/gdb/cli/cli-decode.c
> +++ b/gdb/cli/cli-decode.c
> @@ -183,7 +183,7 @@ set_cmd_completer (struct cmd_list_element *cmd, completer_ftype *completer)
>  
>  struct cmd_list_element *
>  add_cmd (const char *name, enum command_class class, cmd_cfunc_ftype *fun,
> -	 char *doc, struct cmd_list_element **list)
> +	 const char *doc, struct cmd_list_element **list)
>  {
>    struct cmd_list_element *c
>      = (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
> @@ -329,7 +329,7 @@ add_alias_cmd (const char *name, const char *oldname, enum command_class class,
>  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,
> +		const char *doc, struct cmd_list_element **prefixlist,
>  		const char *prefixname, int allow_unknown,
>  		struct cmd_list_element **list)
>  {
> @@ -356,7 +356,7 @@ 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,
> +		       cmd_cfunc_ftype *fun, const char *doc,
>  		       struct cmd_list_element **prefixlist,
>  		       const char *prefixname,
>  		       int allow_unknown, struct cmd_list_element **list)
> @@ -398,7 +398,7 @@ add_set_or_show_cmd (const char *name,
>  		     enum command_class class,
>  		     var_types var_type,
>  		     void *var,
> -		     char *doc,
> +		     const char *doc,
>  		     struct cmd_list_element **list)
>  {
>    struct cmd_list_element *c = add_cmd (name, class, NULL, doc, list);
> @@ -805,7 +805,7 @@ delete_cmd (const char *name, struct cmd_list_element **list,
>  	  if (iter->hookee_post)
>  	    iter->hookee_post->hook_post = 0;
>  	  if (iter->doc && iter->doc_allocated)
> -	    xfree (iter->doc);
> +	    xfree ((char *) iter->doc);
>  	  *posthook = iter->hook_post;
>  	  *posthookee = iter->hookee_post;
>  
> @@ -846,7 +846,7 @@ delete_cmd (const char *name, struct cmd_list_element **list,
>  /* Add an element to the list of info subcommands.  */
>  
>  struct cmd_list_element *
> -add_info (const char *name, cmd_cfunc_ftype *fun, char *doc)
> +add_info (const char *name, cmd_cfunc_ftype *fun, const char *doc)
>  {
>    return add_cmd (name, no_class, fun, doc, &infolist);
>  }
> @@ -854,7 +854,7 @@ add_info (const char *name, cmd_cfunc_ftype *fun, char *doc)
>  /* Add an alias to the list of info subcommands.  */
>  
>  struct cmd_list_element *
> -add_info_alias (const char *name, char *oldname, int abbrev_flag)
> +add_info_alias (const char *name, const char *oldname, int abbrev_flag)
>  {
>    return add_alias_cmd (name, oldname, 0, abbrev_flag, &infolist);
>  }
> @@ -863,7 +863,7 @@ add_info_alias (const char *name, char *oldname, int abbrev_flag)
>  
>  struct cmd_list_element *
>  add_com (const char *name, enum command_class class, cmd_cfunc_ftype *fun,
> -	 char *doc)
> +	 const char *doc)
>  {
>    return add_cmd (name, class, fun, doc, &cmdlist);
>  }
> @@ -1111,11 +1111,11 @@ help_all (struct ui_file *stream)
>  
>  /* Print only the first line of STR on STREAM.  */
>  void
> -print_doc_line (struct ui_file *stream, char *str)
> +print_doc_line (struct ui_file *stream, const char *str)
>  {
>    static char *line_buffer = 0;
>    static int line_size;
> -  char *p;
> +  const char *p;
>  
>    if (!line_buffer)
>      {
> diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
> index 1ddafd3..865d4a0 100644
> --- a/gdb/cli/cli-decode.h
> +++ b/gdb/cli/cli-decode.h
> @@ -128,7 +128,7 @@ struct cmd_list_element
>         First line is brief documentation; remaining lines form, with it,
>         the full documentation.  First line should end with a period.
>         Entire string should also end with a period, not a newline.  */
> -    char *doc;
> +    const char *doc;

>  
>      /* For set/show commands.  A method for printing the output to the
>         specified stream.  */
> @@ -229,7 +229,7 @@ extern void not_just_help_class_command (char *arg, int from_tty);
>  
>  /* Exported to cli/cli-setshow.c */
>  
> -extern void print_doc_line (struct ui_file *, char *);
> +extern void print_doc_line (struct ui_file *, const char *);
>  
>  extern const char * const auto_boolean_enums[];
>  
> diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
> index 1147073..fbcc2dd 100644
> --- a/gdb/cli/cli-script.c
> +++ b/gdb/cli/cli-script.c
> @@ -1611,24 +1611,27 @@ document_command (char *comname, int from_tty)
>    doclines = read_command_lines (tmpbuf, from_tty, 0, 0, 0);
>  
>    if (c->doc)
> -    xfree (c->doc);
> +    xfree ((char *) c->doc);
>  
>    {
>      struct command_line *cl1;
>      int len = 0;
> +    char *doc;
>  
>      for (cl1 = doclines; cl1; cl1 = cl1->next)
>        len += strlen (cl1->line) + 1;
>  
> -    c->doc = (char *) xmalloc (len + 1);
> -    *c->doc = 0;
> +    doc = (char *) xmalloc (len + 1);
> +    *doc = 0;
>  
>      for (cl1 = doclines; cl1; cl1 = cl1->next)
>        {
> -	strcat (c->doc, cl1->line);
> +	strcat (doc, cl1->line);
>  	if (cl1->next)
> -	  strcat (c->doc, "\n");
> +	  strcat (doc, "\n");
>        }
> +
> +    c->doc = doc;
>    }
>  
>    free_command_lines (&doclines);
> diff --git a/gdb/command.h b/gdb/command.h
> index e676237..4ac3bfb 100644
> --- a/gdb/command.h
> +++ b/gdb/command.h
> @@ -123,7 +123,7 @@ extern int valid_user_defined_cmd_name_p (const char *name);
>  
>  extern struct cmd_list_element *add_cmd (const char *, enum command_class,
>  					 cmd_cfunc_ftype *fun,
> -					 char *,
> +					 const char *,
>  					 struct cmd_list_element **);
>  
>  extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
> @@ -132,7 +132,7 @@ extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
>  
>  extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class,
>  						cmd_cfunc_ftype *fun,
> -						char *,
> +						const char *,
>  						struct cmd_list_element **,
>  						const char *, int,
>  						struct cmd_list_element **);
> @@ -140,7 +140,7 @@ extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class
>  extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
>  						       enum command_class,
>  						       cmd_cfunc_ftype *fun,
> -						       char *,
> +						       const char *,
>  						       struct cmd_list_element
>  						       **, const char *, int,
>  						       struct cmd_list_element
> @@ -205,16 +205,17 @@ extern int lookup_cmd_composition (const char *text,
>  
>  extern struct cmd_list_element *add_com (const char *, enum command_class,
>  					 cmd_cfunc_ftype *fun,
> -					 char *);
> +					 const char *);
>  
>  extern struct cmd_list_element *add_com_alias (const char *, const char *,
>  					       enum command_class, int);
>  
>  extern struct cmd_list_element *add_info (const char *,
>  					  cmd_cfunc_ftype *fun,
> -					  char *);
> +					  const char *);
>  
> -extern struct cmd_list_element *add_info_alias (const char *, char *, int);
> +extern struct cmd_list_element *add_info_alias (const char *, const char *,
> +						int);
>  
>  extern VEC (char_ptr) *complete_on_cmdlist (struct cmd_list_element *,
>  					    const char *, const char *, int);
> diff --git a/gdb/guile/scm-cmd.c b/gdb/guile/scm-cmd.c
> index 7b8e3a5..54bed2c 100644
> --- a/gdb/guile/scm-cmd.c
> +++ b/gdb/guile/scm-cmd.c
> @@ -290,7 +290,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 ((char *) self->doc);
>    xfree ((char *) self->prefixname);
>  }
>  
> diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c
> index f8f1f05..21f2a20 100644
> --- a/gdb/python/py-cmd.c
> +++ b/gdb/python/py-cmd.c
> @@ -108,7 +108,7 @@ cmdpy_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 ((char *) self->doc);
>    xfree ((char *) self->prefixname);
>  
>    do_cleanups (cleanup);
> diff --git a/gdb/value.c b/gdb/value.c
> index 29abe5f..83a2854 100644
> --- a/gdb/value.c
> +++ b/gdb/value.c
> @@ -2312,7 +2312,7 @@ static void
>  function_destroyer (struct cmd_list_element *self, void *ignore)
>  {
>    xfree ((char *) self->name);
> -  xfree (self->doc);
> +  xfree ((char *) self->doc);
>  }
>  
>  /* Add a new internal function.  NAME is the name of the function; DOC
>
  

Patch

diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index 622cf5f..819aea8 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -183,7 +183,7 @@  set_cmd_completer (struct cmd_list_element *cmd, completer_ftype *completer)
 
 struct cmd_list_element *
 add_cmd (const char *name, enum command_class class, cmd_cfunc_ftype *fun,
-	 char *doc, struct cmd_list_element **list)
+	 const char *doc, struct cmd_list_element **list)
 {
   struct cmd_list_element *c
     = (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
@@ -329,7 +329,7 @@  add_alias_cmd (const char *name, const char *oldname, enum command_class class,
 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,
+		const char *doc, struct cmd_list_element **prefixlist,
 		const char *prefixname, int allow_unknown,
 		struct cmd_list_element **list)
 {
@@ -356,7 +356,7 @@  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,
+		       cmd_cfunc_ftype *fun, const char *doc,
 		       struct cmd_list_element **prefixlist,
 		       const char *prefixname,
 		       int allow_unknown, struct cmd_list_element **list)
@@ -398,7 +398,7 @@  add_set_or_show_cmd (const char *name,
 		     enum command_class class,
 		     var_types var_type,
 		     void *var,
-		     char *doc,
+		     const char *doc,
 		     struct cmd_list_element **list)
 {
   struct cmd_list_element *c = add_cmd (name, class, NULL, doc, list);
@@ -805,7 +805,7 @@  delete_cmd (const char *name, struct cmd_list_element **list,
 	  if (iter->hookee_post)
 	    iter->hookee_post->hook_post = 0;
 	  if (iter->doc && iter->doc_allocated)
-	    xfree (iter->doc);
+	    xfree ((char *) iter->doc);
 	  *posthook = iter->hook_post;
 	  *posthookee = iter->hookee_post;
 
@@ -846,7 +846,7 @@  delete_cmd (const char *name, struct cmd_list_element **list,
 /* Add an element to the list of info subcommands.  */
 
 struct cmd_list_element *
-add_info (const char *name, cmd_cfunc_ftype *fun, char *doc)
+add_info (const char *name, cmd_cfunc_ftype *fun, const char *doc)
 {
   return add_cmd (name, no_class, fun, doc, &infolist);
 }
@@ -854,7 +854,7 @@  add_info (const char *name, cmd_cfunc_ftype *fun, char *doc)
 /* Add an alias to the list of info subcommands.  */
 
 struct cmd_list_element *
-add_info_alias (const char *name, char *oldname, int abbrev_flag)
+add_info_alias (const char *name, const char *oldname, int abbrev_flag)
 {
   return add_alias_cmd (name, oldname, 0, abbrev_flag, &infolist);
 }
@@ -863,7 +863,7 @@  add_info_alias (const char *name, char *oldname, int abbrev_flag)
 
 struct cmd_list_element *
 add_com (const char *name, enum command_class class, cmd_cfunc_ftype *fun,
-	 char *doc)
+	 const char *doc)
 {
   return add_cmd (name, class, fun, doc, &cmdlist);
 }
@@ -1111,11 +1111,11 @@  help_all (struct ui_file *stream)
 
 /* Print only the first line of STR on STREAM.  */
 void
-print_doc_line (struct ui_file *stream, char *str)
+print_doc_line (struct ui_file *stream, const char *str)
 {
   static char *line_buffer = 0;
   static int line_size;
-  char *p;
+  const char *p;
 
   if (!line_buffer)
     {
diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
index 1ddafd3..865d4a0 100644
--- a/gdb/cli/cli-decode.h
+++ b/gdb/cli/cli-decode.h
@@ -128,7 +128,7 @@  struct cmd_list_element
        First line is brief documentation; remaining lines form, with it,
        the full documentation.  First line should end with a period.
        Entire string should also end with a period, not a newline.  */
-    char *doc;
+    const char *doc;
 
     /* For set/show commands.  A method for printing the output to the
        specified stream.  */
@@ -229,7 +229,7 @@  extern void not_just_help_class_command (char *arg, int from_tty);
 
 /* Exported to cli/cli-setshow.c */
 
-extern void print_doc_line (struct ui_file *, char *);
+extern void print_doc_line (struct ui_file *, const char *);
 
 extern const char * const auto_boolean_enums[];
 
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 1147073..fbcc2dd 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -1611,24 +1611,27 @@  document_command (char *comname, int from_tty)
   doclines = read_command_lines (tmpbuf, from_tty, 0, 0, 0);
 
   if (c->doc)
-    xfree (c->doc);
+    xfree ((char *) c->doc);
 
   {
     struct command_line *cl1;
     int len = 0;
+    char *doc;
 
     for (cl1 = doclines; cl1; cl1 = cl1->next)
       len += strlen (cl1->line) + 1;
 
-    c->doc = (char *) xmalloc (len + 1);
-    *c->doc = 0;
+    doc = (char *) xmalloc (len + 1);
+    *doc = 0;
 
     for (cl1 = doclines; cl1; cl1 = cl1->next)
       {
-	strcat (c->doc, cl1->line);
+	strcat (doc, cl1->line);
 	if (cl1->next)
-	  strcat (c->doc, "\n");
+	  strcat (doc, "\n");
       }
+
+    c->doc = doc;
   }
 
   free_command_lines (&doclines);
diff --git a/gdb/command.h b/gdb/command.h
index e676237..4ac3bfb 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -123,7 +123,7 @@  extern int valid_user_defined_cmd_name_p (const char *name);
 
 extern struct cmd_list_element *add_cmd (const char *, enum command_class,
 					 cmd_cfunc_ftype *fun,
-					 char *,
+					 const char *,
 					 struct cmd_list_element **);
 
 extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
@@ -132,7 +132,7 @@  extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
 
 extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class,
 						cmd_cfunc_ftype *fun,
-						char *,
+						const char *,
 						struct cmd_list_element **,
 						const char *, int,
 						struct cmd_list_element **);
@@ -140,7 +140,7 @@  extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class
 extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
 						       enum command_class,
 						       cmd_cfunc_ftype *fun,
-						       char *,
+						       const char *,
 						       struct cmd_list_element
 						       **, const char *, int,
 						       struct cmd_list_element
@@ -205,16 +205,17 @@  extern int lookup_cmd_composition (const char *text,
 
 extern struct cmd_list_element *add_com (const char *, enum command_class,
 					 cmd_cfunc_ftype *fun,
-					 char *);
+					 const char *);
 
 extern struct cmd_list_element *add_com_alias (const char *, const char *,
 					       enum command_class, int);
 
 extern struct cmd_list_element *add_info (const char *,
 					  cmd_cfunc_ftype *fun,
-					  char *);
+					  const char *);
 
-extern struct cmd_list_element *add_info_alias (const char *, char *, int);
+extern struct cmd_list_element *add_info_alias (const char *, const char *,
+						int);
 
 extern VEC (char_ptr) *complete_on_cmdlist (struct cmd_list_element *,
 					    const char *, const char *, int);
diff --git a/gdb/guile/scm-cmd.c b/gdb/guile/scm-cmd.c
index 7b8e3a5..54bed2c 100644
--- a/gdb/guile/scm-cmd.c
+++ b/gdb/guile/scm-cmd.c
@@ -290,7 +290,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 ((char *) self->doc);
   xfree ((char *) self->prefixname);
 }
 
diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c
index f8f1f05..21f2a20 100644
--- a/gdb/python/py-cmd.c
+++ b/gdb/python/py-cmd.c
@@ -108,7 +108,7 @@  cmdpy_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 ((char *) self->doc);
   xfree ((char *) self->prefixname);
 
   do_cleanups (cleanup);
diff --git a/gdb/value.c b/gdb/value.c
index 29abe5f..83a2854 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -2312,7 +2312,7 @@  static void
 function_destroyer (struct cmd_list_element *self, void *ignore)
 {
   xfree ((char *) self->name);
-  xfree (self->doc);
+  xfree ((char *) self->doc);
 }
 
 /* Add a new internal function.  NAME is the name of the function; DOC