SCP: Cleanup minor remote console behaviors (stutter prompt and broken single mode command)

This commit is contained in:
Mark Pizzolato 2014-10-26 15:55:36 -07:00
parent 611a7e94f0
commit 5c45aec68f

View file

@ -705,15 +705,18 @@ for (i=(was_stepping ? sim_rem_step_line : 0);
tmxr_send_buffered_data (lpj); /* flush any buffered data */ tmxr_send_buffered_data (lpj); /* flush any buffered data */
} }
lp = &sim_rem_con_tmxr.ldsc[i]; lp = &sim_rem_con_tmxr.ldsc[i];
tmxr_linemsg (lp, "\r\nSimulator paused.\r\n"); if (!master_session)
if (sim_rem_read_timeouts[i]) tmxr_linemsg (lp, "\r\nSimulator paused.\r\n");
if (sim_rem_read_timeouts[i]) {
tmxr_linemsgf (lp, "Simulation will resume automatically if input is not received in %d seconds\n", sim_rem_read_timeouts[i]); tmxr_linemsgf (lp, "Simulation will resume automatically if input is not received in %d seconds\n", sim_rem_read_timeouts[i]);
tmxr_linemsgf (lp, "\r\n%s", sim_prompt); tmxr_linemsgf (lp, "\r\n%s", sim_prompt);
tmxr_send_buffered_data (lp); /* flush any buffered data */ tmxr_send_buffered_data (lp); /* flush any buffered data */
}
} }
else { else {
if ((c == '\n') || /* Ignore bare LF between commands (Microsoft Telnet bug) */ if ((sim_rem_buf_ptr[i] == 0) && /* At beginning of input line */
(c == '\r')) /* Ignore empty commands */ ((c == '\n') || /* Ignore bare LF between commands (Microsoft Telnet bug) */
(c == '\r'))) /* Ignore empty commands */
continue; continue;
if ((c == '\004') || (c == '\032')) { /* EOF character (^D or ^Z) ? */ if ((c == '\004') || (c == '\032')) { /* EOF character (^D or ^Z) ? */
tmxr_linemsgf (lp, "\r\nGoodbye\r\n"); tmxr_linemsgf (lp, "\r\nGoodbye\r\n");
@ -758,7 +761,7 @@ for (i=(was_stepping ? sim_rem_step_line : 0);
got_command = TRUE; got_command = TRUE;
break; break;
} }
sim_os_ms_sleep (100); sim_os_ms_sleep (50);
tmxr_poll_rx (&sim_rem_con_tmxr);/* poll input */ tmxr_poll_rx (&sim_rem_con_tmxr);/* poll input */
continue; continue;
} }
@ -943,8 +946,10 @@ for (i=(was_stepping ? sim_rem_step_line : 0);
if (cmdp && (cmdp->action == &x_continue_cmd)) if (cmdp && (cmdp->action == &x_continue_cmd))
sim_rem_single_mode[i] = TRUE; sim_rem_single_mode[i] = TRUE;
else { else {
tmxr_linemsgf (lp, "%s", sim_prompt); if (!sim_rem_single_mode[i]) {
tmxr_send_buffered_data (lp); tmxr_linemsgf (lp, "%s", sim_prompt);
tmxr_send_buffered_data (lp);
}
} }
break; break;
} }