diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2021-05-17 14:01:20 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2021-05-17 14:01:20 -0400 |
commit | 1be99b11f8d1a8fd4049fee1c0eeaef73b3e6d1d (patch) | |
tree | 01897c887dc34c9be242b85d95adce5a5787a96e /gdb | |
parent | 9985872497e2b8c86424fcb97cd9a065f406a5c5 (diff) | |
download | gdb-1be99b11f8d1a8fd4049fee1c0eeaef73b3e6d1d.zip gdb-1be99b11f8d1a8fd4049fee1c0eeaef73b3e6d1d.tar.gz gdb-1be99b11f8d1a8fd4049fee1c0eeaef73b3e6d1d.tar.bz2 |
gdb: add cmd_list_element::is_alias
Add the cmd_list_element::is_alias helper to check whether a command is
an alias. I find it easier to understand the intention in:
if (c->is_alias ())
than
if (c->alias_target != nullptr)
Change all the spots that are reading alias_target just to compare it to
NULL/nullptr to use is_alias instead.
gdb/ChangeLog:
* cli/cli-decode.h (cmd_list_element) <is_alias>: New, use it.
Change-Id: I26ed56f99ee47fe884fdfedf87016501631693ce
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/cli/cli-decode.c | 18 | ||||
-rw-r--r-- | gdb/cli/cli-decode.h | 4 | ||||
-rw-r--r-- | gdb/cli/cli-setshow.c | 4 | ||||
-rw-r--r-- | gdb/unittests/command-def-selftests.c | 2 |
5 files changed, 20 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e430506..b39879f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2021-05-17 Simon Marchi <simon.marchi@polymtl.ca> + * cli/cli-decode.h (cmd_list_element) <is_alias>: New, use it. + +2021-05-17 Simon Marchi <simon.marchi@polymtl.ca> + * cli/cli-decode.h (cmd_list_element) <cmd_pointer>: Rename to... <alias_target>: ... this. diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c index ec579ff..29b4ed2 100644 --- a/gdb/cli/cli-decode.c +++ b/gdb/cli/cli-decode.c @@ -75,7 +75,7 @@ lookup_cmd_with_subcommands (cmd_list_element **subcommands, { /* If we found an alias, we must return the aliased command. */ - return p->alias_target ? p->alias_target : p; + return p->is_alias () ? p->alias_target : p; } q = lookup_cmd_with_subcommands (subcommands, *(p->subcommands)); @@ -405,7 +405,7 @@ static void do_prefix_cmd (const char *args, int from_tty, struct cmd_list_element *c) { /* Look past all aliases. */ - while (c->alias_target != nullptr) + while (c->is_alias ()) c = c->alias_target; help_list (*c->subcommands, c->prefixname ().c_str (), @@ -948,7 +948,7 @@ delete_cmd (const char *name, struct cmd_list_element **list, /* If this command was an alias, remove it from the list of aliases. */ - if (iter->alias_target) + if (iter->is_alias ()) { struct cmd_list_element **prevp = &iter->alias_target->aliases; struct cmd_list_element *a = *prevp; @@ -1043,7 +1043,7 @@ static void fput_alias_definition_styled (struct cmd_list_element *c, struct ui_file *stream) { - gdb_assert (c->alias_target != nullptr); + gdb_assert (c->is_alias ()); fputs_filtered (" alias ", stream); fput_command_name_styled (c, stream); fprintf_filtered (stream, " = "); @@ -1146,7 +1146,7 @@ apropos_cmd (struct ui_file *stream, /* Walk through the commands. */ for (c=commandlist;c;c=c->next) { - if (c->alias_target != nullptr) + if (c->is_alias ()) { /* Command aliases/abbreviations are skipped to ensure we print the doc of a command only once, when encountering the aliased @@ -1487,7 +1487,7 @@ help_cmd_list (struct cmd_list_element *list, enum command_class theclass, continue; } - if (c->alias_target != nullptr && theclass != class_alias) + if (c->is_alias () && theclass != class_alias) { /* Do not show an alias, unless specifically showing the list of aliases: for all other classes, an alias is @@ -1509,7 +1509,7 @@ help_cmd_list (struct cmd_list_element *list, enum command_class theclass, list of sub-commands of the aliased command. */ print_help_for_command (c, - recurse && (theclass != class_alias || c->alias_target == nullptr), + recurse && (theclass != class_alias || !c->is_alias ()), stream); continue; } @@ -1672,7 +1672,7 @@ lookup_cmd_1 (const char **text, struct cmd_list_element *clist, *text += len; - if (found->alias_target) + if (found->is_alias ()) { /* We drop the alias (abbreviation) in favor of the command it is pointing to. If the alias is deprecated, though, we need to @@ -2044,7 +2044,7 @@ lookup_cmd_composition_1 (const char *text, return 0; else { - if ((*cmd)->alias_target) + if ((*cmd)->is_alias ()) { /* If the command was actually an alias, we note that an alias was used (by assigning *ALIAS) and we set *CMD. */ diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h index 68a9b85..8caf602 100644 --- a/gdb/cli/cli-decode.h +++ b/gdb/cli/cli-decode.h @@ -79,6 +79,10 @@ struct cmd_list_element For non-prefix commands, return an empty string. */ std::string prefixname () const; + /* Return true if this command is an alias of another command. */ + bool is_alias () const + { return this->alias_target != nullptr; } + /* Points to next command in this list. */ struct cmd_list_element *next = nullptr; diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c index cb821c5..7e93a70 100644 --- a/gdb/cli/cli-setshow.c +++ b/gdb/cli/cli-setshow.c @@ -740,7 +740,7 @@ cmd_show_list (struct cmd_list_element *list, int from_tty) /* If we find a prefix, run its list, prefixing our output by its prefix (with "show " skipped). */ - if (list->subcommands && list->alias_target == nullptr) + if (list->subcommands && !list->is_alias ()) { ui_out_emit_tuple optionlist_emitter (uiout, "optionlist"); std::string prefixname = list->prefixname (); @@ -750,7 +750,7 @@ cmd_show_list (struct cmd_list_element *list, int from_tty) uiout->field_string ("prefix", new_prefix); cmd_show_list (*list->subcommands, from_tty); } - else if (list->theclass != no_set_class && list->alias_target == nullptr) + else if (list->theclass != no_set_class && !list->is_alias ()) { ui_out_emit_tuple option_emitter (uiout, "option"); diff --git a/gdb/unittests/command-def-selftests.c b/gdb/unittests/command-def-selftests.c index 123667d..4a6b678 100644 --- a/gdb/unittests/command-def-selftests.c +++ b/gdb/unittests/command-def-selftests.c @@ -155,7 +155,7 @@ traverse_command_structure (struct cmd_list_element **list, { /* If this command has subcommands and is not an alias, traverse the subcommands. */ - if (c->subcommands != NULL && c->alias_target == nullptr) + if (c->subcommands != NULL && !c->is_alias ()) { /* Recursively call ourselves on the subcommand list, passing the right prefix in. */ |