diff --git a/C/iopreds.c b/C/iopreds.c index 682ff3ac1..e2190b395 100644 --- a/C/iopreds.c +++ b/C/iopreds.c @@ -908,7 +908,7 @@ ReadlineGetc(int sno) char *cptr = Prompt, ch; if ((Stream[FileAliases[2].alias_stream].status & Tty_Stream_f) && - Stream[FileAliases[2].alias_stream].u.file.name == Stream[sno].u.file.name) { + Stream[FileAliases[0].alias_stream].u.file.name == Stream[sno].u.file.name) { /* don't just output the prompt */ while ((ch = *cptr++) != '\0') { console_count_output_char(ch,Stream+StdErrStream,StdErrStream); diff --git a/C/scanner.c b/C/scanner.c index 1514387a2..a8e2b1041 100644 --- a/C/scanner.c +++ b/C/scanner.c @@ -1428,6 +1428,10 @@ fast_tokenizer(void) *charp++ = ch; my_fgetch(); } + if (chtype[ch] == EF) { + kind = eot_tok; + break; + } ++len; if (charp > (char *)AuxSp - 1024) { /* Not enough space to read in the string. */ diff --git a/pl/boot.yap b/pl/boot.yap index f6b3876b0..d0df11f88 100644 --- a/pl/boot.yap +++ b/pl/boot.yap @@ -526,9 +526,11 @@ repeat :- '$repeat'. '$another' :- '$format'(user_error," ? ",[]), '$get0'(user_input,C), - ( C==59 -> - '$skip'(user_input,10),fail; - C==10 -> '$format'(user_error,"~n", []) + ( C== 0'; -> '$skip'(user_input,10), fail + ; + C== 10 -> '$format'(user_error,"~n", []) + ; + C== -1 -> halt ; '$skip'(user_input,10), '$ask_again_for_another' ).