From 51dfd9adb11885daec878737f18f89fb05c1516c Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Sat, 27 Mar 2010 16:55:27 +0100 Subject: [PATCH] winedbg: Fix compilation with gcc 2.95 and non-GNU compilers. --- programs/winedbg/db_disasm64.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/programs/winedbg/db_disasm64.c b/programs/winedbg/db_disasm64.c index d7f7c032a15..98f7ef2f3f3 100644 --- a/programs/winedbg/db_disasm64.c +++ b/programs/winedbg/db_disasm64.c @@ -32,11 +32,25 @@ #include #include "debugger.h" -static int (*db_printf)(const char* format, ...) -#ifdef __GNUC__ - __attribute__((format (printf,1,2))); +#ifndef __GNUC__ +#define __attribute__(X) #endif -static int no_printf(const char* format, ...) {return 0;} + +static int db_debug = 0; +static int db_printf(const char* format, ...) __attribute__((format (printf,1,2))); +int db_printf(const char* format, ...) +{ + va_list valist; + int len = 0; + if (db_debug) + { + va_start(valist, format); + len = dbg_printf(format, valist); + va_end(valist); + } + return len; +} + typedef DWORD_PTR db_addr_t; typedef BOOL boolean_t; @@ -79,7 +93,7 @@ static ULONG64 db_get_value(db_addr_t addr, int size, int is_signed) static void db_printsym(db_addr_t addr, unsigned unused) { - if (db_printf != no_printf) + if (db_debug) { ADDRESS64 a; @@ -1642,6 +1656,6 @@ db_disasm(db_addr_t loc, boolean_t altfmt) void be_x86_64_disasm_one_insn(ADDRESS64 *addr, int display) { - db_printf = display ? dbg_printf : no_printf; + db_debug = display; addr->Offset = db_disasm(addr->Offset, TRUE); } -- 2.11.4.GIT