From 7798b9667efc5396b8dd7409901c950f046c917d Mon Sep 17 00:00:00 2001 From: naruse Date: Tue, 15 Feb 2011 07:08:20 +0000 Subject: * hash.c (inspect_i): copy the encoding of the first key as an initial encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ hash.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d36ff36883..9b8179a093 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Feb 15 15:40:53 2011 NARUSE, Yui + + * hash.c (inspect_i): copy the encoding of the first key as + an initial encoding. + Mon Feb 14 15:00:16 2011 NARUSE, Yui * array.c (inspect_ary): don't taint the inspected result of a diff --git a/hash.c b/hash.c index f2611d29d6..909263357a 100644 --- a/hash.c +++ b/hash.c @@ -14,6 +14,7 @@ #include "ruby/ruby.h" #include "ruby/st.h" #include "ruby/util.h" +#include "ruby/encoding.h" #include #ifdef __APPLE__ @@ -1367,10 +1368,13 @@ inspect_i(VALUE key, VALUE value, VALUE str) VALUE str2; if (key == Qundef) return ST_CONTINUE; + str2 = rb_inspect(key); if (RSTRING_LEN(str) > 1) { rb_str_cat2(str, ", "); } - str2 = rb_inspect(key); + else { + rb_enc_copy(str, str2); + } rb_str_buf_append(str, str2); OBJ_INFECT(str, str2); rb_str_buf_cat2(str, "=>"); -- cgit v1.2.3