Crap! I know I edited that patch file I just forgot where I put the
edited one. Here is a fresh edit. Please ignore the last one.
Sorry :-/
--
Tres
--- Eterm-0.9.3-orig/src/pixmap.c 2004-07-22 14:12:31.000000000 -0600
+++ Eterm-0.9.3/src/pixmap.c 2005-05-06 08:30:20.000000000 -0600
@@ -1601,19 +1632,16 @@
}
} else {
for (y = h; --y >= 0;) {
+ int r, g, b;
for (x = -w; x < 0; x++) {
- int r, g, b;
-
b = ((DATA16 *) ptr)[x];
- r = (b & 0xf800) * rm;
- g = (b & 0x7e0) * gm;
- b = (b & 0x1f) * bm;
- r |= (!(r >> 16) - 1);
- g |= (!(g >> 11) - 1);
- b |= (!(b >> 5) - 1);
- ((DATA16 *) ptr)[x] = ((r >> 8) & 0xf800)
- | ((g >> 8) & 0x7e0)
- | ((b >> 8) & 0x1f);
+ r = ( (b >> 11 ) * rm ) >> 8;
+ r = ( r > 0x001f ) ? 0xf800 : ( r << 11 );
+ g = (((b >> 5 ) & 0x003f ) * gm ) >> 8;
+ g = ( g > 0x003f ) ? 0x07e0 : ( g << 5 );
+ b = (( b & 0x001f ) * bm ) >> 8;
+ b = ( b > 0x001f ) ? 0x001f : b;
+ ((DATA16 *) ptr)[x] = (r|g|b);
}
ptr += bpl;
}