1 /* PDFlib GmbH cvsid:
2  * $Id: tif_error.c,v 1.7 2005/12/21 10:57:04 rjs 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
TIFFSetErrorHandler(TIFFErrorHandler handler)34 TIFFSetErrorHandler(TIFFErrorHandler handler)
35 {
36 	TIFFErrorHandler prev = _TIFFerrorHandler;
37 	_TIFFerrorHandler = handler;
38 	return (prev);
39 }
40 
41 void
_TIFFError(TIFF * tif,const char * module,const char * fmt,...)42 _TIFFError(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_error)(tif, module, fmt, ap);
48 	va_end(ap);
49     } else if (_TIFFerrorHandler) {
50 	va_list ap;
51 	va_start(ap, fmt);
52 	(*_TIFFerrorHandler)(tif, module, fmt, ap);
53 	va_end(ap);
54     }
55 }
56