grunwald@uiucdcsm.cs.uiuc.edu (04/06/88)
Enclosed is the current set of fixes I have for TeXx as a context diff with
the X11-R2 version of TeXx.
The most important fixes deal with the byte order for Vaxen. I don't know why
it's like this, to be honest.
Other fixes include eliminating extra EXPOSE events. Also, there was a glitch
concerning \specials which is now fixed.
TeXx (and a very much improved TeXsun, which is what I'd like TeXx to look
like) is also available via anonymous FTP from a.cs.uiuc.edu in file
'pub/TeX/iptex.tar.Z'
Dirk Grunwald
Univ. of Illinois
grunwald@m.cs.uiuc.edu
----- DIFFS -----
*** old-texx.c Tue Apr 5 15:32:17 1988
--- texx.c Tue Apr 5 15:27:40 1988
***************
*** 18,24 ****
#include <ctype.h>
#include "dvistuff.h"
! static char *rcsid="$Header: texx.c,v 1.2 88/02/11 16:55:22 jim Exp $" ;
/*
* These constants may need to be changed on your implementation
*/
--- 18,24 ----
#include <ctype.h>
#include "dvistuff.h"
! static char *rcsid="$Header: texx.c,v 1.17 88/02/19 17:00:23 grunwald Exp $" ;
/*
* These constants may need to be changed on your implementation
*/
***************
*** 358,364 ****
/*
* Compute the page size given the number of leaves. We may have
! * to scale back if everything can't fit.
*/
if (leaf_w[SHRINK_NORMAL] * Leaves <= maxWidth) {
--- 358,364 ----
/*
* Compute the page size given the number of leaves. We may have
! * to scale back if everything cant fit.
*/
if (leaf_w[SHRINK_NORMAL] * Leaves <= maxWidth) {
***************
*** 376,382 ****
highpix = XCreateGC(DISP, RootWindow(DISP, defaultScreen), 0, NULL);
forepix = XCreateGC(DISP, RootWindow(DISP, defaultScreen), 0, NULL);
! XCopyGC(DISP, DefaultGC(DISP, 0), (1L<<(GCLastBit+1))-1, highpix);
XCopyGC(DISP, highpix, (1L<<(GCLastBit+1))-1, forepix);
if (reverse) {
--- 376,383 ----
highpix = XCreateGC(DISP, RootWindow(DISP, defaultScreen), 0, NULL);
forepix = XCreateGC(DISP, RootWindow(DISP, defaultScreen), 0, NULL);
! XCopyGC(DISP, DefaultGC(DISP, defaultScreen),
! (1L<<(GCLastBit+1))-1, highpix);
XCopyGC(DISP, highpix, (1L<<(GCLastBit+1))-1, forepix);
if (reverse) {
***************
*** 940,945 ****
--- 941,971 ----
0, g->g_raster,
g->g_width, g->g_height,
16, 0);
+ #ifdef vax
+ /*
+ * This should get some runtime checking. At any rate, this
+ * little routine (taken from reverse_bytes() in xdvi.c) swaps
+ * the byte pairs into the correct order. I am still not sure
+ * why we must do this... [eichin:19880313.1601EST]
+ */
+ {
+ register long x,y;
+ register char *bp;
+ register char c;
+
+ bp = g->g_raster ;
+ for ( y = 0 ; y < g->g_height ; y++) {
+ for ( x = 0 ; x < image->bytes_per_line ; x += 2) {
+ c = *bp ;
+ *bp = *(bp + 1) ;
+ bp++;
+ *bp++ = c ;
+ }
+ }
+ }
+ image->bitmap_bit_order = MSBFirst; /* MSB IS Correct (vax). */
+ #endif vax
+
shrunkenImages[currentShrink][key][charCode] = image;
}
***************
*** 1035,1046 ****
XDrawLine(DISP, pasteUpPixmap[currentShrink][currentLeaf],
specialGC, xconv(fx), yconv(fy), xconv(tx), yconv(ty));
} else {
XDrawLine(DISP, win,
! specialGC, xconv(fx), yconv(fy), xconv(tx), yconv(ty));
}
}
-
/*
* Draw a dot at (x,y)
*/
--- 1061,1074 ----
XDrawLine(DISP, pasteUpPixmap[currentShrink][currentLeaf],
specialGC, xconv(fx), yconv(fy), xconv(tx), yconv(ty));
} else {
+ int offset = currentLeaf * leaf_w[currentShrink];
XDrawLine(DISP, win,
! specialGC,
! xconv(fx) + offset, yconv(fy),
! xconv(tx) + offset, yconv(ty));
}
}
/*
* Draw a dot at (x,y)
*/
***************
*** 1059,1065 ****
#ifdef UNDEF
/*
! * This is the code as it appears in TeXsun. I don't have the time to
* make this do the shading in X-11. If someone does this, please post
* diffs to the net.
*
--- 1087,1093 ----
#ifdef UNDEF
/*
! * This is the code as it appears in TeXsun. I dont have the time to
* make this do the shading in X-11. If someone does this, please post
* diffs to the net.
*
***************
*** 1096,1106 ****
PIX_SRC, shade_pr, 0, 0);
}
else {
pw_replrop(ptube,
! xconv(last_min_x) + currentLeaf*leaf_w[currentShrink]
! + pen_size,
yconv(last_min_y) + pen_size,
! xconv(last_max_x) - xconv(last_min_x) - pen_size,
yconv(last_max_y) - yconv(last_min_y) - pen_size,
PIX_SRC, shade_pr, 0, 0);
}
--- 1124,1134 ----
PIX_SRC, shade_pr, 0, 0);
}
else {
+ int offset = currentLeaf*leaf_w[currentShrink]
pw_replrop(ptube,
! xconv(last_min_x) + pen_size + offset,
yconv(last_min_y) + pen_size,
! xconv(last_max_x) - xconv(last_min_x) - pen_size + offset,
yconv(last_max_y) - yconv(last_min_y) - pen_size,
PIX_SRC, shade_pr, 0, 0);
}
***************
*** 1184,1189 ****
--- 1212,1220 ----
continue;
case Expose:
+ if ( event.xexpose.count > 0 ) break; /* no more flicker!
+ * [eichin:19880328.1332EST]
+ */
string = "\f";
nbytes = 1;
break;