summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/reline/config.rb5
-rw-r--r--test/reline/test_config.rb18
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/reline/config.rb b/lib/reline/config.rb
index 4b2655d8eb..5ef5ce4e8d 100644
--- a/lib/reline/config.rb
+++ b/lib/reline/config.rb
@@ -67,6 +67,7 @@ class Reline::Config
@keyseq_timeout = 500
@test_mode = false
@autocompletion = false
+ @convert_meta = true if seven_bit_encoding?(Reline::IOGate.encoding)
end
def reset
@@ -387,4 +388,8 @@ class Reline::Config
end
ret
end
+
+ private def seven_bit_encoding?(encoding)
+ encoding == Encoding::US_ASCII
+ end
end
diff --git a/test/reline/test_config.rb b/test/reline/test_config.rb
index aa549a392d..e00a47c705 100644
--- a/test/reline/test_config.rb
+++ b/test/reline/test_config.rb
@@ -11,12 +11,14 @@ class Reline::Config::Test < Reline::TestCase
Dir.mkdir(@tmpdir)
end
Dir.chdir(@tmpdir)
+ Reline.test_mode
@config = Reline::Config.new
end
def teardown
Dir.chdir(@pwd)
FileUtils.rm_rf(@tmpdir)
+ Reline.test_reset
@config.reset
end
@@ -81,6 +83,22 @@ class Reline::Config::Test < Reline::TestCase
assert_equal '(Emacs)', @config.instance_variable_get(:@emacs_mode_string)
end
+ def test_encoding_is_ascii
+ @config.reset
+ Reline::IOGate.reset(encoding: Encoding::US_ASCII)
+ @config = Reline::Config.new
+
+ assert_equal true, @config.convert_meta
+ end
+
+ def test_encoding_is_not_ascii
+ @config.reset
+ Reline::IOGate.reset(encoding: Encoding::UTF_8)
+ @config = Reline::Config.new
+
+ assert_equal nil, @config.convert_meta
+ end
+
def test_comment_line
@config.read_lines([" #a: error\n"])
assert_not_include @config.key_bindings, nil