Although I did not find a pre-built binary for HylaFAX, I found
out that the problem was the code in ghostscript, not in
Hylafax. The tiffg3 output driver in ghostscript 2.6.2 does not
handle 64 bit integers properly.
Replace the gdevtiff.h file with the tiff.h file from the Hylafax/libtiff
distribution. It already contains the proper conditional compiles
for alpha's 64 bit ints.
There are some minor changes required to gdevtiff.c to use the same
typedefs as the include file in place of long integers. Here is a
diff -c listing.
==========================
*** gdevtiff.c.orig Thu Aug 10 11:02:22 1995
--- gdevtiff.c Thu Aug 10 08:26:08 1995
***************
*** 44,53 ****
*/
typedef struct {
FILE* fp;
! long prevdir; /* file offset of previous directory offset */
! long diroff; /* file offset of next write */
int bigendian; /* 1 if machine is big-endian, 0
otherwise */
! unsigned long iwidth; /* width of image data in pixels */
int fax_byte;
int fax_weight;
} TIFFOUT;
--- 44,53 ----
*/
typedef struct {
FILE* fp;
! int32 prevdir; /* file offset of previous directory offset */
! int32 diroff; /* file offset of next write */
int bigendian; /* 1 if machine is big-endian, 0
otherwise */
! uint32 iwidth; /* width of image data in pixels */
int fax_byte;
int fax_weight;
} TIFFOUT;
***************
*** 104,110 ****
static struct pageinfo {
short w, h; /* page width and height in 10ths */
! unsigned long iw; /* image width */
} pageinfo[] = {
#define PAPER_SIZE_LETTER 0
{ 85, 110, 1728 },
--- 104,110 ----
static struct pageinfo {
short w, h; /* page width and height in 10ths */
! uint32 iw; /* image width */
} pageinfo[] = {
#define PAPER_SIZE_LETTER 0
{ 85, 110, 1728 },
***************
*** 220,228 ****
TIFFDirEntry software;
#endif
TIFFDirEntry cleanfaxdata;
! unsigned long diroff; /* offset to next directory */
! unsigned long xresValue[2]; /* xresolution indirect value */
! unsigned long yresValue[2]; /* yresolution indirect value */
} TIFFDirectory;
private TIFFDirectory dirTemplate = {
{ TIFFTAG_SUBFILETYPE, TIFF_LONG, 1, FILETYPE_PAGE },
--- 220,228 ----
TIFFDirEntry software;
#endif
TIFFDirEntry cleanfaxdata;
! uint32 diroff; /* offset to next directory */
! uint32 xresValue[2]; /* xresolution indirect value */
! uint32 yresValue[2]; /* yresolution indirect value */
} TIFFDirectory;
private TIFFDirectory dirTemplate = {
{ TIFFTAG_SUBFILETYPE, TIFF_LONG, 1, FILETYPE_PAGE },
***************
*** 317,323 ****
private int
faxout_end_page(TIFFOUT *faxp)
{
! long diroff, cc;
flushbits(faxp);
diroff = faxp->diroff;
--- 317,323 ----
private int
faxout_end_page(TIFFOUT *faxp)
{
! int32 diroff, cc;
flushbits(faxp);
diroff = faxp->diroff;
Received on Thu Aug 10 1995 - 17:31:23 NZST