From ac81d02a5835b21c0c71b31c8ab7e115e8574c75 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Wed, 31 Jul 2002 20:04:20 +0000 Subject: [PATCH] Portability fixes for Cygwin. --- dlls/kernel/sync.c | 2 ++ dlls/ntdll/signal_i386.c | 38 +++++++++++++++++++++++++++++++++++++- dlls/wineps/builtin.c | 20 ++++++++++---------- include/msvcrt/sys/stat.h | 6 +++--- include/msvcrt/sys/types.h | 2 +- tsx11/Makefile.in | 2 +- 6 files changed, 54 insertions(+), 16 deletions(-) diff --git a/dlls/kernel/sync.c b/dlls/kernel/sync.c index 59b831a04cf..0048edfe6e0 100644 --- a/dlls/kernel/sync.c +++ b/dlls/kernel/sync.c @@ -536,6 +536,7 @@ HANDLE WINAPI CreateNamedPipeW( LPCWSTR name, DWORD dwOpenMode, BOOL WINAPI PeekNamedPipe( HANDLE hPipe, LPVOID lpvBuffer, DWORD cbBuffer, LPDWORD lpcbRead, LPDWORD lpcbAvail, LPDWORD lpcbMessage ) { +#ifdef FIONREAD int avail=0,fd; fd = FILE_GetUnixHandle(hPipe, GENERIC_READ); @@ -555,6 +556,7 @@ BOOL WINAPI PeekNamedPipe( HANDLE hPipe, LPVOID lpvBuffer, DWORD cbBuffer, *lpcbAvail= avail; return TRUE; } +#endif /* defined(FIONREAD) */ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); FIXME("function not implemented\n"); diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c index 8e01db86028..46e3f5a85a8 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -249,8 +249,44 @@ typedef struct #endif /* __EMX__ */ +#ifdef __CYGWIN__ -#if defined(linux) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__EMX__) +/* FIXME: This section is just here so it can compile, it's most likely + * completely wrong. */ + +typedef struct +{ + unsigned short sc_gs, __gsh; + unsigned short sc_fs, __fsh; + unsigned short sc_es, __esh; + unsigned short sc_ds, __dsh; + unsigned long sc_edi; + unsigned long sc_esi; + unsigned long sc_ebp; + unsigned long sc_esp; + unsigned long sc_ebx; + unsigned long sc_edx; + unsigned long sc_ecx; + unsigned long sc_eax; + unsigned long sc_trapno; + unsigned long sc_err; + unsigned long sc_eip; + unsigned short sc_cs, __csh; + unsigned long sc_eflags; + unsigned long esp_at_signal; + unsigned short sc_ss, __ssh; + unsigned long i387; + unsigned long oldmask; + unsigned long cr2; +} SIGCONTEXT; + +#define HANDLER_DEF(name) void name( int __signal, SIGCONTEXT __context ) +#define HANDLER_CONTEXT (&__context) + +#endif /* __CYGWIN__ */ + +#if defined(linux) || defined(__NetBSD__) || defined(__FreeBSD__) ||\ + defined(__OpenBSD__) || defined(__EMX__) || defined(__CYGWIN__) #define EAX_sig(context) ((context)->sc_eax) #define EBX_sig(context) ((context)->sc_ebx) diff --git a/dlls/wineps/builtin.c b/dlls/wineps/builtin.c index 4b030e52d63..938e69ee16f 100644 --- a/dlls/wineps/builtin.c +++ b/dlls/wineps/builtin.c @@ -49,7 +49,7 @@ inline static BOOL is_stock_font( HFONT font ) * Scale builtin font to requested lfHeight * */ -inline static float round(float f) +inline static float Round(float f) { return (f > 0) ? (f + 0.5) : (f - 0.5); } @@ -73,15 +73,15 @@ static VOID ScaleFont(const AFM *afm, LONG lfHeight, PSFONT *font, (float)(wm->usWinAscent + wm->usWinDescent); } - font->size = (INT)round(font->fontinfo.Builtin.scale * (float)wm->usUnitsPerEm); + font->size = (INT)Round(font->fontinfo.Builtin.scale * (float)wm->usUnitsPerEm); - usUnitsPerEm = (USHORT)round((float)(wm->usUnitsPerEm) * font->fontinfo.Builtin.scale); - sAscender = (SHORT)round((float)(wm->sAscender) * font->fontinfo.Builtin.scale); - sDescender = (SHORT)round((float)(wm->sDescender) * font->fontinfo.Builtin.scale); - sLineGap = (SHORT)round((float)(wm->sLineGap) * font->fontinfo.Builtin.scale); - usWinAscent = (USHORT)round((float)(wm->usWinAscent) * font->fontinfo.Builtin.scale); - usWinDescent = (USHORT)round((float)(wm->usWinDescent) * font->fontinfo.Builtin.scale); - sAvgCharWidth = (SHORT)round((float)(wm->sAvgCharWidth) * font->fontinfo.Builtin.scale); + usUnitsPerEm = (USHORT)Round((float)(wm->usUnitsPerEm) * font->fontinfo.Builtin.scale); + sAscender = (SHORT)Round((float)(wm->sAscender) * font->fontinfo.Builtin.scale); + sDescender = (SHORT)Round((float)(wm->sDescender) * font->fontinfo.Builtin.scale); + sLineGap = (SHORT)Round((float)(wm->sLineGap) * font->fontinfo.Builtin.scale); + usWinAscent = (USHORT)Round((float)(wm->usWinAscent) * font->fontinfo.Builtin.scale); + usWinDescent = (USHORT)Round((float)(wm->usWinDescent) * font->fontinfo.Builtin.scale); + sAvgCharWidth = (SHORT)Round((float)(wm->sAvgCharWidth) * font->fontinfo.Builtin.scale); tm->tmAscent = (LONG)usWinAscent; tm->tmDescent = (LONG)usWinDescent; @@ -125,7 +125,7 @@ static VOID ScaleFont(const AFM *afm, LONG lfHeight, PSFONT *font, font->fontinfo.Builtin.scale *= (float)wm->usUnitsPerEm / 1000.0; - tm->tmMaxCharWidth = (LONG)round( + tm->tmMaxCharWidth = (LONG)Round( (afm->FontBBox.urx - afm->FontBBox.llx) * font->fontinfo.Builtin.scale); font->underlinePosition = afm->UnderlinePosition * font->fontinfo.Builtin.scale; diff --git a/include/msvcrt/sys/stat.h b/include/msvcrt/sys/stat.h index 696c023d82e..4164618bcb3 100644 --- a/include/msvcrt/sys/stat.h +++ b/include/msvcrt/sys/stat.h @@ -34,7 +34,7 @@ struct _stat { short st_uid; short st_gid; _dev_t st_rdev; - _off_t st_size; + MSVCRT(_off_t) st_size; MSVCRT(time_t) st_atime; MSVCRT(time_t) st_mtime; MSVCRT(time_t) st_ctime; @@ -59,9 +59,9 @@ struct _stati64 { extern "C" { #endif -int _fstat(int,struct _stat*); +int MSVCRT(_fstat)(int,struct _stat*); +int MSVCRT(_stat)(const char*,struct _stat*); int _fstati64(int,struct _stati64*); -int _stat(const char*,struct _stat*); int _stati64(const char*,struct _stati64*); int _wstat(const WCHAR*,struct _stat*); diff --git a/include/msvcrt/sys/types.h b/include/msvcrt/sys/types.h index 3354e6ee534..1142eaea748 100644 --- a/include/msvcrt/sys/types.h +++ b/include/msvcrt/sys/types.h @@ -31,7 +31,7 @@ typedef unsigned int _dev_t; typedef unsigned short _ino_t; -typedef int _off_t; +typedef int MSVCRT(_off_t); typedef long MSVCRT(time_t); diff --git a/tsx11/Makefile.in b/tsx11/Makefile.in index b9faf5eb455..511b37ee4b0 100644 --- a/tsx11/Makefile.in +++ b/tsx11/Makefile.in @@ -37,7 +37,7 @@ libwine_tsx11.a: $(OBJS) $(RANLIB) $@ libwine_tsx11.dll: $(OBJS) - $(DLLWRAP) $(DLLWRAPFLAGS) --export-all --implib libwine_tsx11.a -o libwine_tsx11.dll $(OBJS) + $(DLLWRAP) $(DLLWRAPFLAGS) --export-all --implib libwine_tsx11.a -o libwine_tsx11.dll $(OBJS) $(EXTRALIBS) .PHONY: install_so install_a -- 2.11.4.GIT