home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
x
/
volume2
/
bitimp
/
patch1
next >
Wrap
Internet Message Format
|
1988-12-02
|
3KB
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