This mail from Scott describes changes to the library that I have
not made because I couldn't figure out exactly where they went.
Anything not in this file has either been placed in the appropriate
directory (e.g. libtiff/tif_win32.c) or applied to the current
source code (e.g. libtiff/tiffiop.h).
Note that the Window NT/Window 95 support is untested; Scott's work
was done with an earlier version of the library. Hopefully this'll
get cleaned up soon.
Sam
Date: Fri, 14 Apr 95 17:01:42 EDT
From: wagner@itek.com (scott wagner)
Message-Id: <9504142101.AA00764@cyan.>
To: sam@cthulhu.engr.sgi.com
Subject: Re: Libtiff for Win32 (Windows NT / Windows 95)
Hi, Sam!
Enclosed are my libtiff for win32 pieces. They are in the form of 3 files
(tif_w32.c, dllshell.c, and libtiff.def), and 2 diffs (for tiffiop.h and
tiffio.h).
Hope this is not too difficult to separate!
Regards,
Scott Wagner (wagner@itek.com)
tif_w32.c ---------------------------------------------------------------
tiffiop.h ---------------------------------------------------------------
tiffio.h ---------------------------------------------------------------
38a39
> #ifdef _TIFFIOP_
39a41,43
> #else
> typedef void TIFF; /* Avoid ANSI undefined structure warning */
> #endif
66a71,75
> #ifdef WIN32 /* WIN32 identifies Win32 compiles */
> #pragma warn -sig /* Turn off Borland warn of long to short int convert */
> #pragma warn -par /* Turn off Borland warn "Parameter x is never used" */
> DECLARE_HANDLE(thandle_t); /* Win32 file handle */
> #else /* if not WIN32_ */
67a77
> #endif /* defined WIN32 */
(Message tiff:1396)
-- using template mhl.format --
Date: Mon, 17 Apr 1995 07:51:03 EDT
To: sam@cthulhu.engr.sgi.com
From: wagner@itek.com (scott wagner)
Subject: Libtiff for Win32
Return-Path: sam@flake.asd.sgi.com
Delivery-Date: Mon, 17 Apr 1995 05:36:50 PDT
Return-Path: sam@flake.asd.sgi.com
Hello, Sam!
> ... libtiff for win32 pieces. They are in the form of 3 files
> (tif_w32.c, dllshell.c, and libtiff.def), and 2 diffs (for tiffiop.h and
> tiffio.h).
>
> I don't understand how these pieces fit together. Can you please explain
> what dllshell.c and libtiff.def are for?
Sorry I was short on documentation here ... I was rushing to get home to
dinner on Friday and the material for you was the last loose end I had to
deal with. Excuses aside ...
The goal of the adaptation of libtiff to Win32 was to replace only one
environment-specific code module and to make minimal changes to header
files. tif_win32.c required one addition to tiffio.h (the
DECLARE_HANDLE line, which is probably a better way to typedef thandle-t
under Windows 3.1 as well); it also required the addition of pv_map_handle
to the tiff structure and the conditional definition of the
TIFFUnmapFileContents macro in tiffiop.h (this because Win32 uses a handle
and a pointer in mapping memory, and I needed to save both).
Additionally, I made a general style change to tiffio.h. If tiffio.h is
included by a client, which does not include tiffiop.h, then ANSI compilers
warn about the typedef of TIFF to a non-existent structure. To avoid this,
I changed the typedef of TIFF in this case to void.
I also made a style change in the tiff structure. All references to tif_fd
in the library treat it as int, yet the tif_fd member itself is short. I
changed this member to int and added the reserved member to maintain
32-bit structure member alignment in a 32 bit environment. [ At cost of
4 more bytes in an already bloated structure! :-) ] As long as fd's are
less than 64k, the old member works; this is not the case in Win32, and is
not generally a safe assumption.
The module dllshell.c and the file libtiff.def are not specific to the
functionality of libtiff; they are used to make a Win32 dynamic link
library, and would be best packaged with a Win32 makefile, which I have
not yet perfected. I will, however, commit to a Borland and Microsoft C
makefile for libtiff; perhaps these two could be combined with the
makefile for the _next_ (!) release of libtiff when it is ready.
Once again, sorry for the confused message on Friday. I hope that at
least tif_w32 and the tiffio.h and tiffiop.h diffs will be useful for
this release.
Regards,
Scott Wagner (wagner@itek.com)
Itek Graphix
Rochester, NY