diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-09-08 23:16:06 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-09-08 23:16:06 -0700 |
commit | 4056f9da2f6828f652e12561d69420468b735547 (patch) | |
tree | 544cac8a4929e85292bf023c6520d67bc637a9a4 /linenoise | |
parent | 0eeb2089e6fa8781d5016d333d837c87e17f4a19 (diff) | |
download | txr-4056f9da2f6828f652e12561d69420468b735547.tar.gz txr-4056f9da2f6828f652e12561d69420468b735547.tar.bz2 txr-4056f9da2f6828f652e12561d69420468b735547.zip |
linenoise: don't flush tty input when changing mode.
* linenoise/linenoise.c (enable_raw_mode,
disable_raw_mode): Use TCSANOW instead of TCSAFLUSH
to change tty settings without flushing input.
TCSAFLUSH could discard type-ahead-buffered keystrokes.
Diffstat (limited to 'linenoise')
-rw-r--r-- | linenoise/linenoise.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/linenoise/linenoise.c b/linenoise/linenoise.c index bc27e0c5..4477d8fd 100644 --- a/linenoise/linenoise.c +++ b/linenoise/linenoise.c @@ -169,7 +169,7 @@ static int enable_raw_mode(lino_t *ls) { raw.c_cc[VMIN] = 1; raw.c_cc[VTIME] = 0; /* 1 byte, no timer */ /* put terminal in raw mode after flushing */ - if (tcsetattr(ls->ifd,TCSAFLUSH,&raw) < 0) goto fatal; + if (tcsetattr(ls->ifd,TCSANOW,&raw) < 0) goto fatal; ls->rawmode = 1; return 0; @@ -180,7 +180,7 @@ fatal: static void disable_raw_mode(lino_t *ls) { /* Don't even check the return value as it's too late. */ - if (ls->rawmode && tcsetattr(ls->ifd,TCSAFLUSH,&ls->orig_termios) != -1) + if (ls->rawmode && tcsetattr(ls->ifd,TCSANOW,&ls->orig_termios) != -1) ls->rawmode = 0; } |