Index: pack.c =================================================================== --- pack.c (revision 22907) +++ pack.c (working copy) @@ -690,7 +690,7 @@ char c; from = NEXTFROM; - c = num2i32(from); + c = (char)num2i32(from); rb_str_buf_cat(res, &c, sizeof(char)); } break; @@ -701,7 +701,7 @@ short s; from = NEXTFROM; - s = num2i32(from); + s = (short)num2i32(from); rb_str_buf_cat(res, OFF16(&s), NATINT_LEN(short,2)); } break; @@ -744,7 +744,7 @@ unsigned short s; from = NEXTFROM; - s = num2i32(from); + s = (unsigned short)num2i32(from); s = NATINT_HTONS(s); rb_str_buf_cat(res, OFF16(&s), NATINT_LEN(short,2)); } @@ -766,7 +766,7 @@ unsigned short s; from = NEXTFROM; - s = num2i32(from); + s = (unsigned short)num2i32(from); s = NATINT_HTOVS(s); rb_str_buf_cat(res, OFF16(&s), NATINT_LEN(short,2)); } @@ -789,7 +789,7 @@ float f; from = NEXTFROM; - f = RFLOAT_VALUE(rb_to_float(from)); + f = (float)RFLOAT_VALUE(rb_to_float(from)); rb_str_buf_cat(res, (char*)&f, sizeof(float)); } break; @@ -800,7 +800,7 @@ FLOAT_CONVWITH(ftmp); from = NEXTFROM; - f = RFLOAT_VALUE(rb_to_float(from)); + f = (float)RFLOAT_VALUE(rb_to_float(from)); f = HTOVF(f,ftmp); rb_str_buf_cat(res, (char*)&f, sizeof(float)); } @@ -835,7 +835,7 @@ FLOAT_CONVWITH(ftmp); from = NEXTFROM; - f = RFLOAT_VALUE(rb_to_float(from)); + f = (float)RFLOAT_VALUE(rb_to_float(from)); f = HTONF(f,ftmp); rb_str_buf_cat(res, (char*)&f, sizeof(float)); } @@ -1050,7 +1050,7 @@ int padding; if (type == 'u') { - buff[i++] = len + ' '; + buff[i++] = (char)len + ' '; padding = '`'; } else { @@ -1162,7 +1162,7 @@ #define PACK_LENGTH_ADJUST_SIZE(sz) do { \ tmp = 0; \ - if (len > (send-s)/sz) { \ + if (len > (long)((send-s)/sz)) { \ if (!star) { \ tmp = len-(send-s)/sz; \ } \ @@ -1807,9 +1807,9 @@ d = (*s++ - ' ') & 077; else d = 0; - hunk[0] = a << 2 | b >> 4; - hunk[1] = b << 4 | c >> 2; - hunk[2] = c << 6 | d; + hunk[0] = (char)(a << 2 | b >> 4); + hunk[1] = (char)(b << 4 | c >> 2); + hunk[2] = (char)(c << 6 | d); memcpy(ptr, hunk, mlen); ptr += mlen; len -= mlen; @@ -1990,7 +1990,7 @@ break; case 'p': - if (len > (send - s) / sizeof(char *)) + if (len > (long)((send - s) / sizeof(char *))) len = (send - s) / sizeof(char *); while (len-- > 0) { if (send - s < sizeof(char *))