the -I option for the GNU diff and the FreeBSD diff
behaves differently regarding escaping the ( ) and |
By using two -I option, we avoid using such charracters.
fixes#179
this fixes the regression introduced in 02bb0175 / 72c4acef
( merge request !110 )
It may be a better fix to do the overflow check in SETVALUE() but the
macro do { } while(0) construct makes it difficult to quit the loop
properly.
Unfortunately, custom rational tags (TIFF_RATIONAL with field_bit=FIELD_CUSTOM) are defined as TIFF_SETGET_DOUBLE
but for the reading interface and LibTiff internally they are stored ALLWAYS as floating point SINGLE precision.
Double precision custom rational tags are not supported by LibTiff.
For the GPS tags in WGS84 a higher accuracy / precision is needed.
Therefore, this upgrade is made, keeping the old interface for the already defined tags and allowing a double precision definition,
as well as calculating rationals with higher accuracy / precision.
This higher accuracy can be used for newly defined tags like that in EXIF/GPS.
Refer also to the very old Bugzilla issue 2542 (#69)
A test file rational_precision2double.c is added, which shows prevention of the old interface to the already defined custom rational tags
with the standard library as well as with the upgraded library.
Also TIFFTAG_XRESOLUTION, TIFFTAG_YRESOLUTION, TIFFTAG_XPOSITION, TIFFTAG_YPOSITION amended from TIFF_SETGET_DOUBLE to TIFF_SETGET_FLOAT and testcase inserted in rational_precision2double.c
mingw-w64 will provide libm symbols by default without -lm and mingw-64's
libm is just a stub.
This is just to make sure that on systems with msys2 and also cygwin, cmake
doesn't find a libm that actually contains math functions.
tiffcrop.c:4027:20: runtime error: left shift of 190 by 24 places cannot be represented in type 'int'
C treats (byte << 24) as an int expression.
casting explicitely to unsigned type uint32 avoids the problem.
the same issue has been fixed elsewhere with a242136916
I detected the bug with the test file of #86
is only one boolean setting to enable building strtoll() and strtoull()
port functions. The boolean setting enables the necessary port files
to be built, but the remainder of the logic is via pre-processor code
in the common tif_config.h, which was prepared before entering the
port directory to do a build.
directory and add an include path so that the port files can include
tif_config.h. Do not actually include tif_config.h at this time
since CMake and Autotools builds are not prepared for that. This
issue could be handled by updating the CMake and Autotools builds
or by adding a define which directs libport.h to include tif_config.h.
tif_config.vc.h:
Always define HAVE_STRTOL/HAVE_STRTOUL.
Define HAVE_STRTOLL/HAVE_STRTOULL if _MSC_VER >= 1900.
nmake.opt:
Provide defaults suitable for MSVC prior to 14.0.
libport.h:
The sense of the pre-processor logic was inverted from what it
should be. The intention is to only provide the prototype if the
function is missing.