… | |
… | |
113 | my %games; |
113 | my %games; |
114 | |
114 | |
115 | my @timers; |
115 | my @timers; |
116 | |
116 | |
117 | my %alphmap = ( |
117 | my %alphmap = ( |
118 | A => 1, |
118 | A => 1, B => 2, C => 3, D => 4, |
119 | B => 2, |
119 | E => 5, F => 6, G => 7, H => 8, |
120 | C => 3, |
120 | |
121 | D => 4, |
121 | J => 9, K => 10, L => 11, M => 12, |
122 | E => 5, |
122 | N => 13, O => 14, P => 15, Q => 16, |
123 | F => 6, |
123 | R => 17, S => 18, T => 19, U => 20, |
124 | G => 7, |
|
|
125 | H => 8, |
|
|
126 | J => 9, |
|
|
127 | K => 10, |
|
|
128 | L => 11, |
|
|
129 | M => 12, |
|
|
130 | N => 13, |
|
|
131 | O => 14, |
|
|
132 | P => 15, |
|
|
133 | Q => 16, |
|
|
134 | R => 17, |
|
|
135 | S => 18, |
|
|
136 | T => 19, |
|
|
137 | U => 20, |
|
|
138 | V => 21, |
124 | V => 21, W => 22, |
139 | W => 22, |
|
|
140 | ); |
125 | ); |
141 | |
126 | |
142 | sub dump($) { |
127 | sub dump($) { |
143 | print Data::Dumper::Dumper ([$_[0]]); |
128 | print Data::Dumper::Dumper ([$_[0]]); |
144 | } |
129 | } |
… | |
… | |
338 | }); |
323 | }); |
339 | |
324 | |
340 | Gtk2::Helper->add_watch (fileno($sck), 'in', sub { |
325 | Gtk2::Helper->add_watch (fileno($sck), 'in', sub { |
341 | my $data; |
326 | my $data; |
342 | |
327 | |
343 | my $r = $sck->sysread ($data, 4096); |
328 | my $r = $sck->sysread (my $data, 4096); |
344 | |
329 | |
345 | if (not $r) { |
330 | if (not $r) { |
346 | # check $r == 0 or undef # FIXME |
331 | # check $r == 0 or undef # FIXME |
347 | die "eof from server"; |
332 | die "eof from server"; |
348 | } |
333 | } |
349 | |
334 | |
350 | $buffer .= $data; |
|
|
351 | $igs->feed_data (\$buffer); |
335 | $igs->feed_data ($data); |
352 | |
336 | |
353 | 1; |
337 | 1; |
354 | }); |
338 | }); |
355 | |
339 | |
356 | build_ui ($igs); |
340 | build_ui ($igs); |
357 | |
341 | |
358 | Gtk2->main; |
342 | Gtk2->main; |
|
|
343 | |