This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 12/13] constify command docs
- From: Pedro Alves <palves at redhat dot com>
- To: Tom Tromey <tromey at redhat dot com>, gdb-patches at sourceware dot org
- Date: Thu, 24 Jul 2014 03:07:24 +0100
- Subject: Re: [PATCH 12/13] constify command docs
- Authentication-results: sourceware.org; auth=none
- References: <1406055319-26380-1-git-send-email-tromey at redhat dot com> <1406055319-26380-13-git-send-email-tromey at redhat dot com>
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
>