diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-10-30 09:19:13 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-10-30 09:19:13 +0000 |
| commit | c4b7937de72b13d2c695497c943c360d3fb710eb (patch) | |
| tree | a59d4854cc7cd8889c02124fb424118ccaf143cb | |
| parent | 6c91b5cc78c8de46a58d7d64a65238256d58d595 (diff) | |
| download | ruby-c4b7937de72b13d2c695497c943c360d3fb710eb.tar.gz ruby-c4b7937de72b13d2c695497c943c360d3fb710eb.tar.xz ruby-c4b7937de72b13d2c695497c943c360d3fb710eb.zip | |
* 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: http://svn.ruby-lang.org/repos/ruby/trunk@20057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | pack.c | 11 |
2 files changed, 15 insertions, 2 deletions
@@ -6,6 +6,12 @@ Thu Oct 30 14:45:45 2008 Martin Duerst <duerst@it.aoyama.ac.jp> * enc/trans/iso-8859-1-tbl.rb: new file to avoid having to treat ISO-8859-1 as special +Thu Oct 30 14:10:46 2008 Yukihiro Matsumoto <matz@ruby-lang.org> + + * 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. + Thu Oct 30 10:34:20 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> * ruby.c (moreswitches): splits option string and passes arguments. @@ -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] == '*') |
