2 * Copyright (c) 1988-1997 Sam Leffler
3 * Copyright (c) 1991-1997 Silicon Graphics, Inc.
5 * Permission to use, copy, modify, distribute, and sell this software and
6 * its documentation for any purpose is hereby granted without fee, provided
7 * that (i) the above copyright notices and this permission notice appear in
8 * all copies of the software and related documentation, and (ii) the names of
9 * Sam Leffler and Silicon Graphics may not be used in any advertising or
10 * publicity relating to the software without the specific, prior written
11 * permission of Sam Leffler and Silicon Graphics.
13 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
14 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
15 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
17 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
18 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
19 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
20 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
21 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
30 TIFFErrorHandlerExt _TIFFerrorHandlerExt
= NULL
;
32 TIFFErrorHandler
TIFFSetErrorHandler(TIFFErrorHandler handler
)
34 TIFFErrorHandler prev
= _TIFFerrorHandler
;
35 _TIFFerrorHandler
= handler
;
39 TIFFErrorHandlerExt
TIFFSetErrorHandlerExt(TIFFErrorHandlerExt handler
)
41 TIFFErrorHandlerExt prev
= _TIFFerrorHandlerExt
;
42 _TIFFerrorHandlerExt
= handler
;
46 void TIFFError(const char *module
, const char *fmt
, ...)
49 if (_TIFFerrorHandler
)
52 (*_TIFFerrorHandler
)(module
, fmt
, ap
);
55 if (_TIFFerrorHandlerExt
)
58 (*_TIFFerrorHandlerExt
)(0, module
, fmt
, ap
);
63 void TIFFErrorExt(thandle_t fd
, const char *module
, const char *fmt
, ...)
66 if (_TIFFerrorHandler
)
69 (*_TIFFerrorHandler
)(module
, fmt
, ap
);
72 if (_TIFFerrorHandlerExt
)
75 (*_TIFFerrorHandlerExt
)(fd
, module
, fmt
, ap
);
80 void _TIFFErrorEarly(TIFFOpenOptions
*opts
, thandle_t clientdata
,
81 const char *module
, const char *fmt
, ...)
84 if (opts
&& opts
->errorhandler
)
87 int stop
= opts
->errorhandler(NULL
, opts
->errorhandler_user_data
,
93 if (_TIFFerrorHandler
)
96 (*_TIFFerrorHandler
)(module
, fmt
, ap
);
99 if (_TIFFerrorHandlerExt
)
102 (*_TIFFerrorHandlerExt
)(clientdata
, module
, fmt
, ap
);
107 void TIFFErrorExtR(TIFF
*tif
, const char *module
, const char *fmt
, ...)
110 if (tif
&& tif
->tif_errorhandler
)
113 int stop
= (*tif
->tif_errorhandler
)(
114 tif
, tif
->tif_errorhandler_user_data
, module
, fmt
, ap
);
119 if (_TIFFerrorHandler
)
122 (*_TIFFerrorHandler
)(module
, fmt
, ap
);
125 if (_TIFFerrorHandlerExt
)
128 (*_TIFFerrorHandlerExt
)(tif
? tif
->tif_clientdata
: NULL
, module
, fmt
,