tty logic error using menuitem_invert_test()

menuitem_invert_test() is intended for invert-all/invert-page/
select-all/select-page but was being called for group accelerators.
In the #wizidentify menu, the 'all' choice specifies ^I as a group
accelerator but that stopped working on tty when it recently became
flagged as skip-invert.
This commit is contained in:
PatR
2022-04-02 01:00:09 -07:00
parent eea362249c
commit fd355d6f6c
2 changed files with 10 additions and 6 deletions
+3
View File
@@ -1150,6 +1150,9 @@ tty: redraw unexplored locations as S_unexplored rather than <space> after
map has been partially overwritten by popup menu or text display map has been partially overwritten by popup menu or text display
tty: previous change resulted in remnants of previous level being shown on tty: previous change resulted in remnants of previous level being shown on
new level after level change when S_unexplored is <space> new level after level change when S_unexplored is <space>
tty: for #wizidentify, using ^I as an unseen group accelerator to pick the
'all' choice was incorrectly checking menuitem_invert_test() and
failing, so the 'all' choice wasn't being toggled on if user typed ^I
Unix: after lua changes to Makefiles, 'make spotless' for dat subdirectory Unix: after lua changes to Makefiles, 'make spotless' for dat subdirectory
left some generated data files which should have been deleted left some generated data files which should have been deleted
Windows: new tile additions in win/share did not trigger the creation of a new Windows: new tile additions in win/share did not trigger the creation of a new
+7 -6
View File
@@ -74,7 +74,7 @@ extern void msmsg(const char *, ...);
*/ */
#define HUPSKIP() \ #define HUPSKIP() \
do { \ do { \
if (g.program_state.done_hup) { \ if (g.program_state.done_hup) { \
morc = '\033'; \ morc = '\033'; \
return; \ return; \
} \ } \
@@ -82,7 +82,7 @@ extern void msmsg(const char *, ...);
/* morc=ESC - in case we bypass xwaitforspace() which sets that */ /* morc=ESC - in case we bypass xwaitforspace() which sets that */
#define HUPSKIP_RESULT(RES) \ #define HUPSKIP_RESULT(RES) \
do { \ do { \
if (g.program_state.done_hup) \ if (g.program_state.done_hup) \
return (RES); \ return (RES); \
} while (0) } while (0)
#else /* !HANGUP_HANDLING */ #else /* !HANGUP_HANDLING */
@@ -1821,8 +1821,9 @@ invert_all_on_page(
for (n = 0, curr = page_start; curr != page_end; n++, curr = curr->next) { for (n = 0, curr = page_start; curr != page_end; n++, curr = curr->next) {
if (!curr->identifier.a_void /* not selectable */ if (!curr->identifier.a_void /* not selectable */
|| (acc != 0 && curr->gselector != acc) /* not group 'acc' */ || (acc ? curr->gselector != acc /* skip if not group 'acc' */
|| !menuitem_invert_test(0, curr->itemflags, curr->selected)) /* inverting all rather than a group; skip if flagged */
: !menuitem_invert_test(0, curr->itemflags, curr->selected)))
continue; continue;
if (curr->selected) { if (curr->selected) {
@@ -1867,8 +1868,8 @@ invert_all(
limits to bulk toggling (assumes that an item won't be limits to bulk toggling (assumes that an item won't be
both in a group and also subject to bulk restrictions) */ both in a group and also subject to bulk restrictions) */
if (on_curr_page || !curr->identifier.a_void if (on_curr_page || !curr->identifier.a_void
|| (acc != 0 && curr->gselector != acc) || (acc ? curr->gselector != acc
|| !menuitem_invert_test(0, curr->itemflags, curr->selected)) : !menuitem_invert_test(0, curr->itemflags, curr->selected)))
continue; continue;
if (curr->selected) { if (curr->selected) {