mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-10 15:48:06 -05:00
Move dprintf and the debug system out into misc.c, to centralise it.
Saves binary space and also allows redirection of debug statements to a file `debug.log'. [originally from svn r791]
This commit is contained in:
parent
6928fbb1e3
commit
84077ea5ee
26
misc.c
26
misc.c
@ -67,3 +67,29 @@ void safefree(void *ptr) {
|
||||
fprintf(fp, "freeing null pointer - no action taken\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
static FILE *debug_fp = NULL;
|
||||
static int debug_got_console = 0;
|
||||
|
||||
void dprintf(char *fmt, ...) {
|
||||
char buf[2048];
|
||||
DWORD dw;
|
||||
va_list ap;
|
||||
|
||||
if (!debug_got_console) {
|
||||
AllocConsole();
|
||||
debug_got_console = 1;
|
||||
}
|
||||
if (!debug_fp) {
|
||||
debug_fp = fopen("debug.log", "w");
|
||||
}
|
||||
|
||||
va_start(ap, fmt);
|
||||
vsprintf(buf, fmt, ap);
|
||||
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), buf, strlen(buf), &dw, NULL);
|
||||
fputs(buf, debug_fp);
|
||||
fflush(debug_fp);
|
||||
va_end(ap);
|
||||
}
|
||||
#endif
|
||||
|
21
putty.h
21
putty.h
@ -400,28 +400,9 @@ void crypto_wrapup();
|
||||
void agent_query(void *in, int inlen, void **out, int *outlen);
|
||||
int agent_exists(void);
|
||||
|
||||
/*
|
||||
* A debug system.
|
||||
*/
|
||||
#ifdef DEBUG
|
||||
#include <stdarg.h>
|
||||
void dprintf(char *fmt, ...);
|
||||
#define debug(x) (dprintf x)
|
||||
static void dprintf(char *fmt, ...) {
|
||||
char buf[2048];
|
||||
DWORD dw;
|
||||
va_list ap;
|
||||
static int gotconsole = 0;
|
||||
|
||||
if (!gotconsole) {
|
||||
AllocConsole();
|
||||
gotconsole = 1;
|
||||
}
|
||||
|
||||
va_start(ap, fmt);
|
||||
vsprintf(buf, fmt, ap);
|
||||
WriteFile (GetStdHandle(STD_OUTPUT_HANDLE), buf, strlen(buf), &dw, NULL);
|
||||
va_end(ap);
|
||||
}
|
||||
#else
|
||||
#define debug(x)
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user