[PATCH v5 3/8] GDB: Add `NUMBER' completion to `set' integer commands
Andrew Burgess
aburgess@redhat.com
Fri Jun 24 15:08:16 GMT 2022
"Maciej W. Rozycki" <macro@embecosm.com> writes:
> Fix a completion consistency issue with `set' commands accepting integer
> values and the special `unlimited' keyword:
>
> (gdb) complete print -elements
> print -elements NUMBER
> print -elements unlimited
> (gdb)
>
> vs:
>
> (gdb) complete set print elements
> set print elements unlimited
> (gdb)
>
> (there is a space entered at the end of both commands, not shown here)
> which also means if you strike <Tab> with `set print elements ' input,
> it will, annoyingly, complete to `set print elements unlimited' right
> away rather than showing a choice between `NUMBER' and `unlimited'.
>
> Add `NUMBER' then as an available completion for such `set' commands:
>
> (gdb) complete set print elements
> set print elements NUMBER
> set print elements unlimited
> (gdb)
>
> Adjust the testsuite accordingly.
I like this change, but I think we should add some documentation in
`@node Completion` that describes this new behaviour. We should probably
add a NEWS entry too.
Thanks,
Andrew
> ---
> No change from v4.
>
> New change in v4.
> ---
> gdb/cli/cli-decode.c | 2 ++
> gdb/testsuite/gdb.base/settings.exp | 8 +++++++-
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> gdb-integer-complete-number.diff
> Index: src/gdb/cli/cli-decode.c
> ===================================================================
> --- src.orig/gdb/cli/cli-decode.c
> +++ src/gdb/cli/cli-decode.c
> @@ -989,6 +989,8 @@ integer_unlimited_completer (struct cmd_
> NULL,
> };
>
> + if (*text == '\0')
> + tracker.add_completion (make_unique_xstrdup ("NUMBER"));
> complete_on_enum (tracker, keywords, text, word);
> }
>
> Index: src/gdb/testsuite/gdb.base/settings.exp
> ===================================================================
> --- src.orig/gdb/testsuite/gdb.base/settings.exp
> +++ src/gdb/testsuite/gdb.base/settings.exp
> @@ -215,8 +215,14 @@ proc test-integer {variant} {
> test_gdb_complete_none \
> "$set_cmd "
> } else {
> + test_gdb_complete_multiple "$set_cmd " "" "" {
> + "NUMBER"
> + "unlimited"
> + }
> + test_gdb_complete_none \
> + "$set_cmd 1"
> test_gdb_complete_unique \
> - "$set_cmd " \
> + "$set_cmd u" \
> "$set_cmd unlimited"
> }
>
More information about the Gdb-patches
mailing list