This fixes a byte-ordering problem when displaying 8-bit colormapped images on certain 12, 15, or 16-bit displays. Thanks to Mr. Ryo Shimizu for coming up with the patch, and to Yuuki Harano for sending it to me. --jhb *** xvimage.c.old Fri Jan 13 19:11:36 1995 --- xvimage.c Fri Oct 16 12:34:11 1998 *************** *** 1736,1745 **** if (xim->byte_order == MSBFirst) { for (i=wide*high, ip=imagedata; i>0; i--,pp++) { if (((i+1)&0x1ffff) == 0) WaitCursor(); ! if (dithpic) { ! *ip++ = ((*pp) ? white : black) & 0xffff; ! } ! else *ip++ = xcolors[*pp] & 0xffff; } } else { /* LSBFirst */ --- 1736,1747 ---- if (xim->byte_order == MSBFirst) { for (i=wide*high, ip=imagedata; i>0; i--,pp++) { if (((i+1)&0x1ffff) == 0) WaitCursor(); ! ! if (dithpic) xcol = ((*pp) ? white : black) & 0xffff; ! else xcol = xcolors[*pp] & 0xffff; ! ! *((unsigned char *)ip)++ = (xcol>>8) & 0xff; ! *((unsigned char *)ip)++ = (xcol) & 0xff; } } else { /* LSBFirst */ *************** *** 1749,1756 **** if (dithpic) xcol = ((*pp) ? white : black) & 0xffff; else xcol = xcolors[*pp]; ! /* WAS *ip++ = ((xcol>>8) & 0xff) | ((xcol&0xff) << 8); */ ! *ip++ = (unsigned short) (xcol); } } } --- 1751,1758 ---- if (dithpic) xcol = ((*pp) ? white : black) & 0xffff; else xcol = xcolors[*pp]; ! *((unsigned char *)ip)++ = (xcol) & 0xff; ! *((unsigned char *)ip)++ = (xcol>>8) & 0xff; } } }