- attempt to determine if tty_wait_synch() is called during the ending
dialogs due to an interrupt, and not re-display the previous message
at the wrong time
- also, "msg_window display anomaly" fix was missing code to still treat ^P
properly while in a prompt
}
if(c == '\020') { /* ctrl-P */
if (iflags.prevmsg_window) {
+ int sav = ttyDisplay->inread;
+ ttyDisplay->inread = 0;
(void) tty_doprev_message();
+ ttyDisplay->inread = sav;
tty_clear_nhwindow(WIN_MESSAGE);
cw->maxcol = cw->maxrow;
addtopl(query);
q = lowc(readchar());
if (q == '\020') { /* ctrl-P */
if (iflags.prevmsg_window) {
+ int sav = ttyDisplay->inread;
+ ttyDisplay->inread = 0;
(void) tty_doprev_message();
+ ttyDisplay->inread = sav;
tty_clear_nhwindow(WIN_MESSAGE);
cw->maxcol = cw->maxrow;
addtopl(prompt);
} else {
- if(!doprev) (void) tty_doprev_message(); /* need two initially */
+ if(!doprev)
+ (void) tty_doprev_message(); /* need two initially */
(void) tty_doprev_message();
doprev = 1;
}
if(ttyDisplay->inmore) {
addtopl("--More--");
(void) fflush(stdout);
- } else if(ttyDisplay->inread) {
+ } else if(ttyDisplay->inread > program_state.gameover) {
/* this can only happen if we were reading and got interrupted */
ttyDisplay->toplin = 3;
/* do this twice; 1st time gets the Quit? message again */