Using an interactive shell in Emacs for Windows you might enconter a bug that causes the shell process to terminate when you signal and eof (See point 7.6 here)
If, for example, you try:
/Program Files/Emacs/ cat >newfile this is a test file being created with the cat command directly from the user input in shell.
Now, by pressing C-d (or C-c C-d) the input should finish here, and the prompt return, but what happens instead, is that the shell process terminates. Same thing occurs if you try to M-x comint-send-eof or if you pick an eof signal from the menu.
I had noticed that before (in my Windows emac, only not under Unix), but last night I found that an eof sign could be generated by typing C-q C-z.
I choose to set an alias and bind it to some keys in my .emacs to overcome the issue:
(defalias 'eof (read-kbd-macro "C-q C-z RET")) (global-set-key [M-S-f8] 'eof)
Of course a better solution would be to advice the comint-send-eof to procede accordingly when in emacs for Windows. Anybody knows how to do it, or mind to share a stronger fix than this hack? Any feedback will be appreciated.
Actually there’s no need to set an alias, as I learned that this is also possible and more straight-forward:
(global-set-key [(meta shift f8)] '(lambda () (interactive) (execute-kbd-macro((read-kbd-macro "C-q C-z RET")))))