From 927dd36dba2d806f4e9dc68cc1975b616f4e0b57 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 22 May 2023 16:44:56 +0200 Subject: [PATCH] [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. --- gdb/tui/tui-win.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index 6710b3e17e5..7abd1e225b9 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); -- 2.30.2