diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-19 13:13:32 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-19 13:13:32 +0000 |
commit | b0e40509c3b60242c6a1b0e67276849eea505977 (patch) | |
tree | ee51657c78f02d5d5d11bc8acd7ab394cd10305d /pack.c | |
parent | f4dbc7a3849988ebe75d3e1031aa50441347c497 (diff) | |
download | ruby-b0e40509c3b60242c6a1b0e67276849eea505977.tar.gz |
set encoding to ASCII for appropriate String#unpack modifiers
* pack.c (pack_unpack): set encoding of the
'H','h','B' and 'B' modifiers to US-ASCII.
* test/ruby/test_pack.rb: tests for the above.
[ruby-core:47653][Bug #7050]
* test/test_securerandom.rb: tests for SecureRandom.hex
from tenderlove. [ruby-core:46792][Bug #6799]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'pack.c')
-rw-r--r-- | pack.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -1459,7 +1459,7 @@ pack_unpack(VALUE str, VALUE fmt) if (p[-1] == '*' || len > (send - s) * 8) len = (send - s) * 8; bits = 0; - UNPACK_PUSH(bitstr = rb_str_new(0, len)); + UNPACK_PUSH(bitstr = rb_usascii_str_new(0, len)); t = RSTRING_PTR(bitstr); for (i=0; i<len; i++) { if (i & 7) bits >>= 1; @@ -1479,7 +1479,7 @@ pack_unpack(VALUE str, VALUE fmt) if (p[-1] == '*' || len > (send - s) * 8) len = (send - s) * 8; bits = 0; - UNPACK_PUSH(bitstr = rb_str_new(0, len)); + UNPACK_PUSH(bitstr = rb_usascii_str_new(0, len)); t = RSTRING_PTR(bitstr); for (i=0; i<len; i++) { if (i & 7) bits <<= 1; @@ -1499,7 +1499,7 @@ pack_unpack(VALUE str, VALUE fmt) if (p[-1] == '*' || len > (send - s) * 2) len = (send - s) * 2; bits = 0; - UNPACK_PUSH(bitstr = rb_str_new(0, len)); + UNPACK_PUSH(bitstr = rb_usascii_str_new(0, len)); t = RSTRING_PTR(bitstr); for (i=0; i<len; i++) { if (i & 1) @@ -1521,7 +1521,7 @@ pack_unpack(VALUE str, VALUE fmt) if (p[-1] == '*' || len > (send - s) * 2) len = (send - s) * 2; bits = 0; - UNPACK_PUSH(bitstr = rb_str_new(0, len)); + UNPACK_PUSH(bitstr = rb_usascii_str_new(0, len)); t = RSTRING_PTR(bitstr); for (i=0; i<len; i++) { if (i & 1) |