msvcp: added missing casts to unsigned char in streambuf functions

Andrey Zhezherun zhezherun at yandex.ru
Thu Oct 31 18:38:29 CDT 2013


This patch adds missing casts to unsigned char when returning a value
from several functions, to avoid 0xff character being confused with
EOF.

Regards,
Andrey
-------------- next part --------------
--- wine-1.7.5.orig/dlls/msvcp100/ios.c	2013-10-25 18:45:30.000000000 +0100
+++ wine-1.7.5/dlls/msvcp100/ios.c	2013-10-30 19:05:12.000000000 +0000
@@ -978,7 +978,7 @@
 {
     TRACE("(%p %d)\n", this, ch);
     return basic_streambuf_char__Pnavail(this) ?
-        (*basic_streambuf_char__Pninc(this) = ch) :
+        (unsigned char)(*basic_streambuf_char__Pninc(this) = ch) :
         call_basic_streambuf_char_overflow(this, (unsigned char)ch);
 }
 
--- wine-1.7.5.orig/dlls/msvcp60/ios.c	2013-10-25 18:45:30.000000000 +0100
+++ wine-1.7.5/dlls/msvcp60/ios.c	2013-10-30 19:04:41.000000000 +0000
@@ -1409,7 +1409,7 @@
 {
     TRACE("(%p %d)\n", this, ch);
     return basic_streambuf_char__Pnavail(this) ?
-        (*basic_streambuf_char__Pninc(this) = ch) :
+        (unsigned char)(*basic_streambuf_char__Pninc(this) = ch) :
         call_basic_streambuf_char_overflow(this, (unsigned char)ch);
 }
 
@@ -3447,7 +3447,7 @@
                 this->seekhigh, basic_streambuf_char_epptr(&this->base));
 
     if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
-        return (*basic_streambuf_char__Pninc(&this->base) = meta);
+        return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
 
     oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
     size = oldsize|0xf;
@@ -3484,7 +3484,7 @@
         MSVCRT_operator_delete(ptr);
     }
 
-    return (*basic_streambuf_char__Pninc(&this->base) = meta);
+    return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
 }
 
 /* ?pbackfail@?$basic_stringbuf at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@MAEHH at Z */
--- wine-1.7.5.orig/dlls/msvcp71/ios.c	2013-10-25 18:45:30.000000000 +0100
+++ wine-1.7.5/dlls/msvcp71/ios.c	2013-10-30 19:04:08.000000000 +0000
@@ -1451,7 +1451,7 @@
 {
     TRACE("(%p %d)\n", this, ch);
     return basic_streambuf_char__Pnavail(this) ?
-        (*basic_streambuf_char__Pninc(this) = ch) :
+        (unsigned char)(*basic_streambuf_char__Pninc(this) = ch) :
         call_basic_streambuf_char_overflow(this, (unsigned char)ch);
 }
 
@@ -3697,7 +3697,7 @@
                 this->seekhigh, basic_streambuf_char_epptr(&this->base));
 
     if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
-        return (*basic_streambuf_char__Pninc(&this->base) = meta);
+        return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
 
     oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
     size = oldsize|0xf;
@@ -3734,7 +3734,7 @@
         MSVCRT_operator_delete(ptr);
     }
 
-    return (*basic_streambuf_char__Pninc(&this->base) = meta);
+    return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
 }
 
 /* ?pbackfail@?$basic_stringbuf at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@MAEHH at Z */
--- wine-1.7.5.orig/dlls/msvcp80/ios.c	2013-10-25 18:45:30.000000000 +0100
+++ wine-1.7.5/dlls/msvcp80/ios.c	2013-10-30 19:07:40.000000000 +0000
@@ -1406,7 +1406,7 @@
 {
     TRACE("(%p %d)\n", this, ch);
     return basic_streambuf_char__Pnavail(this) ?
-        (*basic_streambuf_char__Pninc(this) = ch) :
+        (unsigned char)(*basic_streambuf_char__Pninc(this) = ch) :
         call_basic_streambuf_char_overflow(this, (unsigned char)ch);
 }
 
@@ -3702,7 +3702,7 @@
                 this->seekhigh, basic_streambuf_char_epptr(&this->base));
 
     if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
-        return (*basic_streambuf_char__Pninc(&this->base) = meta);
+        return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
 
     oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
     size = oldsize|0xf;
@@ -3739,7 +3739,7 @@
         MSVCRT_operator_delete(ptr);
     }
 
-    return (*basic_streambuf_char__Pninc(&this->base) = meta);
+    return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
 }
 
 /* ?pbackfail@?$basic_stringbuf at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@MAEHH at Z */
--- wine-1.7.5.orig/dlls/msvcp90/ios.c	2013-10-25 18:45:30.000000000 +0100
+++ wine-1.7.5/dlls/msvcp90/ios.c	2013-10-30 19:08:18.000000000 +0000
@@ -1406,7 +1406,7 @@
 {
     TRACE("(%p %d)\n", this, ch);
     return basic_streambuf_char__Pnavail(this) ?
-        (*basic_streambuf_char__Pninc(this) = ch) :
+        (unsigned char)(*basic_streambuf_char__Pninc(this) = ch) :
         call_basic_streambuf_char_overflow(this, (unsigned char)ch);
 }
 
@@ -3702,7 +3702,7 @@
                 this->seekhigh, basic_streambuf_char_epptr(&this->base));
 
     if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
-        return (*basic_streambuf_char__Pninc(&this->base) = meta);
+        return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
 
     oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
     size = oldsize|0xf;
@@ -3739,7 +3739,7 @@
         MSVCRT_operator_delete(ptr);
     }
 
-    return (*basic_streambuf_char__Pninc(&this->base) = meta);
+    return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
 }
 
 /* ?pbackfail@?$basic_stringbuf at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@MAEHH at Z */


More information about the wine-patches mailing list