mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 09:58:01 +00:00
38 lines
871 B
C
38 lines
871 B
C
|
/*
|
||
|
* Implementation of dputs() for Windows.
|
||
|
*
|
||
|
* The debug messages are written to STD_OUTPUT_HANDLE, except that
|
||
|
* first it has to make sure that handle _exists_, by calling
|
||
|
* AllocConsole first if necessary.
|
||
|
*
|
||
|
* They also go into a file called debug.log.
|
||
|
*/
|
||
|
|
||
|
#include "putty.h"
|
||
|
#include "utils/utils.h"
|
||
|
|
||
|
static FILE *debug_fp = NULL;
|
||
|
static HANDLE debug_hdl = INVALID_HANDLE_VALUE;
|
||
|
static int debug_got_console = 0;
|
||
|
|
||
|
void dputs(const char *buf)
|
||
|
{
|
||
|
DWORD dw;
|
||
|
|
||
|
if (!debug_got_console) {
|
||
|
if (AllocConsole()) {
|
||
|
debug_got_console = 1;
|
||
|
debug_hdl = GetStdHandle(STD_OUTPUT_HANDLE);
|
||
|
}
|
||
|
}
|
||
|
if (!debug_fp) {
|
||
|
debug_fp = fopen("debug.log", "w");
|
||
|
}
|
||
|
|
||
|
if (debug_hdl != INVALID_HANDLE_VALUE) {
|
||
|
WriteFile(debug_hdl, buf, strlen(buf), &dw, NULL);
|
||
|
}
|
||
|
fputs(buf, debug_fp);
|
||
|
fflush(debug_fp);
|
||
|
}
|