From http://woz.gs/tim/zork/frotz-2.43-flush.tar.gz diff -urN frotz-2.43/src/dumb/dumb_input.c frotz-2.43-flush/src/dumb/dumb_input.c --- frotz-2.43/src/dumb/dumb_input.c 2002-10-27 02:44:10.000000000 +0100 +++ frotz-2.43-flush/src/dumb/dumb_input.c 2003-12-08 00:23:59.000000000 +0100 @@ -54,7 +54,7 @@ ; static float speed = 1; -static bool do_more_prompts = TRUE; +static bool do_more_prompts = FALSE; enum input_type { INPUT_CHAR, @@ -203,6 +203,7 @@ fputs(prompt, stdout); else dumb_show_prompt(show_cursor, (timeout ? "tTD" : ")>}")[type]); + fflush(NULL); getline(s); if ((s[0] != '\\') || ((s[1] != '\0') && !islower(s[1]))) { /* Is not a command line. */ @@ -385,10 +386,11 @@ char buf[INPUT_BUFFER_SIZE], prompt[INPUT_BUFFER_SIZE]; FILE *fp; - sprintf(prompt, "Please enter a filename [%s]: ", default_name); + sprintf(prompt, "Please enter a filename [%s]:\n", default_name); dumb_read_misc_line(buf, prompt); if (strlen(buf) > MAX_FILE_NAME) { printf("Filename too long\n"); + fflush(NULL); return FALSE; } @@ -398,7 +400,7 @@ if ((flag == FILE_SAVE || flag == FILE_SAVE_AUX || flag == FILE_RECORD) && ((fp = fopen(file_name, "rb")) != NULL)) { fclose (fp); - dumb_read_misc_line(buf, "Overwrite existing file? "); + dumb_read_misc_line(buf, "Overwrite existing file?\n"); return(tolower(buf[0]) == 'y'); } return TRUE; diff -urN frotz-2.43/src/dumb/dumb_output.c frotz-2.43-flush/src/dumb/dumb_output.c --- frotz-2.43/src/dumb/dumb_output.c 2002-10-27 03:15:56.000000000 +0100 +++ frotz-2.43-flush/src/dumb/dumb_output.c 2003-12-08 00:23:58.000000000 +0100 @@ -294,6 +294,7 @@ show_cell(dumb_row(r)[c]); } putchar('\n'); + fflush(NULL); } /* Print the part of the cursor row before the cursor. */