diff options
Diffstat (limited to 'libtiff/tif_dirwrite.c')
-rw-r--r-- | libtiff/tif_dirwrite.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/libtiff/tif_dirwrite.c b/libtiff/tif_dirwrite.c index 3131d406..7363d869 100644 --- a/libtiff/tif_dirwrite.c +++ b/libtiff/tif_dirwrite.c @@ -1,4 +1,4 @@ -/* $Header: /usr/local/cvs/internal/libtiff/libtiff/tif_dirwrite.c,v 1.1.1.1 1999/07/27 21:50:27 mike Exp $ */ +/* $Header: /cvsroot/osrs/libtiff/libtiff/tif_dirwrite.c,v 1.3 1999/09/08 19:07:02 warmerda Exp $ */ /* * Copyright (c) 1988-1997 Sam Leffler @@ -474,6 +474,28 @@ TIFFWriteNormalTag(TIFF* tif, TIFFDirEntry* dir, const TIFFFieldInfo* fip) return (0); } break; + + /* added based on patch request from MARTIN.MCBRIDE.MM@agfa.co.uk, + correctness not verified (FW, 99/08) */ + case TIFF_BYTE: + case TIFF_SBYTE: + if (wc > 1) { + char* cp; + if (wc == (u_short) TIFF_VARIABLE) { + TIFFGetField(tif, fip->field_tag, &wc, &cp); + dir->tdir_count = wc; + } else + TIFFGetField(tif, fip->field_tag, &cp); + if (!TIFFWriteByteArray(tif, dir, cp)) + return (0); + } else { + char cv; + TIFFGetField(tif, fip->field_tag, &cv); + if (!TIFFWriteByteArray(tif, dir, &cv)) + return (0); + } + break; + case TIFF_UNDEFINED: { char* cp; if (wc == (u_short) TIFF_VARIABLE) { @@ -488,6 +510,9 @@ TIFFWriteNormalTag(TIFF* tif, TIFFDirEntry* dir, const TIFFFieldInfo* fip) return (0); } break; + + case TIFF_NOTYPE: + break; } return (1); } |