summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--pack.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d28af6820..14219db6d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jul 17 20:35:03 2008 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * 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 <usa@ruby-lang.org>
* ext/socket/socket.c (ruby_connect): select() for connect() has
diff --git a/pack.c b/pack.c
index 59893e2116..4dcdeca693 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;