termios 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +76 -0
- data/MANIFEST +8 -0
- data/README +86 -0
- data/TODO.ja +0 -0
- data/examples/modem_check0.rb +69 -0
- data/examples/modem_check1.rb +68 -0
- data/examples/modem_check2.rb +69 -0
- data/examples/secret_input1.rb +12 -0
- data/examples/secret_input2.rb +14 -0
- data/extconf.rb +6 -0
- data/termios.c +949 -0
- data/termios.rd +158 -0
- data/test/test0.rb +29 -0
- metadata +52 -0
data/termios.rd
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
=begin
|
2
|
+
|
3
|
+
= ruby-termios
|
4
|
+
|
5
|
+
Ruby-termios enables you to use termios(3) interface.
|
6
|
+
|
7
|
+
|
8
|
+
== Termios module
|
9
|
+
|
10
|
+
Termios module are simple wrapper for termios(3). It can be included
|
11
|
+
into IO-family classes and can extend IO-family objects. In addition,
|
12
|
+
the methods can use as module function.
|
13
|
+
|
14
|
+
=== Module Functions
|
15
|
+
|
16
|
+
--- Termios.tcdrain(io)
|
17
|
+
--- Termios.drain(io)
|
18
|
+
It calls tcdrain(3) for ((|io|)).
|
19
|
+
|
20
|
+
--- Termios.tcflow(io, action)
|
21
|
+
--- Termios.flow(io, action)
|
22
|
+
It calls tcflow(3) for ((|io|)).
|
23
|
+
|
24
|
+
--- Termios.tcflush(io, queue_selector)
|
25
|
+
--- Termios.flush(io, queue_selector)
|
26
|
+
It calls tcflush(3) for ((|io|)).
|
27
|
+
|
28
|
+
--- Termios.tcgetattr(io)
|
29
|
+
--- Termios.getattr(io)
|
30
|
+
It calls tcgetattr(3) for ((|io|)).
|
31
|
+
|
32
|
+
--- Termios.tcgetpgrp(io)
|
33
|
+
--- Termios.getpgrp(io)
|
34
|
+
It calls tcgetpgrp(3) for ((|io|)).
|
35
|
+
|
36
|
+
--- Termios.tcsendbreak(io, duration)
|
37
|
+
--- Termios.sendbreak(io, duration)
|
38
|
+
It calls tcsendbreak(3) for ((|io|)).
|
39
|
+
|
40
|
+
--- Termios.tcsetattr(io, flag, termios)
|
41
|
+
--- Termios.setattr(io, flag, termios)
|
42
|
+
It calls tcsetattr(3) for ((|io|)).
|
43
|
+
|
44
|
+
--- Termios.tcsetpgrp(io, pgrpid)
|
45
|
+
--- Termios.setpgrp(io, pgrpid)
|
46
|
+
It calls tcsetpgrp(3) for ((|io|)).
|
47
|
+
|
48
|
+
--- Termios.new_termios
|
49
|
+
It is alias of ((<Termios::Termios.new>)).
|
50
|
+
|
51
|
+
=== Methods
|
52
|
+
|
53
|
+
The methods can use for objects which include Termios module or are
|
54
|
+
extended by Termios module.
|
55
|
+
|
56
|
+
--- tcdrain
|
57
|
+
It calls tcdrain(3) for ((|self|)).
|
58
|
+
|
59
|
+
--- tcflow
|
60
|
+
It calls tcflow(3) for ((|self|)).
|
61
|
+
|
62
|
+
--- tcflush(queue_selector)
|
63
|
+
It calls tcflush(3) for ((|self|)).
|
64
|
+
|
65
|
+
--- tcgetattr
|
66
|
+
It calls tcgetattr(3) for ((|self|)).
|
67
|
+
|
68
|
+
--- tcgetpgrp
|
69
|
+
It calls tcgetpgrp(3) for ((|self|)).
|
70
|
+
|
71
|
+
--- tcsendbreak(duratiofn)
|
72
|
+
It calls tcsendbreak(3) for ((|self|)).
|
73
|
+
|
74
|
+
--- tcsetattr(flag, termios)
|
75
|
+
It calls tcsetattr(3) for ((|self|)).
|
76
|
+
|
77
|
+
--- tcsetpgrp(pgrpid)
|
78
|
+
It calls tcsetpgrp(3) for ((|self|)).
|
79
|
+
|
80
|
+
=== Constants
|
81
|
+
|
82
|
+
Many constants which are derived from "termios.h" are defined on Termios
|
83
|
+
module.
|
84
|
+
|
85
|
+
IFLAGS, OFLAGS, CFLAGS and LFLAGS are Hash object. They contains Symbols of
|
86
|
+
constants for c_iflag, c_oflag, c_cflag and c_lflag.
|
87
|
+
|
88
|
+
CCINDEX and BAUDS are Hash object too. They contains Symbols of constats for
|
89
|
+
c_cc or ispeed and ospeed.
|
90
|
+
|
91
|
+
== Termios::Termios class
|
92
|
+
|
93
|
+
A wrapper class for "struct termios" in C.
|
94
|
+
|
95
|
+
=== Class Methods
|
96
|
+
|
97
|
+
--- Termios::Termios.new
|
98
|
+
It creates a new Termios::Termios object.
|
99
|
+
|
100
|
+
=== Instance Methods
|
101
|
+
|
102
|
+
--- iflag
|
103
|
+
--- c_iflag
|
104
|
+
It returns value of c_iflag.
|
105
|
+
|
106
|
+
--- iflag=(flag)
|
107
|
+
--- c_iflag=(flag)
|
108
|
+
It sets flag to c_iflag.
|
109
|
+
|
110
|
+
--- oflag
|
111
|
+
--- c_oflag
|
112
|
+
It returns value of c_oflag.
|
113
|
+
|
114
|
+
--- oflag=(flag)
|
115
|
+
--- c_oflag=(flag)
|
116
|
+
It sets flag to c_oflag.
|
117
|
+
|
118
|
+
--- cflag
|
119
|
+
--- c_cflag
|
120
|
+
It returns value of c_cflag.
|
121
|
+
|
122
|
+
--- cflag=(flag)
|
123
|
+
--- c_cflag=(flag)
|
124
|
+
It sets flag to c_cflag.
|
125
|
+
|
126
|
+
--- lflag
|
127
|
+
--- c_lflag
|
128
|
+
It returns value of c_lflag.
|
129
|
+
|
130
|
+
--- lflag=(flag)
|
131
|
+
--- c_lflag=(flag)
|
132
|
+
It sets flag to c_lflag.
|
133
|
+
|
134
|
+
--- cc
|
135
|
+
--- c_cc
|
136
|
+
It returns values of c_cc.
|
137
|
+
|
138
|
+
--- cc=(cc_ary)
|
139
|
+
--- c_cc=(cc_ary)
|
140
|
+
It sets cc_ary to c_cc.
|
141
|
+
|
142
|
+
--- ispeed
|
143
|
+
--- c_ispeed
|
144
|
+
It returns c_ispeeed.
|
145
|
+
|
146
|
+
--- ispeed=(speed)
|
147
|
+
--- c_ispeed=(speed)
|
148
|
+
It sets speed to c_ispeed.
|
149
|
+
|
150
|
+
--- ospeed
|
151
|
+
--- c_ospeed
|
152
|
+
It returns c_ospeeed.
|
153
|
+
|
154
|
+
--- ospeed=(speed)
|
155
|
+
--- c_ospeed=(speed)
|
156
|
+
It sets speed to c_ospeed.
|
157
|
+
|
158
|
+
=end
|
data/test/test0.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'termios'
|
2
|
+
|
3
|
+
def dump_termios(tio, banner)
|
4
|
+
puts banner
|
5
|
+
puts " ispeed = #{Termios::BAUDS[tio.ispeed]}, ospeed = #{Termios::BAUDS[tio.ospeed]}"
|
6
|
+
["iflag", "oflag", "cflag", "lflag"].each do |x|
|
7
|
+
flag = tio.send(x)
|
8
|
+
flags = []
|
9
|
+
eval("Termios::#{x.upcase}S").each do |f, sym|
|
10
|
+
flags << sym.to_s if flag & f != 0
|
11
|
+
end
|
12
|
+
puts " #{x} = #{flags.sort.join(' | ')}"
|
13
|
+
end
|
14
|
+
print " cc ="
|
15
|
+
cc = tio.cc
|
16
|
+
cc.each_with_index do |x, idx|
|
17
|
+
print " #{Termios::CCINDEX[idx]}=#{x}" if Termios::CCINDEX.include?(idx)
|
18
|
+
end
|
19
|
+
puts
|
20
|
+
end
|
21
|
+
|
22
|
+
tio = Termios::getattr($stdin)
|
23
|
+
dump_termios(tio, "STDIN:")
|
24
|
+
Termios::setattr($stdin, Termios::TCSANOW, tio)
|
25
|
+
dump_termios(tio, "STDIN:")
|
26
|
+
|
27
|
+
puts
|
28
|
+
puts " pid = #{$$}"
|
29
|
+
puts "pgrp = #{Termios::getpgrp($stdin)}"
|
metadata
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.1
|
3
|
+
specification_version: 1
|
4
|
+
name: termios
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.9.4
|
7
|
+
date: 2004-09-24
|
8
|
+
summary: "Termios module are simple wrapper for termios(3). It can be included into IO-family classes and can extend IO-family objects. In addition, the methods can use as module function."
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
- "."
|
12
|
+
author: Akira Yamada and Goto Kentaro
|
13
|
+
email: akira@ruby-lang.org
|
14
|
+
homepage: http://arika.org/ruby/termios
|
15
|
+
rubyforge_project:
|
16
|
+
description:
|
17
|
+
autorequire: termios
|
18
|
+
default_executable:
|
19
|
+
bindir: bin
|
20
|
+
has_rdoc: false
|
21
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
22
|
+
requirements:
|
23
|
+
-
|
24
|
+
- ">"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.0
|
27
|
+
version:
|
28
|
+
platform: ruby
|
29
|
+
files:
|
30
|
+
- ChangeLog
|
31
|
+
- extconf.rb
|
32
|
+
- README
|
33
|
+
- TODO.ja
|
34
|
+
- termios.c
|
35
|
+
- termios.rd
|
36
|
+
- MANIFEST
|
37
|
+
- test/test0.rb
|
38
|
+
- examples/modem_check0.rb
|
39
|
+
- examples/modem_check1.rb
|
40
|
+
- examples/modem_check2.rb
|
41
|
+
- examples/secret_input1.rb
|
42
|
+
- examples/secret_input2.rb
|
43
|
+
test_files: []
|
44
|
+
rdoc_options: []
|
45
|
+
extra_rdoc_files:
|
46
|
+
- README
|
47
|
+
- termios.rd
|
48
|
+
executables: []
|
49
|
+
extensions:
|
50
|
+
- extconf.rb
|
51
|
+
requirements: []
|
52
|
+
dependencies: []
|