diff options
| -rw-r--r-- | include/line/mode.h | 1 | ||||
| -rw-r--r-- | src/line/mode.cc | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/include/line/mode.h b/include/line/mode.h index 85836c7..be0a453 100644 --- a/include/line/mode.h +++ b/include/line/mode.h @@ -9,6 +9,7 @@ namespace ov4 { inline termios attr; +inline bool raw_enabled = false; void disable_raw(); void enable_raw(); diff --git a/src/line/mode.cc b/src/line/mode.cc index 18c7347..2ef470d 100644 --- a/src/line/mode.cc +++ b/src/line/mode.cc @@ -14,11 +14,15 @@ namespace ov4 void disable_raw() { + raw_enabled = false; tcsetattr(STDIN_FILENO, TCSAFLUSH, &attr); } void enable_raw() { + if (raw_enabled = false) return; + + raw_enabled = true; termios attr_raw; tcgetattr(STDIN_FILENO, &attr); tcgetattr(STDIN_FILENO, &attr_raw); |
