summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tiff/tools/tiffset.c')
-rw-r--r--tiff/tools/tiffset.c23
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++]));