Hallo, my last fix to X11DRV_DIB_SetImageBits_RLE8 fixed a crash in the msie3 installer, but was not right with handling additional pixels in a RLE8 source. The right fix is to ignore additional pixels outside the destination width. Changelog: wine/graphics/x11drv/dib.c: X11DRV_DIB_SetImageBits_RLE8 Ignore additional pixel ouside the destination width Bye Uwe Bonnes [EMAIL PROTECTED] Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ---------- Index: wine/graphics/x11drv/dib.c =================================================================== RCS file: /home/wine/wine/graphics/x11drv/dib.c,v retrieving revision 1.55 diff -u -r1.55 dib.c --- wine/graphics/x11drv/dib.c 2000/08/25 21:56:19 1.55 +++ wine/graphics/x11drv/dib.c 2000/09/07 11:35:32 @@ -823,6 +832,15 @@ if (length) { length--; if(x >= width) { + /* FIXME: With RLE8 we must simply ignore + additional pixels. Switching to + a new line was wrong. Probably + the same needs to be done for RLE4 + too. Can't check for lack of test + cases. + [EMAIL PROTECTED] + 000906 + */ x = 0; if(--lines < 0) return; @@ -1255,12 +1273,8 @@ while(length--) { - if (x>=dstwidth) - { - x=0; - line--; - } - XPutPixel(bmpImage, x++, line, color); + if (x<dstwidth) + XPutPixel(bmpImage, x++, line, color); } } else @@ -1324,13 +1338,9 @@ while(length--) { color_index = (*pIn++); - if (x>=dstwidth) - { - x=0; - line--; - } - XPutPixel(bmpImage, x++, line, - colors[color_index]); + if (x<dstwidth) + XPutPixel(bmpImage, x++, line, + colors[color_index]); } /*