1 /*
2 * Copyright (c) 1988-1997 Sam Leffler
3 * Copyright (c) 1991-1997 Silicon Graphics, Inc.
4 *
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.
12 *
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.
16 *
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
22 * OF THIS SOFTWARE.
23 */
24
25 /*
26 * TIFF Library.
27 */
28 #include "tiffiop.h"
29
30 TIFFErrorHandlerExt _TIFFerrorHandlerExt = NULL;
31
32 TIFFErrorHandler
TIFFSetErrorHandler(TIFFErrorHandler handler)33 TIFFSetErrorHandler(TIFFErrorHandler handler)
34 {
35 TIFFErrorHandler prev = _TIFFerrorHandler;
36 _TIFFerrorHandler = handler;
37 return (prev);
38 }
39
40 TIFFErrorHandlerExt
TIFFSetErrorHandlerExt(TIFFErrorHandlerExt handler)41 TIFFSetErrorHandlerExt(TIFFErrorHandlerExt handler)
42 {
43 TIFFErrorHandlerExt prev = _TIFFerrorHandlerExt;
44 _TIFFerrorHandlerExt = handler;
45 return (prev);
46 }
47
48 void
TIFFError(const char * module,const char * fmt,...)49 TIFFError(const char* module, const char* fmt, ...)
50 {
51 va_list ap;
52 if (_TIFFerrorHandler) {
53 va_start(ap, fmt);
54 (*_TIFFerrorHandler)(module, fmt, ap);
55 va_end(ap);
56 }
57 if (_TIFFerrorHandlerExt) {
58 va_start(ap, fmt);
59 (*_TIFFerrorHandlerExt)(0, module, fmt, ap);
60 va_end(ap);
61 }
62 }
63
64 void
TIFFErrorExt(thandle_t fd,const char * module,const char * fmt,...)65 TIFFErrorExt(thandle_t fd, const char* module, const char* fmt, ...)
66 {
67 va_list ap;
68 if (_TIFFerrorHandler) {
69 va_start(ap, fmt);
70 (*_TIFFerrorHandler)(module, fmt, ap);
71 va_end(ap);
72 }
73 if (_TIFFerrorHandlerExt) {
74 va_start(ap, fmt);
75 (*_TIFFerrorHandlerExt)(fd, module, fmt, ap);
76 va_end(ap);
77 }
78 }
79
80 /*
81 * Local Variables:
82 * mode: c
83 * c-basic-offset: 8
84 * fill-column: 78
85 * End:
86 */
87