extern int gui_lprintf(t_eventlog_level l, const char *format, ...) { va_list arglist; va_start(arglist, format); return gui_lvprintf(l, format, arglist); }
int fprintf(FILE *stream, const char *format, ...) { va_list args; va_start(args, format); if(stream == stderr || stream == stdout) return gui_lvprintf(eventlog_level_error, format, args); else return vfprintf(stream, format, args); }
int fprintf(FILE *stream, const char *format, ...) { int temp = 0; va_list args; va_start(args, format); if (stream == stderr || stream == stdout) { char buf[1024] = {}; std::vsnprintf(buf, sizeof buf, format, args); gui_lvprintf(eventlog_level_error, "{}", buf); temp = 1; } else temp = vfprintf(stream, format, args); va_end(args); return temp; }
extern int gui_printf(const char *format, ...) { va_list arglist; va_start(arglist, format); return gui_lvprintf(eventlog_level_error, format, arglist); }
extern void eventlog(t_eventlog_level level, char const * module, char const * fmt, ...) { std::va_list args; char time_string[EVENT_TIME_MAXLEN]; struct std::tm * tmnow; std::time_t now; if (!(level&currlevel)) return; if (!eventstrm) return; /* get the time before parsing args */ std::time(&now); if (!(tmnow = std::localtime(&now))) std::strcpy(time_string,"?"); else std::strftime(time_string,EVENT_TIME_MAXLEN,EVENT_TIME_FORMAT,tmnow); if (!module) { std::fprintf(eventstrm,"%s [error] eventlog: got NULL module\n",time_string); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(eventlog_level_error,"%s [error] eventlog: got NULL module\n",time_string); #endif std::fflush(eventstrm); return; } if (!fmt) { std::fprintf(eventstrm,"%s [error] eventlog: got NULL fmt\n",time_string); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(eventlog_level_error,"%s [error] eventlog: got NULL fmt\n",time_string); #endif std::fflush(eventstrm); return; } std::fprintf(eventstrm,"%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(level,"%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); #endif va_start(args,fmt); std::vfprintf(eventstrm,fmt,args); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lvprintf(level,fmt,args); #endif va_end(args); std::fprintf(eventstrm,"\n"); #ifdef WIN32_GUI if (eventlog_level_gui&currlevel) gui_lprintf(level,"\n"); #endif if (eventlog_debugmode) { std::printf("%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); va_start(args,fmt); std::vprintf(fmt,args); va_end(args); std::printf("\n"); std::fflush(stdout); } std::fflush(eventstrm); }
extern void eventlog(t_eventlog_level level, char const * module, char const * fmt, ...) #endif { va_list args; char time_string[EVENT_TIME_MAXLEN]; struct tm * tmnow; time_t now; if (!(level&currlevel)) return; if (!eventstrm) return; /* get the time before parsing args */ time(&now); if (!(tmnow = localtime(&now))) strcpy(time_string,"?"); else strftime(time_string,EVENT_TIME_MAXLEN,EVENT_TIME_FORMAT,tmnow); if (!module) { fprintf(eventstrm,"%s [error] eventlog: got NULL module\n",time_string); #ifdef WIN32_GUI gui_lprintf(eventlog_level_error,"%s [error] eventlog: got NULL module\n",time_string); #endif fflush(eventstrm); return; } if (!fmt) { fprintf(eventstrm,"%s [error] eventlog: got NULL fmt\n",time_string); #ifdef WIN32_GUI gui_lprintf(eventlog_level_error,"%s [error] eventlog: got NULL fmt\n",time_string); #endif fflush(eventstrm); return; } fprintf(eventstrm,"%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); #ifdef WIN32_GUI gui_lprintf(level,"%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); #endif va_start(args,fmt); #ifdef HAVE_VPRINTF vfprintf(eventstrm,fmt,args); #ifdef WIN32_GUI gui_lvprintf(level,fmt,args); #endif #else # if HAVE__DOPRNT _doprnt(fmt,args,eventstrm); # else fprintf(eventstrm,"sorry, vfprintf() and _doprnt() are not available on this system"); # endif #endif va_end(args); fprintf(eventstrm,"\n"); #ifdef WIN32_GUI gui_lprintf(level,"\n"); #endif if (eventlog_debugmode) { printf("%s [%s] %s: ",time_string,eventlog_get_levelname_str(level),module); va_start(args,fmt); #ifdef HAVE_VPRINTF vprintf(fmt,args); #else # if HAVE__DOPRNT _doprnt(fmt,args,stdout); # else printf("sorry, vfprintf() and _doprnt() are not available on this system"); # endif #endif va_end(args); printf("\n"); fflush(stdout); } fflush(eventstrm); }