diff --git a/lib/net/vnc.rb b/lib/net/vnc.rb index 1af5c8e..b01fdc6 100644 --- a/lib/net/vnc.rb +++ b/lib/net/vnc.rb @@ -149,7 +149,7 @@ def type text, options={} packet = 0.chr * 8 packet[0] = 4.chr text.split(//).each do |char| - packet[7] = char[0] + packet[7] = char.ord.chr packet[1] = 1.chr socket.write packet packet[1] = 0.chr @@ -178,11 +178,11 @@ def key_press(*args) end def get_key_code which - if String === which + if which.class == String if which.length != 1 raise ArgumentError, 'can only get key_code of single character strings' end - which[0] + which[0].ord else KEY_MAP[which] end @@ -292,7 +292,7 @@ def packet_reading_thread begin break if @packet_reading_state != :loop next unless IO.select [socket], nil, nil, 2 - type = socket.read(1)[0] + type = socket.read(1).ord read_packet type rescue warn "exception in packet_reading_thread: #{$!.class}:#{$!}"