aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-09-06 01:38:51 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-09-06 01:38:51 +0000
commit59f551635a6dfdb2ed5b84b275fdf8e4cdbf803f (patch)
treeb055928f11eff1091fb2715922ec4a565df146c6
parenta69423beb8e9d827eb4cadda35b21586767d8737 (diff)
downloadruby-59f551635a6dfdb2ed5b84b275fdf8e4cdbf803f.tar.gz
* ext/readline/readline.c (readline_s_get_line_buffer):
Readline.line_buffer should return locale string. [ruby-dev:42184] #3791 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--ext/readline/readline.c2
-rw-r--r--test/readline/test_readline.rb2
3 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1fde82cc6a..59aa118d28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Sep 6 10:31:59 2010 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * ext/readline/readline.c (readline_s_get_line_buffer):
+ Readline.line_buffer should return locale string.
+ [ruby-dev:42184] #3791
+
Mon Sep 6 09:47:24 2010 NARUSE, Yui <naruse@ruby-lang.org>
* util.c (ruby_strtod): check there is at least 1 digit after
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index b654fa099b..ac88c84f59 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -426,7 +426,7 @@ readline_s_get_line_buffer(VALUE self)
rb_secure(4);
if (rl_line_buffer == NULL)
return Qnil;
- return rb_tainted_str_new2(rl_line_buffer);
+ return rb_locale_str_new_cstr(rl_line_buffer);
}
#else
#define readline_s_get_line_buffer rb_f_notimplement
diff --git a/test/readline/test_readline.rb b/test/readline/test_readline.rb
index 5871f4c2bb..fc1e719462 100644
--- a/test/readline/test_readline.rb
+++ b/test/readline/test_readline.rb
@@ -153,6 +153,8 @@ class TestReadline < Test::Unit::TestCase
assert_equal("first second", actual_line_buffer)
assert_equal(12, actual_point)
assert_equal("first complete finish", Readline.line_buffer)
+ assert_equal(Encoding.find("locale"), Readline.line_buffer.encoding)
+ assert_equal(true, Readline.line_buffer.tainted?)
assert_equal(21, Readline.point)
ensure
stdin.close(true)