diff --git a/ChangeLog b/ChangeLog index 346dd8187b..d64bbb7bf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -48,11 +48,6 @@ Wed Aug 12 11:51:51 2009 Nobuyoshi Nakada * configure.in (rb_cv_broken_crypt): needs more checks. -Wed Aug 12 08:39:15 2009 Yukihiro Matsumoto - - * sprintf.c (rb_str_format): should preserve format encoding - before raising CompatibilityError. [ruby-list:46274] - Wed Aug 12 07:41:31 2009 NARUSE, Yui * encoding.c (rb_enc_compatible): If a string is empty and diff --git a/sprintf.c b/sprintf.c index 4a37ecb8b8..11f97e5321 100644 --- a/sprintf.c +++ b/sprintf.c @@ -677,7 +677,7 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) (cr == ENC_CODERANGE_UNKNOWN ? ENC_CODERANGE_BROKEN : (coderange = cr))); } - enc = rb_enc_check((RSTRING_LEN(result) == 0 ? fmt : result), str); + enc = rb_enc_check(result, str); if (flags&(FPREC|FWIDTH)) { slen = rb_enc_strlen(RSTRING_PTR(str),RSTRING_END(str),enc); if (slen < 0) {