Do not walk off end or beginning of menu item list if every item is

disabled, GitHub issue 5255 from aizumusheer2 at gmail dot com.
This commit is contained in:
nicm
2026-06-21 17:43:47 +00:00
parent 1fc4dcb76f
commit 347baa6f3e

6
menu.c
View File

@@ -438,7 +438,7 @@ menu_key_cb(struct client *c, void *data, struct key_event *event)
break; break;
} }
} }
while (name == NULL || *name == '-') { while ((name == NULL || *name == '-') && md->choice != 0) {
md->choice--; md->choice--;
name = menu->items[md->choice].name; name = menu->items[md->choice].name;
} }
@@ -448,7 +448,7 @@ menu_key_cb(struct client *c, void *data, struct key_event *event)
case KEYC_HOME: case KEYC_HOME:
md->choice = 0; md->choice = 0;
name = menu->items[md->choice].name; name = menu->items[md->choice].name;
while (name == NULL || *name == '-') { while ((name == NULL || *name == '-') && md->choice != count - 1) {
md->choice++; md->choice++;
name = menu->items[md->choice].name; name = menu->items[md->choice].name;
} }
@@ -458,7 +458,7 @@ menu_key_cb(struct client *c, void *data, struct key_event *event)
case KEYC_END: case KEYC_END:
md->choice = count - 1; md->choice = count - 1;
name = menu->items[md->choice].name; name = menu->items[md->choice].name;
while (name == NULL || *name == '-') { while ((name == NULL || *name == '-') && md->choice != 0) {
md->choice--; md->choice--;
name = menu->items[md->choice].name; name = menu->items[md->choice].name;
} }