diff options
author | Tom Tromey <tom@tromey.com> | 2018-04-18 16:10:59 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-05-04 15:58:07 -0600 |
commit | 7a2c85f25977ff9b11728ba85b1417538e22c246 (patch) | |
tree | 941f548ed63c2bd4099110d92ff7d4089d88a9d1 /gdb/testsuite/gdb.base/define.exp | |
parent | 295dc222a712b700d9afa7e2462a68b866b120e1 (diff) | |
download | gdb-7a2c85f25977ff9b11728ba85b1417538e22c246.zip gdb-7a2c85f25977ff9b11728ba85b1417538e22c246.tar.gz gdb-7a2c85f25977ff9b11728ba85b1417538e22c246.tar.bz2 |
Allow defining a user command inside a user command
PR gdb/11750 concerns defining a command inside a user commnad, like:
define outer
define inner
echo hi\n
end
end
This patch adds this capability to gdb.
ChangeLog
2018-05-04 Tom Tromey <tom@tromey.com>
PR gdb/11750:
* cli/cli-script.h (enum command_control_type) <define_control>:
New constant.
* cli/cli-script.c (multi_line_command_p): Handle define_control.
(build_command_line, execute_control_command_1)
(process_next_line): Likewise.
(do_define_command): New function, extracted from define_command.
(define_command): Use it.
testsuite/ChangeLog
2018-05-04 Tom Tromey <tom@tromey.com>
PR gdb/11750:
* gdb.base/define.exp: Test defining a user command inside a user
command.
* gdb.base/commands.exp (define_if_without_arg_test): Test "define".
Diffstat (limited to 'gdb/testsuite/gdb.base/define.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/define.exp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/define.exp b/gdb/testsuite/gdb.base/define.exp index f82a9ef..e4064b7 100644 --- a/gdb/testsuite/gdb.base/define.exp +++ b/gdb/testsuite/gdb.base/define.exp @@ -298,5 +298,13 @@ gdb_test_multiple "set prompt \\(gdb\\) " "reset gdb_prompt" { } } +gdb_test_multiple "define do-define" "" { + -re "Type commands for definition of \"do-define\".\r\nEnd with a line saying just \"end\".\r\n>$" { + gdb_test "define do-printit\necho here\\n\nend\nend" "" "define do-define" + } +} +gdb_test_no_output "do-define" "invoke do-define" +gdb_test "do-printit" "here" "invoke do-printit" + gdb_exit return 0 |