mikew@wyse.wyse.com (Mike Wexler) (12/03/88)
Submitted-by: dana@thumper.bellcore.com (Dana A. Chee) Posting-number: Volume 2, Issue 27 Archive-name: bitimp/patch1 This is a patch to the contributed package bitimp on the R3 tape (contrib/clients/bitimp). It removes the extra droppings on the right edges of windows. Dana Chee, Bellcore, dana@thumper.bellcore.com *** /u/dana/Xr3/contrib/clients/xipr/bitimp.c Fri Aug 12 09:17:51 1988 --- ./bitimp.c Tue Nov 22 12:24:56 1988 *************** *** 697,703 **** --- 697,705 ---- int i, j, k, + l, slop; + unsigned char tail; unsigned nbytes; register char *cp; char *raster; *************** *** 706,726 **** if ((i = XReadDumpFP (BitIn, &xwd, (char **) 0, &raster)) <= 0) adios (NULLCP, "window dump file is in bad format"); ! slop = (i = xwd.pixmap_width % PSIZE) ? PSIZE - i : 0; ! imPbegin (PixPerIn, PixPerIn, xwd.pixmap_width + slop, xwd.pixmap_height); ! k = xwd.bytes_per_line; ! ! if (slop) ! slop = (xwd.pixmap_width + slop) / 8 - k; ! cp = raster; for (i = xwd.pixmap_height; i > 0; i--) { ! for (j = k; j > 0; j--) imPmap ((unsigned char) (*cp++)); ! for (j = slop; j > 0; j--) /* Imagen pads to PSIZE boundaries */ imPmap ((unsigned char) 0x00); } --- 708,734 ---- if ((i = XReadDumpFP (BitIn, &xwd, (char **) 0, &raster)) <= 0) adios (NULLCP, "window dump file is in bad format"); ! k = xwd.bytes_per_line; /* # of stored bytes per line */ ! l = (xwd.pixmap_width + 7) / 8; /* # of useful bytes per line */ ! ! slop = (i = k % PBYTES) ? PBYTES - i : 0; /* how many more bytes needed*/ ! imPbegin (PixPerIn, PixPerIn, (k + slop)*8, xwd.pixmap_height); ! tail = (i = xwd.pixmap_width % 8) ? 8 - i : 0; ! tail = (unsigned)0xff << tail; ! cp = raster; for (i = xwd.pixmap_height; i > 0; i--) { ! for (j = l; j > 1; j--) imPmap ((unsigned char) (*cp++)); ! imPmap((unsigned char) (*cp++ & tail)); /* clip the last byte */ ! ! for (j = (k - l); j > 0; j--) /* put out extra bytes */ ! imPmap((unsigned char) (*cp++ & 0x00)); ! ! for (j = slop; j > 0; j--) /* Imagen pads to PBYTES boundaries */ imPmap ((unsigned char) 0x00); } -- Mike Wexler(wyse!mikew) Phone: (408)433-1000 x1330 Moderator of comp.sources.x