diff options
| author | _ov4 <ov4@ov4.org> | 2026-09-23 11:33:20 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-09-23 11:33:20 +0000 |
| commit | 4c585130e84869acaa2812a3546468af26773674 (patch) | |
| tree | f71648a9856d3e03ea5851eff4125deaf5feb572 | |
| parent | 6d7ff828389456a1e73b313afe2b732eb50a207c (diff) | |
add raw_enabled guard
| -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); |
