diff --git a/windows/utils/dputs.c b/windows/utils/dputs.c index 15b0e4db..f582509a 100644 --- a/windows/utils/dputs.c +++ b/windows/utils/dputs.c @@ -11,7 +11,7 @@ #include "putty.h" #include "utils/utils.h" -static FILE *debug_fp = NULL; +static HANDLE debug_fp = INVALID_HANDLE_VALUE; static HANDLE debug_hdl = INVALID_HANDLE_VALUE; static int debug_got_console = 0; @@ -25,13 +25,15 @@ void dputs(const char *buf) debug_hdl = GetStdHandle(STD_OUTPUT_HANDLE); } } - if (!debug_fp) { - debug_fp = fopen("debug.log", "w"); + if (debug_fp == INVALID_HANDLE_VALUE) { + debug_fp = CreateFile("debug.log", GENERIC_WRITE, FILE_SHARE_READ, + NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); } + if (debug_fp != INVALID_HANDLE_VALUE) { + WriteFile(debug_fp, buf, strlen(buf), &dw, NULL); + } if (debug_hdl != INVALID_HANDLE_VALUE) { WriteFile(debug_hdl, buf, strlen(buf), &dw, NULL); } - fputs(buf, debug_fp); - fflush(debug_fp); }