aboutsummaryrefslogtreecommitdiffstats
path: root/lib/reline/windows.rb
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2020-01-12 22:24:17 +0900
committeraycabta <aycabta@gmail.com>2020-01-14 15:40:38 +0900
commitf8ea2860b0cac1aec79978e6c44168802958e8af (patch)
treec34b0ee9cd9d6b2b7a4fc494d0f9563a7ce97968 /lib/reline/windows.rb
parentc94025b63091be5b5e83a2f5ab5dc8d6c6147b84 (diff)
downloadruby-f8ea2860b0cac1aec79978e6c44168802958e8af.tar.gz
Introduce an abstracted structure about the encoding of Reline
The command prompt on Windows always uses Unicode to take input and print output but most Reline implementation depends on Encoding.default_external. This commit introduces an abstracted structure about the encoding of Reline.
Diffstat (limited to 'lib/reline/windows.rb')
-rw-r--r--lib/reline/windows.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/reline/windows.rb b/lib/reline/windows.rb
index aef3073a7e..4fbf243c37 100644
--- a/lib/reline/windows.rb
+++ b/lib/reline/windows.rb
@@ -1,6 +1,10 @@
require 'fiddle/import'
class Reline::Windows
+ def self.encoding
+ Encoding::UTF_8
+ end
+
RAW_KEYSTROKE_CONFIG = {
[224, 72] => :ed_prev_history, # ↑
[224, 80] => :ed_next_history, # ↓
@@ -99,7 +103,7 @@ class Reline::Windows
return @@input_buf.shift
end
begin
- bytes = ret.chr(Encoding::UTF_8).encode(Encoding.default_external).bytes
+ bytes = ret.chr(Encoding::UTF_8).bytes
@@input_buf.push(*bytes)
rescue Encoding::UndefinedConversionError
@@input_buf << ret