From 14b8c2d598875f8d32844f0363422f14abd53459 Mon Sep 17 00:00:00 2001 From: yugui Date: Thu, 30 Oct 2008 14:36:18 +0000 Subject: merges r20057 from trunk into ruby_1_9_1. * pack.c (pack_pack): templates a, A, Z should propagate encoding of original strings. templates b, B, h, H brings ASCII-8BIT to the result. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- pack.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'pack.c') diff --git a/pack.c b/pack.c index df25231610..2ecb2d68d6 100644 --- a/pack.c +++ b/pack.c @@ -519,8 +519,15 @@ pack_pack(VALUE ary, VALUE fmt) ptr = RSTRING_PTR(from); plen = RSTRING_LEN(from); OBJ_INFECT(res, from); - enc = rb_enc_compatible(res, from); - rb_enc_associate(res, enc); + switch (type) { + case 'a': case 'A': case 'Z': + enc = rb_enc_compatible(res, from); + rb_enc_associate(res, enc); + break; + default: + rb_enc_associate(res, rb_ascii8bit_encoding()); + break; + } } if (p[-1] == '*') -- cgit v1.2.3