mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-29 07:58:28 +00:00
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
This commit is contained in:
parent
e8963bd757
commit
d79194419b
@ -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')
|
||||
|
Loading…
Reference in New Issue
Block a user