aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/define.exp
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-04-18 16:10:59 -0600
committerTom Tromey <tom@tromey.com>2018-05-04 15:58:07 -0600
commit7a2c85f25977ff9b11728ba85b1417538e22c246 (patch)
tree941f548ed63c2bd4099110d92ff7d4089d88a9d1 /gdb/testsuite/gdb.base/define.exp
parent295dc222a712b700d9afa7e2462a68b866b120e1 (diff)
downloadgdb-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.exp8
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