diff options
author | Tom de Vries <tdevries@suse.de> | 2023-05-22 16:44:56 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2023-05-22 16:44:56 +0200 |
commit | 927dd36dba2d806f4e9dc68cc1975b616f4e0b57 (patch) | |
tree | 3f73f768e51b0b82cdc9a33413edf07e7b8e1666 | |
parent | 7a8a6f57eced9a8c27a93cb5c5977a33be7b1f72 (diff) | |
download | fsf-binutils-gdb-927dd36dba2d806f4e9dc68cc1975b616f4e0b57.zip fsf-binutils-gdb-927dd36dba2d806f4e9dc68cc1975b616f4e0b57.tar.gz fsf-binutils-gdb-927dd36dba2d806f4e9dc68cc1975b616f4e0b57.tar.bz2 |
[gdb/tui] Fix buglet in tui_update_variables
I noticed a buglet in tui_update_variables:
...
entry = translate (tui_border_kind, tui_border_kind_translate_lrcorner);
if (tui_border_lrcorner != (chtype) entry->value)
{
tui_border_lrcorner = (entry->value < 0) ? ACS_LRCORNER : entry->value;
...
When assigning the new value to tui_border_lrcorner, an entry->value of -1 is
taken into account, but not when comparing to the current value of
tui_border_lrcorner.
Fix this by introducing:
...
int val = (entry->value < 0) ? ACS_LRCORNER : entry->value;
...
and using this in both comparison and assignment.
Tested on x86_64-linux.
-rw-r--r-- | gdb/tui/tui-win.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index 6710b3e..7abd1e2 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -300,9 +300,10 @@ tui_update_variables () Only check the first one. The ACS characters are determined at run time by curses terminal management. */ entry = translate (tui_border_kind, tui_border_kind_translate_lrcorner); - if (tui_border_lrcorner != (chtype) entry->value) + int val = (entry->value < 0) ? ACS_LRCORNER : entry->value; + if (tui_border_lrcorner != (chtype) val) { - tui_border_lrcorner = (entry->value < 0) ? ACS_LRCORNER : entry->value; + tui_border_lrcorner = val; need_redraw = true; } entry = translate (tui_border_kind, tui_border_kind_translate_llcorner); |