/*1* Copyright (c) 1988-1997 Sam Leffler2* Copyright (c) 1991-1997 Silicon Graphics, Inc.3*4* Permission to use, copy, modify, distribute, and sell this software and5* its documentation for any purpose is hereby granted without fee, provided6* that (i) the above copyright notices and this permission notice appear in7* all copies of the software and related documentation, and (ii) the names of8* Sam Leffler and Silicon Graphics may not be used in any advertising or9* publicity relating to the software without the specific, prior written10* permission of Sam Leffler and Silicon Graphics.11*12* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,13* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY14* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.15*16* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR17* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,18* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,19* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF20* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE21* OF THIS SOFTWARE.22*/2324/*25* TIFF Library.26*/27#include "tiffiop.h"2829TIFFErrorHandlerExt _TIFFwarningHandlerExt = NULL;3031TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler handler)32{33TIFFErrorHandler prev = _TIFFwarningHandler;34_TIFFwarningHandler = handler;35return (prev);36}3738TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt handler)39{40TIFFErrorHandlerExt prev = _TIFFwarningHandlerExt;41_TIFFwarningHandlerExt = handler;42return (prev);43}4445void TIFFWarning(const char *module, const char *fmt, ...)46{47va_list ap;48if (_TIFFwarningHandler)49{50va_start(ap, fmt);51(*_TIFFwarningHandler)(module, fmt, ap);52va_end(ap);53}54if (_TIFFwarningHandlerExt)55{56va_start(ap, fmt);57(*_TIFFwarningHandlerExt)(0, module, fmt, ap);58va_end(ap);59}60}6162void TIFFWarningExt(thandle_t fd, const char *module, const char *fmt, ...)63{64va_list ap;65if (_TIFFwarningHandler)66{67va_start(ap, fmt);68(*_TIFFwarningHandler)(module, fmt, ap);69va_end(ap);70}71if (_TIFFwarningHandlerExt)72{73va_start(ap, fmt);74(*_TIFFwarningHandlerExt)(fd, module, fmt, ap);75va_end(ap);76}77}7879void TIFFWarningExtR(TIFF *tif, const char *module, const char *fmt, ...)80{81va_list ap;82if (tif && tif->tif_warnhandler)83{84va_start(ap, fmt);85int stop = (*tif->tif_warnhandler)(tif, tif->tif_warnhandler_user_data,86module, fmt, ap);87va_end(ap);88if (stop)89return;90}91if (_TIFFwarningHandler)92{93va_start(ap, fmt);94(*_TIFFwarningHandler)(module, fmt, ap);95va_end(ap);96}97if (_TIFFwarningHandlerExt)98{99va_start(ap, fmt);100(*_TIFFwarningHandlerExt)(tif ? tif->tif_clientdata : 0, module, fmt,101ap);102va_end(ap);103}104}105106107