program would access freed memory if charging caused a ring to explode
arriving on Valkyrie quest final level could produce impossible warning
"mkstairs: placing stairs up on molten lava at <68,13>"
+if the repeat command was used after prefix+command, only the command part got
+ repeated
curses: 'msg_window' option wasn't functional for curses unless the binary
also included tty support
}
static void
-show_direction_keys(winid win, /* should specify a window which is
- * using a fixed-width font... */
- char centerchar, /* '.' or '@' or ' ' */
- boolean nodiag)
+show_direction_keys(
+ winid win, /* should specify a window which is using a fixed-width font */
+ char centerchar, /* '.' or '@' or ' ' */
+ boolean nodiag)
{
char buf[BUFSZ];
} else if (g.in_doagain) {
g.command_count = g.last_command_count;
} else if (foo && foo == cmd_from_func(do_repeat)) {
- // g.command_count will be set again when we
- // re-enter with g.in_doagain set true
+ /* g.command_count will be set again when we
+ re-enter with g.in_doagain set true */
g.command_count = g.last_command_count;
} else {
+ uchar c = (g.shead > 0) ? (uchar) g.saveq[g.shead - 1] & 0xff : 0;
+
g.last_command_count = g.command_count;
- savech(0); /* reset input queue */
+ /* reset saveq unless it holds a prefix */
+ if (!c || (g.Cmd.commands[c]->flags & PREFIXCMD) == 0)
+ savech(0);
savech((char) foo);
}
the return value so we should be safe using `void' unconditionally */
/*ARGUSED*/
void
-hangup(int sig_unused UNUSED) /* called as signal() handler, so sent
- at least one arg */
+hangup(
+ int sig_unused UNUSED) /* called as signal() handler, so sent
+ * at least one arg */
{
if (g.program_state.exiting)
g.program_state.in_moveloop = 0;