From 56b45ca2e8476a12b8122e24c11f9300e403983e Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 3 Oct 2020 22:34:38 +0000 Subject: [PATCH] Fix off-by-one in menu logic If a menu was all text except for the last element, the menu would incorrectly be classifed as all text, and citem would be pinned to the first element. Fixes: 14a96571363c95a7f8fc8a2198a0ac36c963a9f3 ("Use partial_range to store newmenu_item pointer/length") --- similar/main/newmenu.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/similar/main/newmenu.cpp b/similar/main/newmenu.cpp index 80d367bdf..d269e65b3 100644 --- a/similar/main/newmenu.cpp +++ b/similar/main/newmenu.cpp @@ -1447,9 +1447,9 @@ static void newmenu_create_structure( newmenu *menu ) if (menu->citem != -1) { if (menu->citem < 0 ) menu->citem = 0; - const std::size_t nitems = menu->items.size() - 1; - if (menu->citem > nitems) - menu->citem = nitems; + const std::size_t nitems = menu->items.size(); + if (menu->citem > nitems - 1) + menu->citem = nitems - 1; menu->dblclick_flag = 1; uint_fast32_t i = 0;