diff options
-rw-r--r-- | gdb/testsuite/gdb.tui/secondary-prompt.exp | 38 | ||||
-rw-r--r-- | gdb/top.c | 6 |
2 files changed, 44 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.tui/secondary-prompt.exp b/gdb/testsuite/gdb.tui/secondary-prompt.exp new file mode 100644 index 0000000..99fedaa --- /dev/null +++ b/gdb/testsuite/gdb.tui/secondary-prompt.exp @@ -0,0 +1,38 @@ +# Copyright 2023 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +require allow_tui_tests + +tuiterm_env + +Term::clean_restart 24 80 + +if {![Term::enter_tui]} { + unsupported "TUI not supported" + return +} + +# Define a macro. +send_gdb "define foo\n" +send_gdb "bar\n" +send_gdb "end\n" + +# Wait for the last secondary prompt to appear, followed by the gdb prompt. +Term::wait_for ">end" + +# Regression test for PR tui/30636. Make sure the secondary prompts are not +# overwritten. +Term::check_region_contents "secondary prompt not overwritten" 0 19 80 2 \ + "^>bar *\r\n>end *$" @@ -77,6 +77,7 @@ #if defined(TUI) # include "tui/tui.h" +# include "tui/tui-io.h" #endif #ifndef O_NOCTTY @@ -958,6 +959,11 @@ gdb_readline_wrapper_line (gdb::unique_xmalloc_ptr<char> &&line) saved_after_char_processing_hook = after_char_processing_hook; after_char_processing_hook = NULL; +#if defined(TUI) + if (tui_active) + tui_inject_newline_into_command_window (); +#endif + /* Prevent parts of the prompt from being redisplayed if annotations are enabled, and readline's state getting out of sync. We'll reinstall the callback handler, which puts the terminal in raw |