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 _TIFFwarningHandlerExt = NULL;
31 
32 TIFFErrorHandler
TIFFSetWarningHandler(TIFFErrorHandler handler)33 TIFFSetWarningHandler(TIFFErrorHandler handler)
34 {
35 	TIFFErrorHandler prev = _TIFFwarningHandler;
36 	_TIFFwarningHandler = handler;
37 	return (prev);
38 }
39 
40 TIFFErrorHandlerExt
TIFFSetWarningHandlerExt(TIFFErrorHandlerExt handler)41 TIFFSetWarningHandlerExt(TIFFErrorHandlerExt handler)
42 {
43 	TIFFErrorHandlerExt prev = _TIFFwarningHandlerExt;
44 	_TIFFwarningHandlerExt = handler;
45 	return (prev);
46 }
47 
48 void
TIFFWarning(const char * module,const char * fmt,...)49 TIFFWarning(const char* module, const char* fmt, ...)
50 {
51 	va_list ap;
52 	if (_TIFFwarningHandler) {
53 		va_start(ap, fmt);
54 		(*_TIFFwarningHandler)(module, fmt, ap);
55 		va_end(ap);
56 	}
57 	if (_TIFFwarningHandlerExt) {
58 		va_start(ap, fmt);
59 		(*_TIFFwarningHandlerExt)(0, module, fmt, ap);
60 		va_end(ap);
61 	}
62 }
63 
64 void
TIFFWarningExt(thandle_t fd,const char * module,const char * fmt,...)65 TIFFWarningExt(thandle_t fd, const char* module, const char* fmt, ...)
66 {
67 	va_list ap;
68 	if (_TIFFwarningHandler) {
69 		va_start(ap, fmt);
70 		(*_TIFFwarningHandler)(module, fmt, ap);
71 		va_end(ap);
72 	}
73 	if (_TIFFwarningHandlerExt) {
74 		va_start(ap, fmt);
75 		(*_TIFFwarningHandlerExt)(fd, module, fmt, ap);
76 		va_end(ap);
77 	}
78 }
79 
80 
81 /*
82  * Local Variables:
83  * mode: c
84  * c-basic-offset: 8
85  * fill-column: 78
86  * End:
87  */
88