I’m using: GUI Emacs version 27.1 (SWI-Prolog version 8.2.1) on Windows.
I want to use the [user] pseudo-file but have a problem exiting it without killing the whole Prolog process. Pressing ctrl-d kills the whole Prolog process (if I do it in a new line after the clause, in the same clause I get an emacs “End of Buffer” error).
An example looks like this:
?- [user]. |: food(apple). |: % user://1 compiled 0.00 sec, 1 clauses true. ?- % halt Process prolog finished
As you can see, pressing ctrl-d closes the pseudo-file, but then goes a step further and halts the prolog process, which of course defeats the whole point.
I tried the solutions from here: How to send ctrl+D into Emacs' Eshell? - Stack Overflow
and the ctrl-q option leads to the special character to be shown in the buffer but not closing the pseudo-file (until I hit the ctrl-d without anything)
?- [user]. |: food(apple). |: ^D |: |: |: ERROR: user://1:11:0: Syntax error: Unexpected end of file |: % user://1 compiled 0.02 sec, 1 clauses true. ?- % halt Process prolog finished
I also tried whether this error happens on the WSL, and it does not.