diff options
Diffstat (limited to 'tiff/tools/tiffset.c')
-rw-r--r-- | tiff/tools/tiffset.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/tiff/tools/tiffset.c b/tiff/tools/tiffset.c index 894c9f1f..7ecc401b 100644 --- a/tiff/tools/tiffset.c +++ b/tiff/tools/tiffset.c @@ -1,6 +1,4 @@ /****************************************************************************** - * $Id: tiffset.c,v 1.19 2017-10-01 17:38:12 erouault Exp $ - * * Project: libtiff tools * Purpose: Mainline for setting metadata in existing TIFF files. * Author: Frank Warmerdam, warmerdam@pobox.com @@ -29,6 +27,7 @@ ****************************************************************************** */ +#include "tif_config.h" #include <stdio.h> #include <string.h> @@ -189,6 +188,9 @@ main(int argc, char* argv[]) size = 4; break; + case TIFF_LONG8: + case TIFF_SLONG8: + case TIFF_IFD8: case TIFF_DOUBLE: size = 8; break; @@ -225,7 +227,16 @@ main(int argc, char* argv[]) case TIFF_SLONG: case TIFF_IFD: for (i = 0; i < wc; i++) - ((uint32 *)array)[i] = atol(argv[arg_index+i]); + ((int32 *)array)[i] = atol(argv[arg_index+i]); + break; + case TIFF_LONG8: + for (i = 0; i < wc; i++) + ((uint64 *)array)[i] = strtoll(argv[arg_index+i], (char **)NULL, 10); + break; + case TIFF_SLONG8: + case TIFF_IFD8: + for (i = 0; i < wc; i++) + ((int64 *)array)[i] = strtoll(argv[arg_index+i], (char **)NULL, 10); break; case TIFF_DOUBLE: for (i = 0; i < wc; i++) @@ -276,6 +287,12 @@ main(int argc, char* argv[]) ret = TIFFSetField(tiff, TIFFFieldTag(fip), atol(argv[arg_index++])); break; + case TIFF_LONG8: + case TIFF_SLONG8: + case TIFF_IFD8: + ret = TIFFSetField(tiff, TIFFFieldTag(fip), + strtoll(argv[arg_index++], (char **)NULL, 10)); + break; case TIFF_DOUBLE: ret = TIFFSetField(tiff, TIFFFieldTag(fip), atof(argv[arg_index++])); |