xref: /aosp_15_r20/external/giflib/qprintf.c (revision 324bb76b8d05e2a05aa88511fff61cf3f9ca5892)
1*324bb76bSAndroid Build Coastguard Worker /*****************************************************************************
2*324bb76bSAndroid Build Coastguard Worker 
3*324bb76bSAndroid Build Coastguard Worker  qprintf.c - module to emulate a printf with a possible quiet (disable mode.)
4*324bb76bSAndroid Build Coastguard Worker 
5*324bb76bSAndroid Build Coastguard Worker  A global variable GifNoisyPrint controls the printing of this routine
6*324bb76bSAndroid Build Coastguard Worker 
7*324bb76bSAndroid Build Coastguard Worker SPDX-License-Identifier: MIT
8*324bb76bSAndroid Build Coastguard Worker 
9*324bb76bSAndroid Build Coastguard Worker *****************************************************************************/
10*324bb76bSAndroid Build Coastguard Worker 
11*324bb76bSAndroid Build Coastguard Worker #include <stdarg.h>
12*324bb76bSAndroid Build Coastguard Worker #include <stdbool.h>
13*324bb76bSAndroid Build Coastguard Worker #include <stdio.h>
14*324bb76bSAndroid Build Coastguard Worker 
15*324bb76bSAndroid Build Coastguard Worker #include "gif_lib.h"
16*324bb76bSAndroid Build Coastguard Worker 
17*324bb76bSAndroid Build Coastguard Worker bool GifNoisyPrint = false;
18*324bb76bSAndroid Build Coastguard Worker 
19*324bb76bSAndroid Build Coastguard Worker /*****************************************************************************
20*324bb76bSAndroid Build Coastguard Worker  Same as fprintf to stderr but with optional print.
21*324bb76bSAndroid Build Coastguard Worker ******************************************************************************/
GifQprintf(char * Format,...)22*324bb76bSAndroid Build Coastguard Worker void GifQprintf(char *Format, ...) {
23*324bb76bSAndroid Build Coastguard Worker 	va_list ArgPtr;
24*324bb76bSAndroid Build Coastguard Worker 
25*324bb76bSAndroid Build Coastguard Worker 	va_start(ArgPtr, Format);
26*324bb76bSAndroid Build Coastguard Worker 
27*324bb76bSAndroid Build Coastguard Worker 	if (GifNoisyPrint) {
28*324bb76bSAndroid Build Coastguard Worker 		char Line[128];
29*324bb76bSAndroid Build Coastguard Worker 		(void)vsnprintf(Line, sizeof(Line), Format, ArgPtr);
30*324bb76bSAndroid Build Coastguard Worker 		(void)fputs(Line, stderr);
31*324bb76bSAndroid Build Coastguard Worker 	}
32*324bb76bSAndroid Build Coastguard Worker 
33*324bb76bSAndroid Build Coastguard Worker 	va_end(ArgPtr);
34*324bb76bSAndroid Build Coastguard Worker }
35*324bb76bSAndroid Build Coastguard Worker 
PrintGifError(int ErrorCode)36*324bb76bSAndroid Build Coastguard Worker void PrintGifError(int ErrorCode) {
37*324bb76bSAndroid Build Coastguard Worker 	const char *Err = GifErrorString(ErrorCode);
38*324bb76bSAndroid Build Coastguard Worker 
39*324bb76bSAndroid Build Coastguard Worker 	if (Err != NULL) {
40*324bb76bSAndroid Build Coastguard Worker 		fprintf(stderr, "GIF-LIB error: %s.\n", Err);
41*324bb76bSAndroid Build Coastguard Worker 	} else {
42*324bb76bSAndroid Build Coastguard Worker 		fprintf(stderr, "GIF-LIB undefined error %d.\n", ErrorCode);
43*324bb76bSAndroid Build Coastguard Worker 	}
44*324bb76bSAndroid Build Coastguard Worker }
45*324bb76bSAndroid Build Coastguard Worker 
46*324bb76bSAndroid Build Coastguard Worker /* end */
47