aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-30 19:39:16 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-30 19:39:16 +0000
commitd9c5f88abc3377351d2bb8d065113dd0f1eba205 (patch)
tree835fd0251edab6c5a28adf404f77f3beaee1e916
parent97a5808a148e1aca1a8b53f57290fd8ec9ec3a72 (diff)
downloadruby-d9c5f88abc3377351d2bb8d065113dd0f1eba205.tar.gz
* transcode.c (econv_putback): make max argument optional.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--test/ruby/test_econv.rb2
-rw-r--r--transcode.c8
3 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index c0f37e4862..1efab6958d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Aug 31 04:38:47 2008 Tanaka Akira <akr@fsij.org>
+
+ * transcode.c (econv_putback): make max argument optional.
+
Sun Aug 31 04:35:21 2008 Tanaka Akira <akr@fsij.org>
* transcode.c (rb_econv_putback): putback from last byte.
diff --git a/test/ruby/test_econv.rb b/test/ruby/test_econv.rb
index db72430760..52e8b97b4f 100644
--- a/test/ruby/test_econv.rb
+++ b/test/ruby/test_econv.rb
@@ -478,7 +478,7 @@ class TestEncodingConverter < Test::Unit::TestCase
ret = ec.primitive_convert(src="abc\xa1def", dst="", nil, 10)
assert_equal(:invalid_byte_sequence, ret)
assert_equal(["abc", "ef"], [dst, src])
- src = ec.putback(nil) + src
+ src = ec.putback + src
assert_equal(["abc", "def"], [dst, src])
ret = ec.primitive_convert(src, dst, nil, 10)
assert_equal(:finished, ret)
diff --git a/transcode.c b/transcode.c
index 6885bb5544..9c87a9fa0b 100644
--- a/transcode.c
+++ b/transcode.c
@@ -2727,12 +2727,14 @@ econv_insert_output(VALUE self, VALUE string)
}
static VALUE
-econv_putback(VALUE self, VALUE max)
+econv_putback(int argc, VALUE *argv, VALUE self)
{
rb_econv_t *ec = check_econv(self);
int n;
int putbackable;
- VALUE str;
+ VALUE str, max;
+
+ rb_scan_args(argc, argv, "01", &max);
if (NIL_P(max))
n = rb_econv_putbackable(ec);
@@ -2834,7 +2836,7 @@ Init_transcode(void)
rb_define_method(rb_cEncodingConverter, "finish", econv_finish, 0);
rb_define_method(rb_cEncodingConverter, "primitive_errinfo", econv_primitive_errinfo, 0);
rb_define_method(rb_cEncodingConverter, "insert_output", econv_insert_output, 1);
- rb_define_method(rb_cEncodingConverter, "putback", econv_putback, 1);
+ rb_define_method(rb_cEncodingConverter, "putback", econv_putback, -1);
rb_define_const(rb_cEncodingConverter, "INVALID_MASK", INT2FIX(ECONV_INVALID_MASK));
rb_define_const(rb_cEncodingConverter, "INVALID_IGNORE", INT2FIX(ECONV_INVALID_IGNORE));
rb_define_const(rb_cEncodingConverter, "INVALID_REPLACE", INT2FIX(ECONV_INVALID_REPLACE));