From a87a4b2a29ad7dee09b29064549ab9aa9620c286 Mon Sep 17 00:00:00 2001 From: mame Date: Thu, 17 Jul 2008 11:36:54 +0000 Subject: * pack.c (pack_pack): fix i! with big endian. [1].pack("i!") was "\0\0\0\0". git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ pack.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2d28af682..14219db6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Jul 17 20:35:03 2008 Yusuke Endoh + + * pack.c (pack_pack): fix i! with big endian. [1].pack("i!") was + "\0\0\0\0". + Thu Jul 17 16:48:40 2008 NAKAMURA Usaku * ext/socket/socket.c (ruby_connect): select() for connect() has diff --git a/pack.c b/pack.c index 59893e211..4dcdeca69 100644 --- a/pack.c +++ b/pack.c @@ -691,11 +691,11 @@ pack_pack(VALUE ary, VALUE fmt) case 'i': /* signed int */ case 'I': /* unsigned int */ while (len-- > 0) { - long i; + int i; from = NEXTFROM; i = num2i32(from); - rb_str_buf_cat(res, OFF32(&i), NATINT_LEN(int,4)); + rb_str_buf_cat(res, (char*)&i, sizeof(int)); } break; -- cgit