home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!wyse!mikew
- From: mikew@wyse.wyse.com (Mike Wexler)
- Newsgroups: comp.sources.x
- Subject: v02i027: generic bitmap to Impress converter, Patch1
- Message-ID: <1871@wyse.wyse.com>
- Date: 2 Dec 88 19:19:08 GMT
- Organization: Wyse Technology, San Jose
- Lines: 81
- Approved: mikew@wyse.com
-
- 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
-