5 |
## $Id$ |
## $Id$ |
6 |
## |
## |
7 |
## $Log$ |
## $Log$ |
8 |
|
## Revision 1.9 2002/06/15 08:15:50 cvsjoko |
9 |
|
## + bugfixes in ReadKey-behavious for Linux |
10 |
|
## |
11 |
|
## Revision 1.8 2002/06/15 08:08:51 cvsjoko |
12 |
|
## + modifications in Term::ReadKey behaviour |
13 |
|
## |
14 |
|
## Revision 1.7 2002/06/15 07:56:40 cvsjoko |
15 |
|
## + bugfixes for win32 (additional keys) |
16 |
|
## |
17 |
## Revision 1.6 2002/06/15 07:46:11 cvsjoko |
## Revision 1.6 2002/06/15 07:46:11 cvsjoko |
18 |
## + bugfixes for linux |
## + bugfixes for linux |
19 |
## |
## |
91 |
map { $self->{$_} = $args->{$_}; } keys %{$args}; |
map { $self->{$_} = $args->{$_}; } keys %{$args}; |
92 |
|
|
93 |
if ( RUNNING_IN_HELL () ) { |
if ( RUNNING_IN_HELL () ) { |
94 |
$self->{conf}{EnterKey} = "\r"; |
$self->{conf}{KeyEnter} = 13; |
95 |
|
$self->{conf}{KeyBackspace} = 8; |
96 |
|
$self->{conf}{KeyCTRLC} = 3; |
97 |
} else { |
} else { |
98 |
$self->{conf}{EnterKey} = "\n"; |
$self->{conf}{KeyEnter} = 10; |
99 |
|
$self->{conf}{KeyBackspace} = 127; |
100 |
|
$self->{conf}{KeyCTRLC} = 3; |
101 |
} |
} |
102 |
|
|
103 |
## Make our session. See $states defined up above . . . |
## Make our session. See $states defined up above . . . |
224 |
#print "key: ", ord($key), "\n"; |
#print "key: ", ord($key), "\n"; |
225 |
|
|
226 |
# CTRL+C pressed? |
# CTRL+C pressed? |
227 |
if (ord($key) == 3) { |
if (ord($key) == $self->{conf}{KeyCTRLC}) { |
228 |
ReadMode 1; |
ReadMode 1; |
229 |
print "\n"; |
print "\n"; |
230 |
exit; |
exit; |
231 |
} |
} |
232 |
|
|
233 |
# enter pressed? |
# enter pressed? |
234 |
if (ord($key) == 10) { |
if (ord($key) == $self->{conf}{KeyEnter}) { |
235 |
|
|
236 |
# if enter was pressed while request was pending, |
# if enter was pressed while request was pending, |
237 |
# we should stop waiting for output and come back to prompt again, |
# we should stop waiting for output and come back to prompt again, |
257 |
} |
} |
258 |
|
|
259 |
# backspace pressed? |
# backspace pressed? |
260 |
elsif (ord($key) == 127) { |
elsif (ord($key) == $self->{conf}{KeyBackspace}) { |
261 |
$heap->{state}{InputBuffer} = substr($heap->{state}{InputBuffer}, 0, -1); |
$heap->{state}{InputBuffer} = substr($heap->{state}{InputBuffer}, 0, -1); |
262 |
} |
} |
263 |
|
|
264 |
|
# unknown key? |
265 |
|
elsif (ord($key) == 0) { |
266 |
|
} |
267 |
|
|
268 |
# normal key? |
# normal key? |
269 |
#elsif ($key =~ m/[a-zA-Z? ]/) { |
#elsif ($key =~ m/[a-zA-Z? ]/) { |
270 |
else { |
else { |
277 |
|
|
278 |
} |
} |
279 |
|
|
|
#$kernel->run_one_timeslice(); |
|
280 |
$kernel->post($session, "pollForKey"); |
$kernel->post($session, "pollForKey"); |
281 |
|
#$kernel->run_one_timeslice(); |
282 |
|
#$kernel->post($session, "pollForKey"); |
283 |
#$kernel->yield($session, "pollForKey"); |
#$kernel->yield($session, "pollForKey"); |
284 |
#$kernel->delay("pollForKey", 0.1); |
#$kernel->delay("pollForKey", 0.1); |
285 |
#$kernel->delay("pollForKey", 0.01); |
#$kernel->delay("pollForKey", 0.001); |
286 |
|
|
287 |
} |
} |
288 |
|
|