[PATCHv2] Fix multi-line strings in TuiWindow.write
Hannes Domani
ssbssa@yahoo.de
Fri Nov 20 00:01:07 GMT 2020
Currently multi-line strings are all written to the first line.
Since tui_copy_source_line sets the text variable to the start of the
next line, the check for newline has to be done with the previous character.
gdb/ChangeLog:
2020-11-19 Hannes Domani <ssbssa@yahoo.de>
* python/py-tui.c (tui_py_window::output): Fix multi-line strings.
---
v2:
- Don't break multiple TuiWindow.write calls without newline characters.
---
gdb/python/py-tui.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gdb/python/py-tui.c b/gdb/python/py-tui.c
index 95c71f1d2d..306bd7b801 100644
--- a/gdb/python/py-tui.c
+++ b/gdb/python/py-tui.c
@@ -203,13 +203,13 @@ tui_py_window::output (const char *text)
{
wmove (handle.get (), cursor_y + 1, cursor_x + 1);
+ const char *prev_text = text;
std::string line = tui_copy_source_line (&text, 0, 0,
vwidth - cursor_x, 0);
tui_puts (line.c_str (), handle.get ());
- if (*text == '\n')
+ if (text > prev_text && (text[-1] == '\n' || text[-1] == '\r'))
{
- ++text;
++cursor_y;
cursor_x = 0;
}
--
2.29.2
More information about the Gdb-patches
mailing list