1 /* PDFlib GmbH cvsid:
2  * $Id: tif_warning.c,v 1.8 2006/03/24 21:38:00 tm Exp $ */
3 
4 /*
5  * Copyright (c) 1988-1997 Sam Leffler
6  * Copyright (c) 1991-1997 Silicon Graphics, Inc.
7  *
8  * Permission to use, copy, modify, distribute, and sell this software and
9  * its documentation for any purpose is hereby granted without fee, provided
10  * that (i) the above copyright notices and this permission notice appear in
11  * all copies of the software and related documentation, and (ii) the names of
12  * Sam Leffler and Silicon Graphics may not be used in any advertising or
13  * publicity relating to the software without the specific, prior written
14  * permission of Sam Leffler and Silicon Graphics.
15  *
16  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
18  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19  *
20  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
21  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
22  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
23  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
24  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
25  * OF THIS SOFTWARE.
26  */
27 
28 /*
29  * TIFF Library.
30  */
31 #include "tiffiop.h"
32 
33 TIFFErrorHandler
TIFFSetWarningHandler(TIFFErrorHandler handler)34 TIFFSetWarningHandler(TIFFErrorHandler handler)
35 {
36 	TIFFErrorHandler prev = _TIFFwarningHandler;
37 	_TIFFwarningHandler = handler;
38 	return (prev);
39 }
40 
41 void
_TIFFWarning(TIFF * tif,const char * module,const char * fmt,...)42 _TIFFWarning(TIFF* tif, const char* module, const char* fmt, ...)
43 {
44     if (tif && tif->pdflib_error) {
45 	va_list ap;
46 	va_start(ap, fmt);
47 	(*tif->pdflib_warn)(tif, module, fmt, ap);
48 	va_end(ap);
49     } else if (_TIFFwarningHandler) {
50 /* This may happen when calling from tif_jpeg.c and tif_ojpeg.c since these
51  * don't yet have an error handler which provides a PDFlib context for
52  * logging (TODO).
53  */
54 #if 0
55 	va_list ap;
56 	va_start(ap, fmt);
57 	(*_TIFFwarningHandler)(tif, module, fmt, ap);
58 	va_end(ap);
59 #endif
60     }
61 }
62