static void cd_ConsoleLog (int priority, const char* format, ...) { /* Return on MASKed log priorities */ if (LOG_MASK(priority) & cd_mask) { return; } static const char* names[] = { "EMERG", "ALERT", "CRIT", "ERR", "WARNING", "NOTICE", "INFO", "DEBUG" }; va_list ap; va_start(ap, format); CDString* priorityBuffer; CDString* messageBuffer = CD_CreateStringFromFormatList(format, ap); if (priority >= (sizeof(names) / sizeof(char*)) || priority < 0) { priorityBuffer = CD_CreateStringFromCString("UNKNOWN"); } else { priorityBuffer = CD_CreateStringFromCString(names[priority]); } printf("%s: %s\n", CD_StringContent(priorityBuffer), CD_StringContent(messageBuffer)); fflush(stdout); CD_DestroyString(priorityBuffer); CD_DestroyString(messageBuffer); va_end(ap); }
CDString* CD_CreateStringFromFormat (const char* format, ...) { va_list ap; va_start(ap, format); CDString* self = CD_CreateStringFromFormatList(format, ap); va_end(ap); return self; }