freebsd-ports/graphics/plotutils/files/patch-tek-egm-bug
Poul-Henning Kamp b5208eda48 Fix a longstanding bug in tek2plot(1) which causes optimized Tek4014
datastreams to render wrongly by up to -1 to -3 points in both X
and Y direction:

The Extra Byte is a persistent register, and it it only present in
the datastream when it changes.

This patch has been submitted to FSF.
2008-11-08 11:24:29 +00:00

36 lines
1.4 KiB
Text

# This patch fixes a bug where the tek2plot program misinterprets
# optimized Tek4014 datastreams which update LoY without sending
# the ExtraByte also.
# This patch has been submitted FSF:
# From: "Poul-Henning Kamp" <phk@phk.freebsd.dk>
# Subject: Re: Bug in plotutils-2.5.1::tek2plot
# To: bug-gnu-utils@gnu.org
# Message-Id: <15929.1226142709@critter.freebsd.dk>
# Date: Sat, 08 Nov 2008 11:11:49 GMT
#######################################################################
diff -ur tek2plot/tek2plot.c tek2plot/tek2plot.c
--- tek2plot/tek2plot.c 2008-07-16 04:00:16.000000000 +0000
+++ tek2plot/tek2plot.c 2008-11-08 11:04:49.000000000 +0000
@@ -559,7 +559,7 @@
int temp_three = 0;
/* following variables are saved from point to point */
- static int saved_lo_y = 0, saved_hi_x = 0, saved_hi_y = 0;
+ static int saved_lo_y = 0, saved_hi_x = 0, saved_hi_y = 0, saved_egm = 0;
static bool margin_reset = false;
int byte_read, type;
@@ -709,10 +709,12 @@
lo_y = got_lo_y ? lo_y : saved_lo_y;
hi_x = got_hi_x ? hi_x : saved_hi_x;
hi_y = got_hi_y ? hi_y : saved_hi_y;
+ egm = got_egm ? egm : saved_egm;
saved_lo_y = lo_y;
saved_hi_x = hi_x;
saved_hi_y = hi_y;
+ saved_egm = egm;
/* On a genuine Tektronix 4014, the MSB of the 5-bit EGM
byte sets the margin to equal Margin2 (2048) */