summarylogtreecommitdiffstats
path: root/fix-hylafax.patch
blob: 635b6aef3d7cbb3f204d8338a16b6e7bd07c3549 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From 7757b91a71631ada835740733f3dab51eda36df8 Mon Sep 17 00:00:00 2001
From: erouault <erouault>
Date: Tue, 13 Dec 2016 18:15:48 +0000
Subject: [PATCH] * libtiff/tif_fax3.h: revert change done on 2016-01-09 that
 made Param member of TIFFFaxTabEnt structure a uint16 to reduce size of the
 binary. It happens that the Hylafax software uses the tables that follow this
 typedef (TIFFFaxMainTable, TIFFFaxWhiteTable, TIFFFaxBlackTable), also they
 are not in a public libtiff header. Raised by Lee Howard. Fixes
 http://bugzilla.maptools.org/show_bug.cgi?id=2636

---
 ChangeLog          | 10 ++++++++++
 libtiff/tif_fax3.h |  4 +++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/libtiff/tif_fax3.h b/libtiff/tif_fax3.h
index aafb5a7..2b64290 100644
--- a/libtiff/tif_fax3.h
+++ b/libtiff/tif_fax3.h
@@ -81,10 +81,12 @@ extern void _TIFFFax3fillruns(unsigned char*, uint32*, uint32*, uint32);
 #define S_MakeUp   11
 #define S_EOL      12
 
+/* WARNING: do not change the layout of this structure as the Halyfax software */
+/* really depends on it. See http://bugzilla.maptools.org/show_bug.cgi?id=2636 */
 typedef struct {                /* state table entry */
 	unsigned char State;    /* see above */
 	unsigned char Width;    /* width of code in bits */
-	uint16 Param;           /* unsigned 16-bit run length in bits */
+	uint32 Param;           /* unsigned 32-bit run length in bits (holds on 16 bit actually, but cannot be changed. See above warning) */
 } TIFFFaxTabEnt;
 
 extern const TIFFFaxTabEnt TIFFFaxMainTable[];