[ros-diffs] [fireball] 45199: - Best way to fix CRT problem: Add more underscores! (and hacks) - winex11.drv builds again. - Mark usleep as unimplemented.

fireball at svn.reactos.org fireball at svn.reactos.org
Fri Jan 22 11:49:40 CET 2010


Author: fireball
Date: Fri Jan 22 11:49:40 2010
New Revision: 45199

URL: http://svn.reactos.org/svn/reactos?rev=45199&view=rev
Log:
- Best way to fix CRT problem: Add more underscores! (and hacks)
- winex11.drv builds again.
- Mark usleep as unimplemented.

Modified:
    branches/arwinss/reactos/dll/win32/winex11.drv/rosglue.c
    branches/arwinss/reactos/dll/win32/winex11.drv/window.c
    branches/arwinss/reactos/dll/win32/winex11.drv/xfont.c

Modified: branches/arwinss/reactos/dll/win32/winex11.drv/rosglue.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex11.drv/rosglue.c?rev=45199&r1=45198&r2=45199&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/winex11.drv/rosglue.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/winex11.drv/rosglue.c [iso-8859-1] Fri Jan 22 11:49:40 2010
@@ -4,6 +4,9 @@
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <fcntl.h>
+#include <share.h>
+#include <io.h>
 
 #include "windef.h"
 #include "winbase.h"
@@ -17,12 +20,9 @@
 int usleep (unsigned int useconds)
 {
     //return _usleep(useconds);
+    UNIMPLEMENTED;
     return 0;
 }
-
-//void xinerama_init( unsigned int width, unsigned int height )
-//{
-//}
 
 WCHAR *wine_get_dos_file_name(char *path)
 {
@@ -74,9 +74,55 @@
 {
 }
 
+
+/* CRT compatibility HACKS */
+
 struct _stat;
 int CDECL fstat(int fd, struct _stat* buf)
 {
     int CDECL _fstat(int fd, struct _stat* buf);
     return _fstat(fd, buf);
 }
+
+char *__cdecl strdup(const char *_Src)
+{
+    return _strdup(_Src);
+}
+
+int __cdecl open(const char *path,int flags,...)
+{
+  va_list ap;
+
+  if (flags & O_CREAT)
+  {
+    int pmode;
+    va_start(ap, flags);
+    pmode = va_arg(ap, int);
+    va_end(ap);
+    return _sopen( path, flags, _SH_DENYNO, pmode );
+  }
+  else
+    return _sopen( path, flags, _SH_DENYNO);
+}
+
+int __cdecl close(int _FileHandle)
+{
+    return _close(_FileHandle);
+}
+
+int __cdecl read(int _FileHandle,void *_DstBuf,unsigned int _MaxCharCount)
+{
+    return _read(_FileHandle, _DstBuf, _MaxCharCount);
+}
+
+int __cdecl unlink(const char *_Filename)
+{
+    return _unlink(_Filename);
+}
+
+int __cdecl access(const char *_Filename,int _AccessMode)
+{
+    return _access(_Filename, _AccessMode);
+}
+
+

Modified: branches/arwinss/reactos/dll/win32/winex11.drv/window.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex11.drv/window.c?rev=45199&r1=45198&r2=45199&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/winex11.drv/window.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/winex11.drv/window.c [iso-8859-1] Fri Jan 22 11:49:40 2010
@@ -946,7 +946,7 @@
     /* set the WM_CLIENT_MACHINE and WM_LOCALE_NAME properties */
     XSetWMProperties(display, data->whole_window, NULL, NULL, NULL, 0, NULL, NULL, NULL);
     /* set the pid. together, these properties are needed so the window manager can kill us if we freeze */
-    i = getpid();
+    i = _getpid();
     XChangeProperty(display, data->whole_window, x11drv_atom(_NET_WM_PID),
                     XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&i, 1);
 

Modified: branches/arwinss/reactos/dll/win32/winex11.drv/xfont.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex11.drv/xfont.c?rev=45199&r1=45198&r2=45199&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/winex11.drv/xfont.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/winex11.drv/xfont.c [iso-8859-1] Fri Jan 22 11:49:40 2010
@@ -47,6 +47,16 @@
 #include "wine/library.h"
 #include "wine/unicode.h"
 #include "wine/debug.h"
+
+#ifdef __REACTOS__
+// CRT compat HACKS
+#define open _open
+#define close _close
+#define read _read
+#define write _write
+#define lseek _lseek
+#define hypot _hypot
+#endif
 
 WINE_DEFAULT_DEBUG_CHANNEL(font);
 




More information about the Ros-diffs mailing list