From: Dr. Stephen Henson Date: Sun, 19 Sep 1999 00:40:56 +0000 (+0000) Subject: Lots of evil casts to stop VC++ choking with "possible loss of data" X-Git-Tag: OpenSSL_0_9_5beta1~512 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=bf1966354a62c5c6efbc47c3b4159703d8b546f9;hp=1c80019a2c8f59410552197723829fd72ab45a5e Lots of evil casts to stop VC++ choking with "possible loss of data" warnings :-( --- diff --git a/crypto/asn1/a_utf8.c b/crypto/asn1/a_utf8.c index 6179bd09a3..7f68b88cd1 100644 --- a/crypto/asn1/a_utf8.c +++ b/crypto/asn1/a_utf8.c @@ -178,55 +178,55 @@ int UTF8_putc(unsigned char *str, int len, unsigned long value) if(!str) len = 6; /* Maximum we will need */ else if(len <= 0) return -1; if(value < 0x80) { - if(str) *str = value; + if(str) *str = (unsigned char)value; return 1; } if(value < 0x800) { if(len < 2) return -1; if(str) { - *str++ = ((value >> 6) & 0x1f) | 0xc0; - *str = (value & 0x3f) | 0x80; + *str++ = (unsigned char)(((value >> 6) & 0x1f) | 0xc0); + *str = (unsigned char)((value & 0x3f) | 0x80); } return 2; } if(value < 0x10000) { if(len < 3) return -1; if(str) { - *str++ = ((value >> 12) & 0xf) | 0xe0; - *str++ = ((value >> 6) & 0x3f) | 0x80; - *str = (value & 0x3f) | 0x80; + *str++ = (unsigned char)(((value >> 12) & 0xf) | 0xe0); + *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80); + *str = (unsigned char)((value & 0x3f) | 0x80); } return 3; } if(value < 0x200000) { if(len < 4) return -1; if(str) { - *str++ = ((value >> 18) & 0x7) | 0xf0; - *str++ = ((value >> 12) & 0x3f) | 0x80; - *str++ = ((value >> 6) & 0x3f) | 0x80; - *str = (value & 0x3f) | 0x80; + *str++ = (unsigned char)(((value >> 18) & 0x7) | 0xf0); + *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80); + *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80); + *str = (unsigned char)((value & 0x3f) | 0x80); } return 4; } if(value < 0x4000000) { if(len < 5) return -1; if(str) { - *str++ = ((value >> 24) & 0x3) | 0xf8; - *str++ = ((value >> 18) & 0x3f) | 0x80; - *str++ = ((value >> 12) & 0x3f) | 0x80; - *str++ = ((value >> 6) & 0x3f) | 0x80; - *str = (value & 0x3f) | 0x80; + *str++ = (unsigned char)(((value >> 24) & 0x3) | 0xf8); + *str++ = (unsigned char)(((value >> 18) & 0x3f) | 0x80); + *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80); + *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80); + *str = (unsigned char)((value & 0x3f) | 0x80); } return 5; } if(len < 6) return -1; if(str) { - *str++ = ((value >> 30) & 0x1) | 0xfc; - *str++ = ((value >> 24) & 0x3f) | 0x80; - *str++ = ((value >> 18) & 0x3f) | 0x80; - *str++ = ((value >> 12) & 0x3f) | 0x80; - *str++ = ((value >> 6) & 0x3f) | 0x80; - *str = (value & 0x3f) | 0x80; + *str++ = (unsigned char)(((value >> 30) & 0x1) | 0xfc); + *str++ = (unsigned char)(((value >> 24) & 0x3f) | 0x80); + *str++ = (unsigned char)(((value >> 18) & 0x3f) | 0x80); + *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80); + *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80); + *str = (unsigned char)((value & 0x3f) | 0x80); } return 6; }