+ } elsif ($fh == $input_fh) {
+ # Read from STDIN
+
+ my $nr = sysread($input_fh, my $buff, 4096);
+ return if !$nr; # EOF or error
+
+ my $char = ord($buff);
+
+ # Handle escape sequences:
+ if ($in_escape_sequence) {
+ $in_escape_sequence = 0;
+ if ($char == 0x71) {
+ # (escape, 'q')
+ return;
+ } elsif ($char == $escape_char) {
+ # (escape, escape)
+ # Pass this one through as a single escapekey
+ } else {
+ # Unknown escape sequence
+ # We could generate a bell or something...
+ # but for now just skip it
+ next;
+ }
+ } elsif ($char == $escape_char) {
+ $in_escape_sequence = 1;
+ next;
+ }
+
+ # Pass the key through:
+ $websock_buffer .= $create_websockt_frame->("0:" . $nr . ":" . $buff);
+ $write_select->add($web_socket);
+ }