Commit d7919441 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Fix reading input without echoing on MS-Windows.

 src/minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Switch stdin
 to binary mode when not echoing input.

Fixes: debbugs:17839
parent e8963bd7
......@@ -2,6 +2,7 @@
* minibuf.c (read_minibuf_noninteractive): Finish reading on '\r',
not only on '\n'.
[WINDOWSNT]: Switch stdin to binary mode when not echoing input.
* sysdep.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty)
[DOS_NT]: Implement for WINDOWSNT.
......
......@@ -22,6 +22,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
#ifdef WINDOWSNT
#include <fcntl.h> /* For O_BINARY, O_TEXT. */
#endif
#include "lisp.h"
#include "commands.h"
#include "character.h"
......@@ -240,6 +244,9 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial,
if (hide_char)
{
emacs_get_tty (fileno (stdin), &etty);
#ifdef WINDOWSNT
_setmode (fileno (stdin), O_BINARY);
#endif
suppress_echo_on_tty (fileno (stdin));
}
......@@ -278,6 +285,9 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial,
{
fprintf (stdout, "\n");
emacs_set_tty (fileno (stdin), &etty, 0);
#ifdef WINDOWSNT
_setmode (fileno (stdin), O_TEXT);
#endif
}
if (len || c == '\n' || c == '\r')
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment