summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2019-09-25 20:33:01 +1000
committerMaxime Coste <mawww@kakoune.org>2019-09-25 20:33:01 +1000
commit9c2d2ad694635ca53ae4e197ac3a3a1116557525 (patch)
tree3d61e084f41abd55709d1eed7ffee81f835abda5 /src
parentde3ff78b22a37f628f5208668f9aed02a7de6606 (diff)
Do not set O_NONBLOCK on stdin
It is not necessary, and impacts also writing to stdout, leading to broken display on old ncurses versions. Fixes #3087
Diffstat (limited to 'src')
-rw-r--r--src/ncurses_ui.cc6
-rw-r--r--src/ncurses_ui.hh1
2 files changed, 0 insertions, 7 deletions
diff --git a/src/ncurses_ui.cc b/src/ncurses_ui.cc
index 13859088..e628ad9d 100644
--- a/src/ncurses_ui.cc
+++ b/src/ncurses_ui.cc
@@ -361,7 +361,6 @@ NCursesUI::NCursesUI()
}},
m_assistant(assistant_clippy)
{
- m_original_stdin_flags = fcntl(STDIN_FILENO, F_GETFL, 0);
tcgetattr(STDIN_FILENO, &m_original_termios);
initscr();
@@ -386,7 +385,6 @@ NCursesUI::~NCursesUI()
m_palette.set_change_colors(false);
endwin();
tcsetattr(STDIN_FILENO, TCSAFLUSH, &m_original_termios);
- fcntl(STDIN_FILENO, F_SETFL, m_original_stdin_flags);
set_signal_handler(SIGWINCH, SIG_DFL);
set_signal_handler(SIGCONT, SIG_DFL);
set_signal_handler(SIGTSTP, SIG_DFL);
@@ -406,11 +404,9 @@ void NCursesUI::suspend()
sigaddset(&unblock_sigtstp, SIGTSTP);
sigprocmask(SIG_UNBLOCK, &unblock_sigtstp, &old_mask);
tcsetattr(STDIN_FILENO, TCSAFLUSH, &m_original_termios);
- fcntl(STDIN_FILENO, F_SETFL, m_original_stdin_flags);
raise(SIGTSTP); // suspend here
- m_original_stdin_flags = fcntl(STDIN_FILENO, F_GETFL, 0);
tcsetattr(STDIN_FILENO, TCSAFLUSH, &m_original_termios);
set_signal_handler(SIGTSTP, current);
sigprocmask(SIG_SETMASK, &old_mask, nullptr);
@@ -424,8 +420,6 @@ void NCursesUI::suspend()
void NCursesUI::set_raw_mode() const
{
- fcntl(STDIN_FILENO, F_SETFL, m_original_stdin_flags | O_NONBLOCK);
-
termios attr = m_original_termios;
attr.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);
attr.c_oflag &= ~OPOST;
diff --git a/src/ncurses_ui.hh b/src/ncurses_ui.hh
index 296d6ca3..3a7b406a 100644
--- a/src/ncurses_ui.hh
+++ b/src/ncurses_ui.hh
@@ -121,7 +121,6 @@ private:
DisplayCoord m_dimensions;
termios m_original_termios{};
- int m_original_stdin_flags;
void set_raw_mode() const;