Converting logging to ASCII and other Windows fixes.

This commit is contained in:
Ben Vanik
2013-02-09 08:05:39 -08:00
parent fa16593ab6
commit 3cae7ed714
37 changed files with 213 additions and 192 deletions

View File

@@ -12,13 +12,13 @@
#include <xenia/common.h>
void xe_log_line(const xechar_t* file_path, const uint32_t line_number,
const xechar_t* function_name, const xechar_t level_char,
const xechar_t* fmt, ...) {
void xe_log_line(const char* file_path, const uint32_t line_number,
const char* function_name, const char level_char,
const char* fmt, ...) {
const int kLogMax = 2048;
// Strip out just the filename from the path.
const xechar_t* filename = xestrrchr(file_path, XE_PATH_SEPARATOR);
const char* filename = xestrrchra(file_path, XE_PATH_SEPARATOR);
if (filename) {
// Slash - skip over it.
filename++;
@@ -30,29 +30,27 @@ void xe_log_line(const xechar_t* file_path, const uint32_t line_number,
// Scribble args into the print buffer.
va_list args;
va_start(args, fmt);
xechar_t buffer[kLogMax];
int buffer_length = xevsnprintf(buffer, XECOUNT(buffer), fmt, args);
char buffer[kLogMax];
int buffer_length = xevsnprintfa(buffer, XECOUNT(buffer), fmt, args);
va_end(args);
if (buffer_length < 0) {
return;
}
// Format string - add a trailing newline if required.
const xechar_t* outfmt;
const char* outfmt;
if ((buffer_length >= 1) && buffer[buffer_length - 1] == '\n') {
outfmt = XT("XE[%c] %s:%d: %s");
outfmt = "XE[%c] %s:%d: %s";
} else {
outfmt = XT("XE[%c] %s:%d: %s\n");
outfmt = "XE[%c] %s:%d: %s\n";
}
#if defined(OutputDebugString)
xechar_t full_output[kLogMax];
if (xesnprintf(full_output, XECOUNT(buffer), outfmt, level_char,
filename, line_number, buffer) >= 0) {
OutputDebugString(full_output);
char full_output[kLogMax];
if (xesnprintfa(full_output, XECOUNT(buffer), outfmt, level_char,
filename, line_number, buffer) >= 0) {
OutputDebugStringA(full_output);
}
#elif defined(XE_WCHAR)
XEIGNORE(fwprintf(stdout, outfmt, level_char, filename, line_number, buffer));
#else
XEIGNORE(fprintf(stdout, outfmt, level_char, filename, line_number, buffer));
#endif // OutputDebugString