summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--linux/getch2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/linux/getch2.c b/linux/getch2.c
index b302e2d59b..621adf5a84 100644
--- a/linux/getch2.c
+++ b/linux/getch2.c
@@ -199,6 +199,8 @@ found:
return code;
}
+static int getch2_status=0;
+
void getch2_enable(){
struct termios tio_new;
#if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__)
@@ -219,9 +221,11 @@ struct termios tio_new;
#else
ioctl(0,TCSETS,&tio_new);
#endif
+ getch2_status=1;
}
void getch2_disable(){
+ if(!getch2_status) return; // already disabled / never enabled
#if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__)
tcsetattr(0,TCSANOW,&tio_orig);
#elif defined(__FreeBSD__) || defined(__OpenBSD__)
@@ -229,5 +233,6 @@ void getch2_disable(){
#else
ioctl(0,TCSETS,&tio_orig);
#endif
+ getch2_status=0;
}