xref: /reactos/dll/3rdparty/libtiff/tif_error.c (revision 7eead935)
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 <precomp.h>
29 
30 TIFFErrorHandlerExt _TIFFerrorHandlerExt = NULL;
31 
32 TIFFErrorHandler
33 TIFFSetErrorHandler(TIFFErrorHandler handler)
34 {
35 	TIFFErrorHandler prev = _TIFFerrorHandler;
36 	_TIFFerrorHandler = handler;
37 	return (prev);
38 }
39 
40 TIFFErrorHandlerExt
41 TIFFSetErrorHandlerExt(TIFFErrorHandlerExt handler)
42 {
43 	TIFFErrorHandlerExt prev = _TIFFerrorHandlerExt;
44 	_TIFFerrorHandlerExt = handler;
45 	return (prev);
46 }
47 
48 void
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
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