diff options
Diffstat (limited to 'dviware/beebe/updates/00mail.17')
-rw-r--r-- | dviware/beebe/updates/00mail.17 | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/dviware/beebe/updates/00mail.17 b/dviware/beebe/updates/00mail.17 new file mode 100644 index 0000000000..b96af76798 --- /dev/null +++ b/dviware/beebe/updates/00mail.17 @@ -0,0 +1,146 @@ +31-May-88 18:41:51-MDT,5098;000000000000 +Date: Tue 31 May 88 18:41:51-MDT +From: "Nelson H.F. Beebe" <Beebe@SCIENCE.UTAH.EDU> +Subject: DVI driver family update #17 +To: "DVI mailing list part 2": ; +cc: BEEBE@SCIENCE.UTAH.EDU +X-US-Mail: "Center for Scientific Computing, South Physics, University of Utah, Salt Lake City, UT 84112" +X-Telephone: (801) 581-5254 +Message-ID: <12402826690.23.BEEBE@SCIENCE.UTAH.EDU> + + DVI Driver Family Update #17 + [31-May-88] + + +============= +A SHORT FLASH +============= + +I thought that #16 [26-May-88] would be the last issue until +early fall, but I just discovered that an important bug in dvialw +found on February did not get recorded in the change file, and so +did not make it into the newsletter. The day after posting #16, +Jerry Leichter and I solved a long-standing bug in dvijep. Here +are the change log entries. + +[30-May-88] {Thanks to Jerry Leichter (LEICHTER@Venus.YCC.Yale.Edu) + for providing an example that exposed this bug.} + In dvijep.c, rules are output one dot too high. + According to the HP documentation, the position + of a rule is the upper-left corner. I took this + to mean that the rule would be output starting + just under the pixel at (x,y) in that corner. + What they must mean is that (x,y) is the position + of the pixel in the upper-left corner of the + filled area. Change the definitions of RULE() + and RULE2() about line 160 to reduce the height + value by 1 in the arguments to MOVETO(): + +diff -c dvijep.c,75 dvijep.c +*** dvijep.c,75 Wed May 18 09:42:01 1988 +--- dvijep.c Mon May 30 19:03:07 1988 +*************** +*** 162,174 **** + lower-left corner, while the LaserJet Plus uses the upper-left corner. + */ + #define RULE(x,y,width,height) {\ +! MOVETO(x,(y)+height);PUTESC;\ + sprintf(plotfs,"*c%da%dbP",width,height); OUTST(plotfs);\ + } + /* Set rule of same size as previous one at TeX position (x,y). The + device coordinates will be changed on completion. */ + #define RULE2(x,y) {\ +! MOVETO(x,(y)+rule_height);\ + PUTESC;OUTST("*cP");\ + } + /* Set the current font and character in preparation for a DOWNLOADCHAR */ +--- 162,174 ---- + lower-left corner, while the LaserJet Plus uses the upper-left corner. + */ + #define RULE(x,y,width,height) {\ +! MOVETO(x,(y)+height-1);PUTESC;\ + sprintf(plotfs,"*c%da%dbP",width,height); OUTST(plotfs);\ + } + /* Set rule of same size as previous one at TeX position (x,y). The + device coordinates will be changed on completion. */ + #define RULE2(x,y) {\ +! MOVETO(x,(y)+rule_height-1);\ + PUTESC;OUTST("*cP");\ + } + /* Set the current font and character in preparation for a DOWNLOADCHAR */ + + The same correction must be made to dvilzr.c for + the DataProducts laser printer. + + I had previously received reports of suspicions + of an error in dvijep's rule positions, but no + one ever was able to supply an example that I + could reproduce locally. Here is Jerry's + excellent little test file: + +\documentstyle[12pt]{article} +\def\vec(#1,#2){\put(0,0){\vector(#1,#2){50}}} +\begin{document} + +\setlength{\unitlength}{.01in} +\begin{picture}(0,0)(100,100) +\vec(-1,0) +\vec(1,0) +\vec(0,1) +\vec(0,-1) +% +\vec(-4,1)\vec(-3,1)\vec(-2,1)\vec(-1,1) +\vec(4,1)\vec(3,1)\vec(2,1)\vec(1,1) +% +\vec(-3,2)\vec(-1,2) +\vec(3,2)\vec(1,2) +% +\vec(-4,3)\vec(-2,3)\vec(-1,3) +\vec(4,3)\vec(2,3)\vec(1,3) +% +\vec(-3,4)\vec(-1,4) +\vec(3,4)\vec(1,4) +% +\vec(-4,-1)\vec(-3,-1)\vec(-2,-1)\vec(-1,-1) +\vec(4,-1)\vec(3,-1)\vec(2,-1)\vec(1,-1) +% +\vec(-3,-2)\vec(-1,-2) +\vec(3,-2)\vec(1,-2) +% +\vec(-4,-3)\vec(-2,-3)\vec(-1,-3) +\vec(4,-3)\vec(2,-3)\vec(1,-3) +% +\vec(-3,-4)\vec(-1,-4) +\vec(3,-4)\vec(1,-4) +% +\end{picture} +\end{document} + + When printed with dvialw, the two horizontal + rules are printed correctly; before the above + correction to dvijep, they were one pixel too + high, (this gives a visible white streak). The + correction should also fix the misalignment with + the arrowheads. + +[30-May-88] + The following bug in dvialw.c was fixed on + 3-Feb-88, but unfortunately didn't make it into + this log. + +diff -c dvialw.c,78 dvialw.c,79 +*** dvialw.c,78 Sun Nov 1 11:21:38 1987 +--- dvialw.c,79 Wed Feb 3 16:38:28 1988 +*************** +*** 1080,1085 **** +--- 1080,1086 ---- + } + OUT_CHR('('); + OUT_XCHR(c); ++ OUT_CHR(')'); + if (ycp != str_ycp) + { + OUT_NUM(xcp); + + There was a missing ')' in the output. +------- |