summaryrefslogtreecommitdiff
path: root/src/libw32dll/wine
diff options
context:
space:
mode:
Diffstat (limited to 'src/libw32dll/wine')
-rw-r--r--src/libw32dll/wine/Makefile.am57
-rw-r--r--src/libw32dll/wine/debugtools.h8
-rw-r--r--src/libw32dll/wine/ext.h3
-rw-r--r--src/libw32dll/wine/ldt_keeper.c13
-rw-r--r--src/libw32dll/wine/pe_image.c2
-rw-r--r--src/libw32dll/wine/registry.c41
-rw-r--r--src/libw32dll/wine/win32.c21
-rw-r--r--src/libw32dll/wine/windef.h7
8 files changed, 59 insertions, 93 deletions
diff --git a/src/libw32dll/wine/Makefile.am b/src/libw32dll/wine/Makefile.am
index 63da4068e..1756e3262 100644
--- a/src/libw32dll/wine/Makefile.am
+++ b/src/libw32dll/wine/Makefile.am
@@ -1,40 +1,13 @@
include $(top_srcdir)/misc/Makefile.common
-LIBTOOL = $(SHELL) $(top_builddir)/libtool
-
-EXTRA_DIST = stubs.s wrapper.S
-
-noinst_LTLIBRARIES = $(wine_lib)
-
-AM_CFLAGS = $(X_CFLAGS) @W32_NO_OPTIMIZE@ \
- -Wmissing-prototypes -Wimplicit-function-declaration \
- -DWIN32_PATH=\"@w32_path@\" -I$(srcdir)/.. -D__WINE__ \
+# disable -fomit-frame-pointer, -finline-functions, and -frename-registers
+# because they cause bad behavior of wine
+AM_CFLAGS = $(DEFAULT_OCFLAGS) $(X_CFLAGS) @W32_NO_OPTIMIZE@ \
+ -fno-omit-frame-pointer -fno-inline-functions -fno-rename-registers
+AM_CPPFLAGS = -DWIN32_PATH=\"$(w32_path)\" -I$(srcdir)/.. -D__WINE__ \
-Ddbg_printf=__vprintf -DTRACE=__vprintf
-# CFLAGS is here to filter out -fomit-frame-pointer,
-# -finline-functions and -frename-registers because they cause bad
-# behavior of wine
-CFLAGS = `echo @CFLAGS@ | sed -e 's/-fomit-frame-pointer//g;s/-finline-functions//g;s/-frename-registers//g'`
-
-if HAVE_W32DLL
-wine_lib = libwine.la
-endif
-
-libwine_la_SOURCES = \
- afl.c \
- driver.c \
- elfdll.c \
- ext.c \
- ldt_keeper.c \
- module.c \
- pe_image.c \
- pe_resource.c \
- resource.c \
- registry.c \
- vfl.c \
- win32.c \
- stubs.s \
- wrapper.S
+EXTRA_DIST = stubs.s wrapper.S
noinst_HEADERS = \
avifmt.h \
@@ -74,3 +47,21 @@ noinst_HEADERS = \
winuser.h \
wrapper.h
+noinst_LTLIBRARIES = libwine.la
+
+libwine_la_SOURCES = \
+ afl.c \
+ driver.c \
+ elfdll.c \
+ ext.c \
+ ldt_keeper.c \
+ module.c \
+ pe_image.c \
+ pe_resource.c \
+ resource.c \
+ registry.c \
+ vfl.c \
+ win32.c \
+ stubs.s \
+ wrapper.S
+libwine_la_CPPFLAGS = $(AM_CPPFLAGS) $(XDG_BASEDIR_CPPFLAGS)
diff --git a/src/libw32dll/wine/debugtools.h b/src/libw32dll/wine/debugtools.h
index 038c05309..c6fac518d 100644
--- a/src/libw32dll/wine/debugtools.h
+++ b/src/libw32dll/wine/debugtools.h
@@ -8,7 +8,7 @@
#include "config.h"
#include "windef.h"
-#include "compat.h"
+#include <xine/compat.h>
struct _GUID;
@@ -80,11 +80,7 @@ static inline LPCSTR debugstr_w( LPCWSTR s ) { return debugstr_wn( s, 80 ); }
#endif
#if 0 /* dbg_printf already defined as a macro */
-#ifdef __GNUC__
-extern int dbg_printf(const char *format, ...) __attribute__((format (printf,1,2)));
-#else
-extern int dbg_printf(const char *format, ...);
-#endif
+extern int dbg_printf(const char *format, ...) XINE_FORMAT_PRINTF(1,2);
#endif
#define TRACE_(X) TRACE
diff --git a/src/libw32dll/wine/ext.h b/src/libw32dll/wine/ext.h
index 7b284ca79..ad22edc5e 100644
--- a/src/libw32dll/wine/ext.h
+++ b/src/libw32dll/wine/ext.h
@@ -2,6 +2,7 @@
#define loader_ext_h
#include "windef.h"
+#include <xine/attributes.h>
extern LPVOID FILE_dommap( int unix_handle, LPVOID start,
DWORD size_high, DWORD size_low,
@@ -9,6 +10,6 @@ extern LPVOID FILE_dommap( int unix_handle, LPVOID start,
int prot, int flags );
extern int FILE_munmap( LPVOID start, DWORD size_high, DWORD size_low );
extern int wcsnicmp(const unsigned short* s1, const unsigned short* s2, int n);
-extern int __attribute__ ((format (printf, 1, 2))) __vprintf( const char *format, ... );
+extern int XINE_FORMAT_PRINTF(1, 2) __vprintf( const char *format, ... );
#endif
diff --git a/src/libw32dll/wine/ldt_keeper.c b/src/libw32dll/wine/ldt_keeper.c
index 7f7169b86..39f1e0f49 100644
--- a/src/libw32dll/wine/ldt_keeper.c
+++ b/src/libw32dll/wine/ldt_keeper.c
@@ -17,8 +17,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: ldt_keeper.c,v 1.16 2007/03/09 23:49:35 dgp85 Exp $
- *
*
* contents:
*
@@ -35,7 +33,6 @@
* Also, IMHO, that was slightly wrong. The TEB is supposed to be unique
* per W32 thread. The current xine implementation will allocate different
* TEBs for the audio and video codecs.
- *
*/
@@ -81,7 +78,7 @@ int modify_ldt(int func, void *ptr, unsigned long bytecount);
}
#endif
#else
-#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+#if defined(__NetBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)
#include <machine/segments.h>
#include <machine/sysarch.h>
#endif
@@ -156,7 +153,7 @@ void Setup_FS_Segment(ldt_fs_t *ldt_fs)
void Check_FS_Segment(ldt_fs_t *ldt_fs)
{
-#if defined(__FreeBSD__) && defined(LDT_AUTO_ALLOC)
+#if defined(__FreeBSD_kernel__) && defined(LDT_AUTO_ALLOC)
int fs;
__asm__ __volatile__(
"movw %%fs,%%ax; mov %%eax,%0" : "=r" (fs) :: "%eax"
@@ -174,7 +171,7 @@ void Check_FS_Segment(ldt_fs_t *ldt_fs)
#endif
}
-#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+#if defined(__NetBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)
static void LDT_EntryToBytes( unsigned long *buffer, const struct modify_ldt_ldt_s *content )
{
*buffer++ = ((content->base_addr & 0x0000ffff) << 16) |
@@ -205,12 +202,12 @@ static int _modify_ldt(ldt_fs_t *ldt_fs, struct modify_ldt_ldt_s array)
}
#endif /*linux*/
-#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+#if defined(__NetBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)
{
unsigned long d[2];
LDT_EntryToBytes( d, &array );
-#if defined(__FreeBSD__) && defined(LDT_AUTO_ALLOC)
+#if defined(__FreeBSD_kernel__) && defined(LDT_AUTO_ALLOC)
ret = i386_set_ldt(LDT_AUTO_ALLOC, (union descriptor *)d, 1);
array.entry_number = ret;
ldt_fs->teb_sel = LDT_SEL(ret);
diff --git a/src/libw32dll/wine/pe_image.c b/src/libw32dll/wine/pe_image.c
index aa29098c1..c99bbaed0 100644
--- a/src/libw32dll/wine/pe_image.c
+++ b/src/libw32dll/wine/pe_image.c
@@ -1,6 +1,6 @@
/*
* Copyright 1994 Eric Youndale & Erik Bos
- * Copyright 1995 Martin von Löwis
+ * Copyright 1995 Martin von Löwis
* Copyright 1996-98 Marcus Meissner
*
* based on Eric Youndale's pe-test and:
diff --git a/src/libw32dll/wine/registry.c b/src/libw32dll/wine/registry.c
index 0f91499b3..20c21888d 100644
--- a/src/libw32dll/wine/registry.c
+++ b/src/libw32dll/wine/registry.c
@@ -18,7 +18,8 @@
#include "debugtools.h"
#ifdef XINE_MAJOR
-#include "xineutils.h"
+#include <xine/xineutils.h>
+#include <basedir.h>
#endif
//#undef TRACE
@@ -302,44 +303,22 @@ static struct reg_value* insert_reg_value(int handle, const char* name, int type
static void init_registry(void)
{
+ xdgHandle tmph = xdgAllocHandle();
+ const char *const xdg_cache_home = xdgCacheHome(tmph);
+
TRACE("Initializing registry\n");
// can't be free-ed - it's static and probably thread
// unsafe structure which is stored in glibc
-#ifdef MPLAYER
- regpathname = get_path("registry");
- localregpathname = regpathname;
-#else
-#ifdef XINE_MAJOR
- localregpathname = (char *)malloc(strlen(xine_get_homedir()) + 21);
- sprintf(localregpathname, "%s/.xine/win32registry", xine_get_homedir());
-#else
- // regpathname is an external pointer
- //
- // registry.c is holding it's own internal pointer
- // localregpathname - which is being allocate/deallocated
-
- if (localregpathname == 0)
- {
- const char* pthn = regpathname;
- if (!regpathname)
- {
- // avifile - for now reading data from user's home
- struct passwd* pwent;
- pwent = getpwuid(geteuid());
- pthn = pwent->pw_dir;
- }
-
- localregpathname = (char*)malloc(strlen(pthn)+20);
- strcpy(localregpathname, pthn);
- strcat(localregpathname, "/.registry");
- }
-#endif
-#endif
+ localregpathname = malloc(strlen(xdg_cache_home) + sizeof("/"PACKAGE"/win32registry"));
+ strcpy(localregpathname, xdg_cache_home);
+ strcat(localregpathname, "/"PACKAGE"/win32registry");
open_registry();
insert_handle(HKEY_LOCAL_MACHINE, "HKLM");
insert_handle(HKEY_CURRENT_USER, "HKCU");
+
+ xdgFreeHandle(tmph);
}
#if 0
diff --git a/src/libw32dll/wine/win32.c b/src/libw32dll/wine/win32.c
index 4fe1956b7..01a287c31 100644
--- a/src/libw32dll/wine/win32.c
+++ b/src/libw32dll/wine/win32.c
@@ -12,6 +12,7 @@ for DLL to know too much about its environment.
************************************************************/
#include "config.h"
+#include <xine/attributes.h>
#define QTX
@@ -183,7 +184,7 @@ static void longcount_stub(long long* z)
int LOADER_DEBUG=1; // active only if compiled with -DDETAILED_OUT
//#define DETAILED_OUT
-static inline void __attribute__((__format__(__printf__, 1, 2))) dbgprintf(char* fmt, ...)
+static inline void XINE_FORMAT_PRINTF(1, 2) dbgprintf(char* fmt, ...)
{
#ifdef DETAILED_OUT
if(LOADER_DEBUG)
@@ -893,7 +894,7 @@ static void WINAPI expGetSystemInfo(SYSTEM_INFO* si)
/* FIXME: better values for the two entries below... */
static int cache = 0;
static SYSTEM_INFO cachedsi;
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__)
+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__svr4__)
unsigned int regs[4];
#endif
dbgprintf("GetSystemInfo(%p) =>\n", si);
@@ -957,7 +958,7 @@ static void WINAPI expGetSystemInfo(SYSTEM_INFO* si)
/* disable cpuid based detection (mplayer's cpudetect.c does this - see above) */
#ifndef MPLAYER
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__)
+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__svr4__)
do_cpuid(1, regs);
switch ((regs[0] >> 8) & 0xf) { // cpu family
case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386;
@@ -3036,9 +3037,9 @@ static int WINAPI expGetSystemPaletteEntries(int hdc, int iStartIndex, int nEntr
static int WINAPI expGetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation)
{
- const short name[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'S', 't', 'a',
+ static const short name[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'S', 't', 'a',
'n', 'd', 'a', 'r', 'd', ' ', 'T', 'i', 'm', 'e', 0};
- const short pname[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'D', 'a', 'y',
+ static const short pname[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'D', 'a', 'y',
'l', 'i', 'g', 'h', 't', ' ', 'T', 'i', 'm', 'e', 0};
dbgprintf("GetTimeZoneInformation(%p) => TIME_ZONE_ID_STANDARD\n", lpTimeZoneInformation);
memset(lpTimeZoneInformation, 0, sizeof(TIME_ZONE_INFORMATION));
@@ -3976,7 +3977,7 @@ static void* exp__dllonexit()
return NULL;
}
-static int __attribute__((__format__(__printf__, 2, 3))) expwsprintfA(char* string, char* format, ...)
+static int XINE_FORMAT_PRINTF(2, 3) expwsprintfA(char* string, char* format, ...)
{
va_list va;
int result;
@@ -3987,7 +3988,7 @@ static int __attribute__((__format__(__printf__, 2, 3))) expwsprintfA(char* stri
return result;
}
-static int __attribute__((__format__(__printf__, 2, 3))) expsprintf(char* str, const char* format, ...)
+static int XINE_FORMAT_PRINTF(2, 3) expsprintf(char* str, const char* format, ...)
{
va_list args;
int r;
@@ -3997,7 +3998,7 @@ static int __attribute__((__format__(__printf__, 2, 3))) expsprintf(char* str, c
va_end(args);
return r;
}
-static int __attribute__((__format__(__printf__, 2, 3))) expsscanf(const char* str, const char* format, ...)
+static int XINE_FORMAT_PRINTF(2, 3) expsscanf(const char* str, const char* format, ...)
{
va_list args;
int r;
@@ -4013,7 +4014,7 @@ static void* expfopen(const char* path, const char* mode)
//return fopen(path, mode);
return fdopen(0, mode); // everything on screen
}
-static int __attribute__((__format__(__printf__, 2, 3)))expfprintf(void* stream, const char* format, ...)
+static int XINE_FORMAT_PRINTF(2, 3)expfprintf(void* stream, const char* format, ...)
{
va_list args;
int r = 0;
@@ -4026,7 +4027,7 @@ static int __attribute__((__format__(__printf__, 2, 3)))expfprintf(void* stream,
return r;
}
-static int __attribute__((__format__(__printf__, 1, 2))) expprintf(const char* format, ...)
+static int XINE_FORMAT_PRINTF(1, 2) expprintf(const char* format, ...)
{
va_list args;
int r;
diff --git a/src/libw32dll/wine/windef.h b/src/libw32dll/wine/windef.h
index e7f691a02..b86f2f740 100644
--- a/src/libw32dll/wine/windef.h
+++ b/src/libw32dll/wine/windef.h
@@ -7,8 +7,9 @@
#ifndef __WINE_WINDEF_H
#define __WINE_WINDEF_H
+#include "config.h"
+
#ifdef __WINE__
-# include "config.h"
# undef UNICODE
#endif
@@ -493,14 +494,14 @@ typedef LRESULT CALLBACK (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
/* Macro for structure packing. */
+#define WINE_PACKED XINE_PACKED
+
#if defined(__GNUC__) || defined(__ICC)
#ifndef _EGCS_
-#define WINE_PACKED __attribute__((packed))
#define WINE_UNUSED __attribute__((unused))
#define WINE_NORETURN __attribute__((noreturn))
#endif
#else
-#define WINE_PACKED /* nothing */
#define WINE_UNUSED /* nothing */
#define WINE_NORETURN /* nothing */
#endif