Resolves: tdf#151395 need to track tiff offset from start of stream

when importing them from EPS

Change-Id: Ia3ba2aa188f8dcee0ede6d43311c5dcdccb1eb25
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147162
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/vcl/source/filter/itiff/itiff.cxx b/vcl/source/filter/itiff/itiff.cxx
index a306317..5abd97e 100644
--- a/vcl/source/filter/itiff/itiff.cxx
+++ b/vcl/source/filter/itiff/itiff.cxx
@@ -38,11 +38,13 @@ namespace
    struct Context
    {
        SvStream& rStream;
        tsize_t nStart;
        tsize_t nSize;
        bool bAllowOneShortRead;
        Context(SvStream& rInStream, tsize_t nInSize)
        Context(SvStream& rInStream)
            : rStream(rInStream)
            , nSize(nInSize)
            , nStart(rInStream.Tell())
            , nSize(rInStream.remainingSize())
            , bAllowOneShortRead(false)
        {
        }
@@ -76,9 +78,10 @@ static toff_t tiff_seek(thandle_t handle, toff_t offset, int whence)
    switch (whence)
    {
        case SEEK_SET:
            offset = pContext->nStart + offset;
            break;
        case SEEK_CUR:
            offset = pContext->rStream.Tell() + offset;;
            offset = pContext->rStream.Tell() + offset;
            break;
        case SEEK_END:
            offset = pContext->rStream.TellEnd() + offset;
@@ -90,7 +93,7 @@ static toff_t tiff_seek(thandle_t handle, toff_t offset, int whence)

    pContext->rStream.Seek(offset);

    return offset;
    return offset - pContext->nStart;
}

static int tiff_close(thandle_t)
@@ -113,7 +116,7 @@ bool ImportTiffGraphicImport(SvStream& rTIFF, Graphic& rGraphic)
        TIFFSetWarningHandler(origWarningHandler);
    });

    Context aContext(rTIFF, rTIFF.remainingSize());
    Context aContext(rTIFF);
    TIFF* tif = TIFFClientOpen("libtiff-svstream", "r", &aContext,
                               tiff_read, tiff_write,
                               tiff_seek, tiff_close,