mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[ruby/reline] @convert_meta is true unless 8-bit characters
If Reline::IOGate.encoding contains 7-bit characters, convert-meta will set it On. Because in readline(3): > The default is On, but readline will set it to Off if the locale contains eight-bit characters. As far as I know, 7-bit encoding used in terminals is only US-ASCII. https://github.com/ruby/reline/commit/b71d1fa496
This commit is contained in:
parent
519a945efc
commit
5f1975a454
2 changed files with 23 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue