blob: 5befd5066a644f766e964834a5b1438c8426b771 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
%CBREAK = 0x00000002
%ECHO = 0x00000008
%TIOCGETP = 0x40067408
%TIOCSETP = 0x80067409
def cbreak ()
set_cbreak(%TRUE)
end
def cooked ()
set_cbreak(%FALSE)
end
def set_cbreak (on)
tty = "\0" * 256
$stdin.ioctl(%TIOCGETP, tty)
ttys = tty.unpack("C4 S")
if on
ttys[4] |= %CBREAK
ttys[4] &= ~%ECHO
else
ttys[4] &= ~%CBREAK
ttys[4] |= %ECHO
end
tty = ttys.pack("C4 S")
$stdin.ioctl(%TIOCSETP, tty)
end
cbreak();
print("this is no-echo line: ");
readline().print
cooked();
print("this is echo line: ");
readline()
|