diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | sprintf.c | 1 | ||||
-rw-r--r-- | test/-ext-/test_printf.rb | 7 |
3 files changed, 19 insertions, 0 deletions
@@ -1,3 +1,14 @@ +Wed Aug 15 16:23:35 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * sprintf.c (ruby__sfvwrite): set buffer length and exclude + uninitialized garbage to get correct coderange. + + * sprintf.c (ruby__sfvextra): the result should be infected by the + given strings. + + * sprintf.c (ruby__sfvwrite): set buffer length and exclude + uninitialized garbage to get correct coderange. + Wed Aug 15 16:20:09 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> * common.mk (ID_H_TARGET): make timestamp file of id.h so that the @@ -1174,6 +1174,7 @@ ruby__sfvwrite(register rb_printf_buffer *fp, register struct __suio *uio) len -= n; } fp->_p = (unsigned char *)buf; + rb_str_set_len(result, buf - RSTRING_PTR(result)); return 0; } diff --git a/test/-ext-/test_printf.rb b/test/-ext-/test_printf.rb index f801030c07..fc4e065345 100644 --- a/test/-ext-/test_printf.rb +++ b/test/-ext-/test_printf.rb @@ -21,4 +21,11 @@ class Test_SPrintf < Test::Unit::TestCase def test_inspect assert_equal("{<#{self.class}:#{object_id}>}", Bug::Printf.v(self)) end + + def test_encoding + def self.to_s + "\u{3042 3044 3046 3048 304a}" + end + assert_equal("<\u{3042 3044 3046 3048 304a}>", Bug::Printf.s(self)) + end end |