mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* pack.c (pack_pack): fix more than one modifiers appear in the
format string. [ruby-core:32793] * pack.c (pack_unpack): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
dfd139b819
commit
ccaf61d5af
3 changed files with 11 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
|||
Fri Oct 15 16:40:37 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* pack.c (pack_pack): fix more than one modifiers appear in the
|
||||
format string. [ruby-core:32793]
|
||||
|
||||
* pack.c (pack_unpack): ditto.
|
||||
|
||||
Thu Oct 14 23:20:42 2010 Masaki Suketa <masaki.suketa@nifty.ne.jp>
|
||||
|
||||
* test/win32ole/test_folderitem2_invokeverb.rb: refactoring.
|
||||
|
|
4
pack.c
4
pack.c
|
@ -428,7 +428,6 @@ pack_pack(VALUE ary, VALUE fmt)
|
|||
int natint; /* native integer */
|
||||
#endif
|
||||
int signed_p, integer_size, bigendian_p;
|
||||
int explicit_endian = 0;
|
||||
|
||||
StringValue(fmt);
|
||||
p = RSTRING_PTR(fmt);
|
||||
|
@ -443,6 +442,7 @@ pack_pack(VALUE ary, VALUE fmt)
|
|||
#define NEXTFROM (items-- > 0 ? RARRAY_PTR(ary)[idx++] : TOO_FEW)
|
||||
|
||||
while (p < pend) {
|
||||
int explicit_endian = 0;
|
||||
if (RSTRING_PTR(fmt) + RSTRING_LEN(fmt) != pend) {
|
||||
rb_raise(rb_eRuntimeError, "format string modified");
|
||||
}
|
||||
|
@ -1366,7 +1366,6 @@ pack_unpack(VALUE str, VALUE fmt)
|
|||
#endif
|
||||
int block_p = rb_block_given_p();
|
||||
int signed_p, integer_size, bigendian_p;
|
||||
int explicit_endian = 0;
|
||||
#define UNPACK_PUSH(item) do {\
|
||||
VALUE item_val = (item);\
|
||||
if (block_p) {\
|
||||
|
@ -1386,6 +1385,7 @@ pack_unpack(VALUE str, VALUE fmt)
|
|||
|
||||
ary = block_p ? Qnil : rb_ary_new();
|
||||
while (p < pend) {
|
||||
int explicit_endian = 0;
|
||||
type = *p++;
|
||||
#ifdef NATINT_PACK
|
||||
natint = 0;
|
||||
|
|
|
@ -145,6 +145,8 @@ class TestPack < Test::Unit::TestCase
|
|||
else
|
||||
_integer_little_endian()
|
||||
end
|
||||
assert_equal("\x01\x02\x02\x01", [0x0102,0x0102].pack("s>s<"))
|
||||
assert_equal([0x0102,0x0102], "\x01\x02\x02\x01".unpack("s>s<"))
|
||||
end
|
||||
|
||||
def test_integer_endian_explicit
|
||||
|
|
Loading…
Reference in a new issue