summaryrefslogtreecommitdiff
path: root/src/RawMode.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/RawMode.zig')
-rw-r--r--src/RawMode.zig25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/RawMode.zig b/src/RawMode.zig
index f657ac8..67c5203 100644
--- a/src/RawMode.zig
+++ b/src/RawMode.zig
@@ -1,4 +1,3 @@
1const system = std.os.system;
2const std = @import("std"); 1const std = @import("std");
3 2
4const RawMode = @This(); 3const RawMode = @This();
@@ -13,17 +12,23 @@ pub fn init() !RawMode {
13 12
14 var raw = orig; 13 var raw = orig;
15 14
16 raw.iflag &= ~@as( 15 raw.iflag.BRKINT = false;
17 system.tcflag_t, 16 raw.iflag.ICRNL = false;
18 system.BRKINT | system.ICRNL | system.INPCK | system.ISTRIP | system.IXON, 17 raw.iflag.INPCK = false;
19 ); 18 raw.iflag.ISTRIP = false;
20 raw.lflag &= ~@as(system.tcflag_t, system.ECHO | system.ICANON | system.IEXTEN | system.ISIG); 19 raw.iflag.IXON = false;
21 raw.oflag &= ~@as(system.tcflag_t, system.OPOST);
22 20
23 raw.cflag |= system.CS8; 21 raw.lflag.ECHO = false;
22 raw.lflag.ICANON = false;
23 raw.lflag.IEXTEN = false;
24 raw.lflag.ISIG = false;
24 25
25 raw.cc[system.V.MIN] = 0; 26 raw.oflag.OPOST = false;
26 raw.cc[system.V.TIME] = 1; 27
28 raw.cflag.CSIZE = .CS8;
29
30 raw.cc[@intFromEnum(std.posix.V.MIN)] = 0;
31 raw.cc[@intFromEnum(std.posix.V.TIME)] = 1;
27 32
28 try std.os.tcsetattr(std.os.STDIN_FILENO, .FLUSH, raw); 33 try std.os.tcsetattr(std.os.STDIN_FILENO, .FLUSH, raw);
29 34