summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/spicy.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/spicy.c b/src/spicy.c
index 92de251..c502428 100644
--- a/src/spicy.c
+++ b/src/spicy.c
@@ -1818,14 +1818,18 @@ static void setup_terminal(gboolean reset)
return;
#ifdef HAVE_TERMIOS_H
- static struct termios saved_tios;
struct termios tios;
+ static struct termios saved_tios;
+ static bool saved = false;
- if (reset)
+ if (reset) {
+ if (!saved)
+ return;
tios = saved_tios;
- else {
+ } else {
tcgetattr(stdinfd, &tios);
saved_tios = tios;
+ saved = true;
tios.c_lflag &= ~(ICANON | ECHO);
}