From: Tom de Vries Date: Mon, 22 May 2023 14:44:56 +0000 (+0200) Subject: [gdb/tui] Fix buglet in tui_update_variables X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=927dd36dba2d806f4e9dc68cc1975b616f4e0b57;p=binutils-gdb.git [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. --- 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);