31 #include <sinfo_msg.h>
52 #define DEBUG_CALLER 0
57 #define MAXSTRINGLENGTH 1000
62 static int outlevel = -1;
66 const char *sinfo_callers[MAXLEVEL];
70 static char printbuffer[MAXSTRINGLENGTH];
73 static const char *domain =
"Undefined domain";
78 static int initialized = FALSE;
80 static int number_of_warnings = 0;
105 number_of_warnings = 0;
111 cpl_msg_set_indentation(2);
121 cpl_msg_set_time_on();
123 cpl_msg_set_domain_on();
124 cpl_msg_set_component_off();
156 if (level + 1 < MAXLEVEL) {
158 cpl_msg_indent_more();
160 sinfo_callers[level] = fctid;
188 if (level >= MAXLEVEL || strcmp(sinfo_callers[level], fctid) == 0)
194 cpl_msg_indent_less();
200 sinfo_callers[level], fctid);
224 va_start(al, format);
225 vsnprintf(printbuffer, MAXSTRINGLENGTH - 1, format, al);
228 printbuffer[MAXSTRINGLENGTH - 1] =
'\0';
230 if (outlevel < 0 || level <= outlevel) {
234 cpl_msg_info(fct,
"%s", printbuffer);
240 cpl_msg_debug(fct,
"%s", printbuffer);
253 return number_of_warnings;
269 number_of_warnings += n;
292 va_start(al, format);
293 vsnprintf(printbuffer, MAXSTRINGLENGTH - 1, format, al);
296 printbuffer[MAXSTRINGLENGTH - 1] =
'\0';
298 cpl_msg_warning(fct,
"%s", printbuffer);
300 number_of_warnings += 1;
326 cpl_msg_set_domain(d);
const char * sinfo_msg_get_domain(void)
Get current message domain.
void sinfo_msg_macro(const char *fct, const char *format,...)
Print a message on 'info' or 'debug' level.
int sinfo_msg_get_warnings(void)
Get number of warnings printed so far.
void sinfo_msg_softer_macro(const char *fctid)
Decrease message level.
void sinfo_msg_set_domain(const char *d)
Set message domain.
void sinfo_msg_louder_macro(const char *fctid)
Increase message level.
void sinfo_msg_set_level(int olevel)
Set output level.
void sinfo_msg_init(int olevel, const char *dom)
Initialize messaging.
void sinfo_msg_add_warnings(int n)
Accumulate warnings.
void sinfo_msg_warning_macro(const char *fct, const char *format,...)
Print a warning message.
#define sinfo_msg_warning(...)
Print an warning message.