aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/logging.cpp4
-rw-r--r--utils/openal-info.c69
2 files changed, 7 insertions, 66 deletions
diff --git a/core/logging.cpp b/core/logging.cpp
index 91cb0e8c..7ee7ff23 100644
--- a/core/logging.cpp
+++ b/core/logging.cpp
@@ -35,10 +35,9 @@ void al_print(LogLevel level, FILE *logfile, const char *fmt, ...)
va_end(args2);
va_end(args);
- std::wstring wstr{utf8_to_wstr(str)};
if(gLogLevel >= level)
{
- fputws(wstr.c_str(), logfile);
+ fputs(str, logfile);
fflush(logfile);
}
/* OutputDebugStringW has no 'level' property to distinguish between
@@ -46,6 +45,7 @@ void al_print(LogLevel level, FILE *logfile, const char *fmt, ...)
* non-Release builds.
*/
#ifndef NDEBUG
+ std::wstring wstr{utf8_to_wstr(str)};
OutputDebugStringW(wstr.c_str());
#endif
}
diff --git a/utils/openal-info.c b/utils/openal-info.c
index 1788d118..4bb73e76 100644
--- a/utils/openal-info.c
+++ b/utils/openal-info.c
@@ -46,70 +46,6 @@
#endif
-#ifdef _WIN32
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-static WCHAR *FromUTF8(const char *str)
-{
- WCHAR *out = NULL;
- int len;
-
- if((len=MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0)) > 0)
- {
- out = calloc(sizeof(WCHAR), (unsigned int)(len));
- MultiByteToWideChar(CP_UTF8, 0, str, -1, out, len);
- }
- return out;
-}
-
-/* Override printf, fprintf, and fwrite so we can print UTF-8 strings. */
-static void al_fprintf(FILE *file, const char *fmt, ...)
-{
- char str[1024];
- WCHAR *wstr;
- va_list ap;
-
- va_start(ap, fmt);
- vsnprintf(str, sizeof(str), fmt, ap);
- va_end(ap);
-
- str[sizeof(str)-1] = 0;
- wstr = FromUTF8(str);
- if(!wstr)
- fprintf(file, "<UTF-8 error> %s", str);
- else
- fprintf(file, "%ls", wstr);
- free(wstr);
-}
-#define fprintf al_fprintf
-#define printf(...) al_fprintf(stdout, __VA_ARGS__)
-
-static size_t al_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *file)
-{
- char str[1024];
- WCHAR *wstr;
- size_t len;
-
- len = size * nmemb;
- if(len > sizeof(str)-1)
- len = sizeof(str)-1;
- memcpy(str, ptr, len);
- str[len] = 0;
-
- wstr = FromUTF8(str);
- if(!wstr)
- fprintf(file, "<UTF-8 error> %s", str);
- else
- fprintf(file, "%ls", wstr);
- free(wstr);
-
- return len / size;
-}
-#define fwrite al_fwrite
-#endif
-
-
#define MAX_WIDTH 80
static void printList(const char *list, char separator)
@@ -384,6 +320,11 @@ int main(int argc, char *argv[])
ALCdevice *device;
ALCcontext *context;
+#ifdef _WIN32
+ /* OpenAL Soft gives UTF-8 strings, so set the console to expect that. */
+ SetConsoleOutputCP(CP_UTF8);
+#endif
+
if(argc > 1 && (strcmp(argv[1], "--help") == 0 ||
strcmp(argv[1], "-h") == 0))
{