^A/#repeat vs extended commands

Fix '#repeat' for tty; both it and ^A can repeat an extended command.

Fix both for curses; they can repeat an extended command instead of
just repeating the initial '#' to start getting an extended command.

X11 (tested), Qt (tested), and probably Windows GUI (not tested)
behave the same as before:  ^A (or #repeat) after an extended command
just repeats the # to run the dialog to get an extended command.

I hope this introduces fewer bugs than it fixes but I don't think I'd
bet on that....
This commit is contained in:
PatR
2022-04-16 01:52:12 -07:00
parent 4485515872
commit 31affa0722
8 changed files with 116 additions and 30 deletions

View File

@@ -581,7 +581,15 @@ int NetHackQtExtCmdRequestor::get()
}
if (result() == xcmdNone)
exec();
return result() - 1;
int ret = result() - 1;
if (!::g.in_doagain) {
if (ret >= 0)
savech_extcmd(::extcmdlist[ret].ef_txt, FALSE);
else
savech(0);
}
return ret;
}
// Enable only buttons that match the current prompt string