mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/readline/readline.c
(readline_s_get_completion_append_character): uses locale encoding but not ASCII-8BIT. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
75fbac3b0d
commit
8b123714e2
2 changed files with 15 additions and 10 deletions
|
@ -602,15 +602,14 @@ static VALUE
|
||||||
readline_s_get_completion_append_character(VALUE self)
|
readline_s_get_completion_append_character(VALUE self)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER
|
#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER
|
||||||
VALUE str;
|
char buf[1];
|
||||||
|
|
||||||
rb_secure(4);
|
rb_secure(4);
|
||||||
if (rl_completion_append_character == '\0')
|
if (rl_completion_append_character == '\0')
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
||||||
str = rb_str_new(0, 1);
|
buf[0] = (char) rl_completion_append_character;
|
||||||
RSTRING_PTR(str)[0] = rl_completion_append_character;
|
return rb_locale_str_new(buf, 1);
|
||||||
return str;
|
|
||||||
#else
|
#else
|
||||||
rb_notimplement();
|
rb_notimplement();
|
||||||
return Qnil; /* not reached */
|
return Qnil; /* not reached */
|
||||||
|
|
|
@ -166,12 +166,18 @@ class TestReadline < Test::Unit::TestCase
|
||||||
|
|
||||||
def test_completion_append_character
|
def test_completion_append_character
|
||||||
begin
|
begin
|
||||||
Readline.completion_append_character = "x"
|
enc = Encoding.default_internal || Encoding.find("locale")
|
||||||
assert_equal("x", Readline.completion_append_character)
|
data_expected = [
|
||||||
Readline.completion_append_character = "xyz"
|
["x", "x"],
|
||||||
assert_equal("x", Readline.completion_append_character)
|
["xyx", "x"],
|
||||||
Readline.completion_append_character = nil
|
[" ", " "],
|
||||||
assert_equal(nil, Readline.completion_append_character)
|
["\t", "\t"],
|
||||||
|
]
|
||||||
|
data_expected.each do |(data, expected)|
|
||||||
|
Readline.completion_append_character = data
|
||||||
|
assert_equal(expected, Readline.completion_append_character)
|
||||||
|
assert_equal(enc, Readline.completion_append_character.encoding)
|
||||||
|
end
|
||||||
Readline.completion_append_character = ""
|
Readline.completion_append_character = ""
|
||||||
assert_equal(nil, Readline.completion_append_character)
|
assert_equal(nil, Readline.completion_append_character)
|
||||||
rescue NotImplementedError
|
rescue NotImplementedError
|
||||||
|
|
Loading…
Reference in a new issue