winedbg: Fix compilation with gcc 2.95 and non-GNU compilers.

oldstable
Francois Gouget 2010-03-27 16:55:27 +01:00 committed by Alexandre Julliard
parent 5aca2dd964
commit 51dfd9adb1
1 changed files with 20 additions and 6 deletions

View File

@ -32,11 +32,25 @@
#include <stdio.h>
#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);
}