[ros-diffs] [fireball] 44151: - Update to Wine-1.1.33.

fireball at svn.reactos.org fireball at svn.reactos.org
Sat Nov 14 12:11:27 CET 2009


Author: fireball
Date: Sat Nov 14 12:11:27 2009
New Revision: 44151

URL: http://svn.reactos.org/svn/reactos?rev=44151&view=rev
Log:
- Update to Wine-1.1.33.

Removed:
    vendor/wine/dlls/user32/current/driver16.c
Modified:
    vendor/wine/dlls/gdi32/current/enhmfdrv/graphics.c
    vendor/wine/dlls/gdi32/current/tests/metafile.c
    vendor/wine/dlls/user32/current/Makefile.in
    vendor/wine/dlls/user32/current/dde_misc.c
    vendor/wine/dlls/user32/current/defdlg.c
    vendor/wine/dlls/user32/current/message.c
    vendor/wine/dlls/user32/current/msg16.c
    vendor/wine/dlls/user32/current/nonclient.c
    vendor/wine/dlls/user32/current/tests/win.c
    vendor/wine/dlls/user32/current/user16.c
    vendor/wine/dlls/user32/current/user32.spec
    vendor/wine/dlls/user32/current/user_main.c
    vendor/wine/dlls/user32/current/win.c
    vendor/wine/dlls/user32/current/winpos.c
    vendor/wine/dlls/winex11.drv/current/bitblt.c
    vendor/wine/dlls/winex11.drv/current/dib.c
    vendor/wine/dlls/winex11.drv/current/event.c
    vendor/wine/dlls/winex11.drv/current/keyboard.c
    vendor/wine/dlls/winex11.drv/current/opengl.c
    vendor/wine/dlls/winex11.drv/current/window.c
    vendor/wine/dlls/winex11.drv/current/x11drv_main.c
    vendor/wine/dlls/winex11.drv/current/xfont.c
    vendor/wine/dlls/winex11.drv/current/xrender.c
    vendor/wine/server/current/fd.c
    vendor/wine/server/current/protocol.def
    vendor/wine/server/current/request.h
    vendor/wine/server/current/trace.c

Modified: vendor/wine/dlls/gdi32/current/enhmfdrv/graphics.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/gdi32/current/enhmfdrv/graphics.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/gdi32/current/enhmfdrv/graphics.c [iso-8859-1] (original)
+++ vendor/wine/dlls/gdi32/current/enhmfdrv/graphics.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -826,11 +826,10 @@
         pemr->rclBounds.bottom = y + textHeight + 1;
     }
     }
+    EMFDRV_UpdateBBox( dev, &pemr->rclBounds );
 
 no_bounds:
     ret = EMFDRV_WriteRecord( dev, &pemr->emr );
-    if(ret)
-        EMFDRV_UpdateBBox( dev, &pemr->rclBounds );
     HeapFree( GetProcessHeap(), 0, pemr );
     return ret;
 }

Modified: vendor/wine/dlls/gdi32/current/tests/metafile.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/gdi32/current/tests/metafile.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/gdi32/current/tests/metafile.c [iso-8859-1] (original)
+++ vendor/wine/dlls/gdi32/current/tests/metafile.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1953,8 +1953,11 @@
     SetRect(&rc_sclip, 100, 100, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
     hrgn = CreateRectRgn(rc_sclip.left, rc_sclip.top, rc_sclip.right, rc_sclip.bottom);
     SelectClipRgn(hdc, hrgn);
-    GetClipBox(hdc, &rc_res);
-    todo_wine ok(EqualRect(&rc_res, &rc_sclip),
+    ret = GetClipBox(hdc, &rc_res);
+todo_wine
+    ok(ret == SIMPLEREGION, "got %d\n", ret);
+    if(ret == SIMPLEREGION)
+        ok(EqualRect(&rc_res, &rc_sclip),
                  "expected rc_res (%d, %d) - (%d, %d), got (%d, %d) - (%d, %d)\n",
                  rc_sclip.left, rc_sclip.top, rc_sclip.right, rc_sclip.bottom,
                  rc_res.left, rc_res.top, rc_res.right, rc_res.bottom);

Modified: vendor/wine/dlls/user32/current/Makefile.in
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/Makefile.in?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/Makefile.in [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/Makefile.in [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -25,9 +25,7 @@
 	defwnd.c \
 	desktop.c \
 	dialog.c \
-	dialog16.c \
 	driver.c \
-	driver16.c \
 	edit.c \
 	exticon.c \
 	focus.c \
@@ -40,7 +38,6 @@
 	menu.c \
 	message.c \
 	misc.c \
-	msg16.c \
 	msgbox.c \
 	nonclient.c \
 	painting.c \
@@ -63,7 +60,9 @@
 C_SRCS16 = \
 	bidi16.c \
 	comm16.c \
+	dialog16.c \
 	hook16.c \
+	msg16.c \
 	network.c \
 	user16.c \
 	wnd16.c

Modified: vendor/wine/dlls/user32/current/dde_misc.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/dde_misc.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/dde_misc.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/dde_misc.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -380,6 +380,7 @@
     pInstance->nodeList = NULL; /* node will be added later */
     pInstance->monitorFlags = afCmd & MF_MASK;
     pInstance->wStatus = 0;
+    pInstance->lastError = DMLERR_NO_ERROR;
     pInstance->servers = NULL;
     pInstance->convs[0] = NULL;
     pInstance->convs[1] = NULL;

Modified: vendor/wine/dlls/user32/current/defdlg.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/defdlg.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/defdlg.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/defdlg.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -23,7 +23,7 @@
 #include "windef.h"
 #include "winbase.h"
 #include "wingdi.h"
-#include "wine/winuser16.h"
+#include "winuser.h"
 #include "controls.h"
 #include "win.h"
 #include "user_private.h"
@@ -317,22 +317,6 @@
 }
 
 /***********************************************************************
- *           DEFDLG_Epilog
- */
-static LRESULT DEFDLG_Epilog(HWND hwnd, UINT msg, BOOL fResult)
-{
-    /* see SDK 3.1 */
-
-    if ((msg >= WM_CTLCOLORMSGBOX && msg <= WM_CTLCOLORSTATIC) ||
-         msg == WM_CTLCOLOR || msg == WM_COMPAREITEM ||
-         msg == WM_VKEYTOITEM || msg == WM_CHARTOITEM ||
-         msg == WM_QUERYDRAGICON || msg == WM_INITDIALOG)
-        return fResult;
-
-    return GetWindowLongPtrW( hwnd, DWLP_MSGRESULT );
-}
-
-/***********************************************************************
 *               DIALOG_get_info
 *
 * Get the DIALOGINFO structure of a window, allocating it if needed
@@ -374,66 +358,13 @@
 }
 
 /***********************************************************************
- *              DefDlgProc (USER.308)
- */
-LRESULT WINAPI DefDlgProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam,
-                             LPARAM lParam )
-{
-    DIALOGINFO *dlgInfo;
-    DLGPROC16 dlgproc;
-    HWND hwnd32 = WIN_Handle32( hwnd );
-    BOOL result = FALSE;
-
-    /* Perform DIALOGINFO initialization if not done */
-    if(!(dlgInfo = DIALOG_get_info(hwnd32, TRUE))) return 0;
-
-    SetWindowLongPtrW( hwnd32, DWLP_MSGRESULT, 0 );
-
-    if ((dlgproc = (DLGPROC16)DEFDLG_GetDlgProc( hwnd32 ))) /* Call dialog procedure */
-        result = WINPROC_CallDlgProc16( dlgproc, hwnd, msg, wParam, lParam );
-
-    if (!result && IsWindow(hwnd32))
-    {
-        /* callback didn't process this message */
-
-        switch(msg)
-        {
-            case WM_ERASEBKGND:
-            case WM_SHOWWINDOW:
-            case WM_ACTIVATE:
-            case WM_SETFOCUS:
-            case DM_SETDEFID:
-            case DM_GETDEFID:
-            case WM_NEXTDLGCTL:
-            case WM_GETFONT:
-            case WM_CLOSE:
-            case WM_NCDESTROY:
-            case WM_ENTERMENULOOP:
-            case WM_LBUTTONDOWN:
-            case WM_NCLBUTTONDOWN:
-                return DEFDLG_Proc( hwnd32, msg, (WPARAM)wParam, lParam, dlgInfo );
-            case WM_INITDIALOG:
-            case WM_VKEYTOITEM:
-            case WM_COMPAREITEM:
-            case WM_CHARTOITEM:
-                break;
-
-            default:
-                return DefWindowProc16( hwnd, msg, wParam, lParam );
-        }
-    }
-    return DEFDLG_Epilog( hwnd32, msg, result);
-}
-
-
-/***********************************************************************
  *              DefDlgProcA (USER32.@)
  */
 LRESULT WINAPI DefDlgProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
 {
     DIALOGINFO *dlgInfo;
     DLGPROC dlgproc;
-    BOOL result = FALSE;
+    LRESULT result = 0;
 
     /* Perform DIALOGINFO initialization if not done */
     if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return 0;
@@ -473,7 +404,14 @@
                  return DefWindowProcA( hwnd, msg, wParam, lParam );
         }
     }
-    return DEFDLG_Epilog(hwnd, msg, result);
+
+    if ((msg >= WM_CTLCOLORMSGBOX && msg <= WM_CTLCOLORSTATIC) ||
+         msg == WM_CTLCOLOR || msg == WM_COMPAREITEM ||
+         msg == WM_VKEYTOITEM || msg == WM_CHARTOITEM ||
+         msg == WM_QUERYDRAGICON || msg == WM_INITDIALOG)
+        return result;
+
+    return GetWindowLongPtrW( hwnd, DWLP_MSGRESULT );
 }
 
 
@@ -483,8 +421,8 @@
 LRESULT WINAPI DefDlgProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
 {
     DIALOGINFO *dlgInfo;
-    BOOL result = FALSE;
     DLGPROC dlgproc;
+    LRESULT result = 0;
 
     /* Perform DIALOGINFO initialization if not done */
     if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return 0;
@@ -524,5 +462,12 @@
                  return DefWindowProcW( hwnd, msg, wParam, lParam );
         }
     }
-    return DEFDLG_Epilog(hwnd, msg, result);
-}
+
+    if ((msg >= WM_CTLCOLORMSGBOX && msg <= WM_CTLCOLORSTATIC) ||
+         msg == WM_CTLCOLOR || msg == WM_COMPAREITEM ||
+         msg == WM_VKEYTOITEM || msg == WM_CHARTOITEM ||
+         msg == WM_QUERYDRAGICON || msg == WM_INITDIALOG)
+        return result;
+
+    return GetWindowLongPtrW( hwnd, DWLP_MSGRESULT );
+}

Removed: vendor/wine/dlls/user32/current/driver16.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/driver16.c?rev=44150&view=auto
==============================================================================
--- vendor/wine/dlls/user32/current/driver16.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/driver16.c (removed)
@@ -1,440 +1,0 @@
-/*
- * WINE Drivers functions
- *
- * Copyright 1994 Martin Ayotte
- * Copyright 1998 Marcus Meissner
- * Copyright 1999,2000 Eric Pouech
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- *
- * TODO:
- *	- LoadModule count and clean up is not handled correctly (it's not a
- *	  problem as long as FreeLibrary is not working correctly)
- */
-
-#include <stdarg.h>
-#include <string.h>
-
-#include "windef.h"
-#include "winbase.h"
-#include "wine/winbase16.h"
-#include "wingdi.h"
-#include "winuser.h"
-#include "wownt32.h"
-#include "mmddk.h"
-#include "wine/mmsystem16.h"
-#include "wine/debug.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(driver);
-
-typedef struct tagWINE_DRIVER
-{
-    char			szAliasName[128];
-    /* as usual LPWINE_DRIVER == hDriver32 */
-    HDRVR16			hDriver16;
-    HMODULE16			hModule16;
-    DRIVERPROC16          	lpDrvProc;
-    DWORD		  	dwDriverID;
-    struct tagWINE_DRIVER*	lpPrevItem;
-    struct tagWINE_DRIVER*	lpNextItem;
-} WINE_DRIVER, *LPWINE_DRIVER;
-
-static LPWINE_DRIVER	lpDrvItemList = NULL;
-
-
-/**************************************************************************
- *			LoadStartupDrivers			[internal]
- */
-#if 0
-static void DRIVER_LoadStartupDrivers(void)
-{
-    char  	str[256];
-
-    if (GetPrivateProfileStringA("drivers", NULL, "", str, sizeof(str), "SYSTEM.INI") < 2) {
-    	ERR("Can't find drivers section in system.ini\n");
-    } else {
-	HDRVR16	hDrv;
-	LPSTR	ptr;
-
-	for (ptr = str; *ptr; ptr += strlen(ptr) + 1) {
-	    TRACE("str='%s'\n", ptr);
-	    hDrv = OpenDriver16(ptr, "drivers", 0L);
-	    TRACE("hDrv=%04x\n", hDrv);
-	}
-	TRACE("end of list !\n");
-    }
-}
-#endif
-
-/**************************************************************************
- *			DRIVER_GetNumberOfModuleRefs		[internal]
- *
- * Returns the number of open drivers which share the same module.
- */
-static	WORD	DRIVER_GetNumberOfModuleRefs(LPWINE_DRIVER lpNewDrv)
-{
-    LPWINE_DRIVER	lpDrv;
-    WORD		count = 0;
-
-    for (lpDrv = lpDrvItemList; lpDrv; lpDrv = lpDrv->lpNextItem) {
-	if (lpDrv->hModule16 == lpNewDrv->hModule16) {
-	    count++;
-	}
-    }
-    return count;
-}
-
-/**************************************************************************
- *				DRIVER_FindFromHDrvr16		[internal]
- *
- * From a hDrvr being 16 bits, returns the WINE internal structure.
- */
-static	LPWINE_DRIVER	DRIVER_FindFromHDrvr16(HDRVR16 hDrvr)
-{
-    LPWINE_DRIVER	lpDrv;
-
-    for (lpDrv = lpDrvItemList; lpDrv; lpDrv = lpDrv->lpNextItem) {
-	if (lpDrv->hDriver16 == hDrvr) {
-	    break;
-	}
-    }
-    return lpDrv;
-}
-
-/**************************************************************************
- *				DRIVER_SendMessage		[internal]
- */
-static inline LRESULT DRIVER_SendMessage(LPWINE_DRIVER lpDrv, UINT16 msg,
-					 LPARAM lParam1, LPARAM lParam2)
-{
-    WORD args[8];
-    DWORD ret;
-
-    TRACE("Before CallDriverProc proc=%p driverID=%08x wMsg=%04x p1=%08lx p2=%08lx\n",
-	  lpDrv->lpDrvProc, lpDrv->dwDriverID, msg, lParam1, lParam2);
-
-    args[7] = HIWORD(lpDrv->dwDriverID);
-    args[6] = LOWORD(lpDrv->dwDriverID);
-    args[5] = lpDrv->hDriver16;
-    args[4] = msg;
-    args[3] = HIWORD(lParam1);
-    args[2] = LOWORD(lParam1);
-    args[1] = HIWORD(lParam2);
-    args[0] = LOWORD(lParam2);
-    WOWCallback16Ex( (DWORD)lpDrv->lpDrvProc, WCB16_PASCAL, sizeof(args), args, &ret );
-    return ret;
-}
-
-/**************************************************************************
- *		SendDriverMessage (USER.251)
- */
-LRESULT WINAPI SendDriverMessage16(HDRVR16 hDriver, UINT16 msg, LPARAM lParam1,
-                                   LPARAM lParam2)
-{
-    LPWINE_DRIVER 	lpDrv;
-    LRESULT 		retval = 0;
-
-    TRACE("(%04x, %04X, %08lX, %08lX)\n", hDriver, msg, lParam1, lParam2);
-
-    if ((lpDrv = DRIVER_FindFromHDrvr16(hDriver)) != NULL) {
-	retval = DRIVER_SendMessage(lpDrv, msg, lParam1, lParam2);
-    } else {
-	WARN("Bad driver handle %u\n", hDriver);
-    }
-
-    TRACE("retval = %ld\n", retval);
-    return retval;
-}
-
-/**************************************************************************
- *				DRIVER_RemoveFromList		[internal]
- *
- * Generates all the logic to handle driver closure / deletion
- * Removes a driver struct to the list of open drivers.
- */
-static	BOOL	DRIVER_RemoveFromList(LPWINE_DRIVER lpDrv)
-{
-    lpDrv->dwDriverID = 0;
-    if (DRIVER_GetNumberOfModuleRefs(lpDrv) == 1) {
-	DRIVER_SendMessage(lpDrv, DRV_DISABLE, 0L, 0L);
-	DRIVER_SendMessage(lpDrv, DRV_FREE,    0L, 0L);
-    }
-
-    if (lpDrv->lpPrevItem)
-	lpDrv->lpPrevItem->lpNextItem = lpDrv->lpNextItem;
-    else
-	lpDrvItemList = lpDrv->lpNextItem;
-    if (lpDrv->lpNextItem)
-	lpDrv->lpNextItem->lpPrevItem = lpDrv->lpPrevItem;
-
-    return TRUE;
-}
-
-/**************************************************************************
- *				DRIVER_AddToList		[internal]
- *
- * Adds a driver struct to the list of open drivers.
- * Generates all the logic to handle driver creation / open.
- */
-static	BOOL	DRIVER_AddToList(LPWINE_DRIVER lpNewDrv, LPARAM lParam1, LPARAM lParam2)
-{
-    /* First driver to be loaded for this module, need to load correctly the module */
-    if (DRIVER_GetNumberOfModuleRefs(lpNewDrv) == 0) {
-	if (DRIVER_SendMessage(lpNewDrv, DRV_LOAD, 0L, 0L) != DRV_SUCCESS) {
-	    TRACE("DRV_LOAD failed on driver %p\n", lpNewDrv);
-	    return FALSE;
-	}
-	/* returned value is not checked */
-	DRIVER_SendMessage(lpNewDrv, DRV_ENABLE, 0L, 0L);
-    }
-
-    lpNewDrv->lpNextItem = NULL;
-    if (lpDrvItemList == NULL) {
-	lpDrvItemList = lpNewDrv;
-	lpNewDrv->lpPrevItem = NULL;
-    } else {
-	LPWINE_DRIVER	lpDrv = lpDrvItemList;	/* find end of list */
-	while (lpDrv->lpNextItem != NULL)
-	    lpDrv = lpDrv->lpNextItem;
-
-	lpDrv->lpNextItem = lpNewDrv;
-	lpNewDrv->lpPrevItem = lpDrv;
-    }
-    /* Now just open a new instance of a driver on this module */
-    lpNewDrv->dwDriverID = DRIVER_SendMessage(lpNewDrv, DRV_OPEN, lParam1, lParam2);
-
-    if (lpNewDrv->dwDriverID == 0) {
-	TRACE("DRV_OPEN failed on driver %p\n", lpNewDrv);
-	DRIVER_RemoveFromList(lpNewDrv);
-	return FALSE;
-    }
-
-    return TRUE;
-}
-
-/**************************************************************************
- *				DRIVER_TryOpenDriver16		[internal]
- *
- * Tries to load a 16 bit driver whose DLL's (module) name is lpFileName.
- */
-static	LPWINE_DRIVER	DRIVER_TryOpenDriver16(LPCSTR lpFileName, LPARAM lParam2)
-{
-    static	WORD	DRIVER_hDrvr16Counter /* = 0 */;
-    LPWINE_DRIVER 	lpDrv = NULL;
-    HMODULE16		hModule;
-    DRIVERPROC16	lpProc;
-    LPCSTR		lpSFN;
-    LPSTR		ptr;
-
-    TRACE("('%s', %08lX);\n", lpFileName, lParam2);
-
-    if (strlen(lpFileName) < 1) return lpDrv;
-
-    if ((lpSFN = strrchr(lpFileName, '\\')) == NULL)
-	lpSFN = lpFileName;
-    else
-	lpSFN++;
-    if ((ptr = strchr(lpFileName, ' ')) != NULL) {
-	*ptr++ = '\0';
-	while (*ptr == ' ') ptr++;
-	if (*ptr == '\0') ptr = NULL;
-    }
-
-    if ((hModule = LoadLibrary16(lpFileName)) < 32) goto exit;
-    if ((lpProc = (DRIVERPROC16)GetProcAddress16(hModule, "DRIVERPROC")) == NULL)
-	goto exit;
-
-    if ((lpDrv = HeapAlloc(GetProcessHeap(), 0, sizeof(WINE_DRIVER))) == NULL)
-	goto exit;
-
-    lpDrv->dwDriverID  = 0;
-    while (DRIVER_FindFromHDrvr16(++DRIVER_hDrvr16Counter));
-    lpDrv->hDriver16   = DRIVER_hDrvr16Counter;
-    lstrcpynA(lpDrv->szAliasName, lpSFN, sizeof(lpDrv->szAliasName));
-    lpDrv->hModule16   = hModule;
-    lpDrv->lpDrvProc   = lpProc;
-
-    if (!DRIVER_AddToList(lpDrv, (LPARAM)ptr, lParam2)) goto exit;
-
-    return lpDrv;
- exit:
-    TRACE("Unable to load 16 bit module (%s): %04x\n", lpFileName, hModule);
-    if (hModule >= 32)	FreeLibrary16(hModule);
-    HeapFree(GetProcessHeap(), 0, lpDrv);
-    return NULL;
-}
-
-/**************************************************************************
- *		OpenDriver (USER.252)
- */
-HDRVR16 WINAPI OpenDriver16(LPCSTR lpDriverName, LPCSTR lpSectionName, LPARAM lParam2)
-{
-    LPWINE_DRIVER	lpDrv = NULL;
-    char		drvName[128];
-
-    TRACE("(%s, %s, %08lX);\n", debugstr_a(lpDriverName), debugstr_a(lpSectionName), lParam2);
-
-    if (!lpDriverName || !*lpDriverName) return 0;
-
-    if (lpSectionName == NULL) {
-	strcpy(drvName, lpDriverName);
-
-	if ((lpDrv = DRIVER_TryOpenDriver16(drvName, lParam2)))
-	    goto the_end;
-	/* in case hDriver is NULL, search in Drivers section */
-	lpSectionName = "Drivers";
-    }
-    if (GetPrivateProfileStringA(lpSectionName, lpDriverName, "",
-				 drvName, sizeof(drvName), "SYSTEM.INI") > 0) {
-	lpDrv = DRIVER_TryOpenDriver16(drvName, lParam2);
-    }
-    if (!lpDrv) {
-	TRACE("Failed to open driver %s from system.ini file, section %s\n", debugstr_a(lpDriverName), debugstr_a(lpSectionName));
-	return 0;
-    }
- the_end:
-    TRACE("=> %04x / %p\n", lpDrv->hDriver16, lpDrv);
-    return lpDrv->hDriver16;
-}
-
-/**************************************************************************
- *		CloseDriver (USER.253)
- */
-LRESULT WINAPI CloseDriver16(HDRVR16 hDrvr, LPARAM lParam1, LPARAM lParam2)
-{
-    LPWINE_DRIVER	lpDrv;
-
-    TRACE("(%04x, %08lX, %08lX);\n", hDrvr, lParam1, lParam2);
-
-    if ((lpDrv = DRIVER_FindFromHDrvr16(hDrvr)) != NULL) {
-	DRIVER_SendMessage(lpDrv, DRV_CLOSE, lParam1, lParam2);
-
-	if (DRIVER_RemoveFromList(lpDrv)) {
-	    HeapFree(GetProcessHeap(), 0, lpDrv);
-	    return TRUE;
-	}
-    }
-    WARN("Failed to close driver\n");
-    return FALSE;
-}
-
-/**************************************************************************
- *		GetDriverModuleHandle (USER.254)
- */
-HMODULE16 WINAPI GetDriverModuleHandle16(HDRVR16 hDrvr)
-{
-    LPWINE_DRIVER 	lpDrv;
-    HMODULE16 		hModule = 0;
-
-    TRACE("(%04x);\n", hDrvr);
-
-    if ((lpDrv = DRIVER_FindFromHDrvr16(hDrvr)) != NULL) {
-	hModule = lpDrv->hModule16;
-    }
-    TRACE("=> %04x\n", hModule);
-    return hModule;
-}
-
-/**************************************************************************
- *		DefDriverProc (USER.255)
- */
-LRESULT WINAPI DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg,
-                               LPARAM lParam1, LPARAM lParam2)
-{
-    TRACE("devID=0x%08x hDrv=0x%04x wMsg=%04x lP1=0x%08lx lP2=0x%08lx\n",
-	  dwDevID, hDriv, wMsg, lParam1, lParam2);
-
-    switch(wMsg) {
-    case DRV_LOAD:
-    case DRV_FREE:
-    case DRV_ENABLE:
-    case DRV_DISABLE:
-	return (LRESULT)1L;
-    case DRV_OPEN:
-    case DRV_CLOSE:
-    case DRV_QUERYCONFIGURE:
-	return (LRESULT)0L;
-    case DRV_CONFIGURE:
-	MessageBoxA(0, "Driver isn't configurable !", "Wine Driver", MB_OK);
-	return (LRESULT)0L;
-    case DRV_INSTALL:
-    case DRV_REMOVE:
-	return DRV_SUCCESS;
-    default:
-	return (LRESULT)0L;
-    }
-}
-
-/**************************************************************************
- *		GetDriverInfo (USER.256)
- */
-BOOL16 WINAPI GetDriverInfo16(HDRVR16 hDrvr, LPDRIVERINFOSTRUCT16 lpDrvInfo)
-{
-    LPWINE_DRIVER 	lpDrv;
-    BOOL16		ret = FALSE;
-
-    TRACE("(%04x, %p);\n", hDrvr, lpDrvInfo);
-
-    if (lpDrvInfo == NULL || lpDrvInfo->length != sizeof(DRIVERINFOSTRUCT16))
-	return FALSE;
-
-    if ((lpDrv = DRIVER_FindFromHDrvr16(hDrvr)) != NULL) {
-	lpDrvInfo->hDriver = lpDrv->hDriver16;
-	lpDrvInfo->hModule = lpDrv->hModule16;
-	lstrcpynA(lpDrvInfo->szAliasName, lpDrv->szAliasName, sizeof(lpDrvInfo->szAliasName));
-	ret = TRUE;
-    }
-
-    return ret;
-}
-
-/**************************************************************************
- *		GetNextDriver (USER.257)
- */
-HDRVR16 WINAPI GetNextDriver16(HDRVR16 hDrvr, DWORD dwFlags)
-{
-    HDRVR16 		hRetDrv = 0;
-    LPWINE_DRIVER 	lpDrv;
-
-    TRACE("(%04x, %08X);\n", hDrvr, dwFlags);
-
-    if (hDrvr == 0) {
-	if (lpDrvItemList == NULL) {
-	    FIXME("drivers list empty !\n");
-	    /* FIXME: code was using DRIVER_LoadStartupDrivers(); before ?
-	     * I (EPP) don't quite understand this
-	     */
-	    if (lpDrvItemList == NULL)
-		return 0;
-	}
-	lpDrv = lpDrvItemList;
-	if (dwFlags & GND_REVERSE) {
-	    while (lpDrv->lpNextItem)
-		lpDrv = lpDrv->lpNextItem;
-	}
-    } else {
-	if ((lpDrv = DRIVER_FindFromHDrvr16(hDrvr)) != NULL) {
-	    if (dwFlags & GND_REVERSE) {
-		lpDrv = (lpDrv->lpPrevItem) ? lpDrv->lpPrevItem : NULL;
-	    } else {
-		lpDrv = (lpDrv->lpNextItem) ? lpDrv->lpNextItem : NULL;
-	    }
-	}
-    }
-
-    hRetDrv = (lpDrv) ? lpDrv->hDriver16 : 0;
-    TRACE("return %04x !\n", hRetDrv);
-    return hRetDrv;
-}

Modified: vendor/wine/dlls/user32/current/message.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/message.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/message.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/message.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -3365,28 +3365,6 @@
 
 
 /***********************************************************************
- *		UserYield (USER.332)
- */
-void WINAPI UserYield16(void)
-{
-   DWORD count;
-
-    /* Handle sent messages */
-    process_sent_messages();
-
-    /* Yield */
-    ReleaseThunkLock(&count);
-
-    if (count)
-    {
-        RestoreThunkLock(count);
-        /* Handle sent messages again */
-        process_sent_messages();
-    }
-}
-
-
-/***********************************************************************
  *		RegisterWindowMessageA (USER32.@)
  *		RegisterWindowMessage (USER.118)
  */

Modified: vendor/wine/dlls/user32/current/msg16.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/msg16.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/msg16.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/msg16.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -77,6 +77,13 @@
     return 0;
 }
 
+static LRESULT defdlg_proc_callback( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp,
+                                     LRESULT *result, void *arg )
+{
+    *result = DefDlgProcA( hwnd, msg, wp, lp );
+    return *result;
+}
+
 
 /***********************************************************************
  *		SendMessage  (USER.111)
@@ -270,6 +277,17 @@
 
 
 /***********************************************************************
+ *              DefDlgProc (USER.308)
+ */
+LRESULT WINAPI DefDlgProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam )
+{
+    LRESULT result;
+    WINPROC_CallProc16To32A( defdlg_proc_callback, hwnd, msg, wParam, lParam, &result, 0 );
+    return result;
+}
+
+
+/***********************************************************************
  *		PeekMessage  (USER.109)
  */
 BOOL16 WINAPI PeekMessage16( MSG16 *msg, HWND16 hwnd,
@@ -506,6 +524,16 @@
 
 
 /***********************************************************************
+ *		UserYield (USER.332)
+ */
+void WINAPI UserYield16(void)
+{
+    MSG msg;
+    PeekMessageW( &msg, 0, 0, 0, PM_REMOVE | PM_QS_SENDMESSAGE );
+}
+
+
+/***********************************************************************
  *		GetQueueStatus (USER.334)
  */
 DWORD WINAPI GetQueueStatus16( UINT16 flags )

Modified: vendor/wine/dlls/user32/current/nonclient.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/nonclient.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/nonclient.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/nonclient.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1630,6 +1630,11 @@
 
     TRACE("(%p %p)\n", hwnd, tbi);
 
+    if(!tbi) {
+        SetLastError(ERROR_NOACCESS);
+        return FALSE;
+    }
+
     if(tbi->cbSize != sizeof(TITLEBARINFO)) {
         TRACE("Invalid TITLEBARINFO size: %d\n", tbi->cbSize);
         SetLastError(ERROR_INVALID_PARAMETER);

Modified: vendor/wine/dlls/user32/current/tests/win.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/tests/win.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/tests/win.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/tests/win.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -2298,7 +2298,7 @@
 
 static void test_SetFocus(HWND hwnd)
 {
-    HWND child;
+    HWND child, child2;
     WNDPROC old_wnd_proc;
 
     /* check if we can set focus to non-visible windows */
@@ -2325,6 +2325,14 @@
     ok( !(GetWindowLong(child,GWL_STYLE) & WS_VISIBLE), "Child %p is visible\n", child );
     ok( GetFocus() == hwnd, "Focus should be on parent %p, not %p\n", hwnd, GetFocus() );
     ShowWindow(child, SW_SHOW);
+    child2 = CreateWindowExA(0, "static", NULL, WS_CHILD, 0, 0, 0, 0, child, 0, 0, NULL);
+    assert(child2);
+    ShowWindow(child2, SW_SHOW);
+    SetFocus(child2);
+    ShowWindow(child, SW_HIDE);
+    ok( !(GetWindowLong(child,GWL_STYLE) & WS_VISIBLE), "Child %p is visible\n", child );
+    ok( GetFocus() == child2, "Focus should be on %p, not %p\n", child2, GetFocus() );
+    ShowWindow(child, SW_SHOW);
     SetFocus(child);
     ok( GetFocus() == child, "Focus should be on child %p\n", child );
     SetWindowPos(child,0,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_HIDEWINDOW);
@@ -2368,6 +2376,7 @@
 
     SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)old_wnd_proc);
 
+    DestroyWindow( child2 );
     DestroyWindow( child );
 }
 

Modified: vendor/wine/dlls/user32/current/user16.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/user16.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/user16.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/user16.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -943,6 +943,80 @@
 UINT16 WINAPI GetMenuState16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags )
 {
     return GetMenuState( HMENU_32(hMenu), wItemID, wFlags );
+}
+
+
+/**************************************************************************
+ *		SendDriverMessage (USER.251)
+ */
+LRESULT WINAPI SendDriverMessage16(HDRVR16 hDriver, UINT16 msg, LPARAM lParam1,
+                                   LPARAM lParam2)
+{
+    FIXME("(%04x, %04x, %08lx, %08lx): stub\n", hDriver, msg, lParam1, lParam2);
+    return 0;
+}
+
+
+/**************************************************************************
+ *		OpenDriver (USER.252)
+ */
+HDRVR16 WINAPI OpenDriver16(LPCSTR lpDriverName, LPCSTR lpSectionName, LPARAM lParam2)
+{
+    FIXME( "(%s, %s, %08lx): stub\n", debugstr_a(lpDriverName), debugstr_a(lpSectionName), lParam2);
+    return 0;
+}
+
+
+/**************************************************************************
+ *		CloseDriver (USER.253)
+ */
+LRESULT WINAPI CloseDriver16(HDRVR16 hDrvr, LPARAM lParam1, LPARAM lParam2)
+{
+    FIXME( "(%04x, %08lx, %08lx): stub\n", hDrvr, lParam1, lParam2);
+    return FALSE;
+}
+
+
+/**************************************************************************
+ *		GetDriverModuleHandle (USER.254)
+ */
+HMODULE16 WINAPI GetDriverModuleHandle16(HDRVR16 hDrvr)
+{
+    FIXME("(%04x): stub\n", hDrvr);
+    return 0;
+}
+
+
+/**************************************************************************
+ *		DefDriverProc (USER.255)
+ */
+LRESULT WINAPI DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg,
+                               LPARAM lParam1, LPARAM lParam2)
+{
+    FIXME( "devID=0x%08x hDrv=0x%04x wMsg=%04x lP1=0x%08lx lP2=0x%08lx: stub\n",
+	  dwDevID, hDriv, wMsg, lParam1, lParam2);
+    return 0;
+}
+
+
+/**************************************************************************
+ *		GetDriverInfo (USER.256)
+ */
+struct DRIVERINFOSTRUCT16;
+BOOL16 WINAPI GetDriverInfo16(HDRVR16 hDrvr, struct DRIVERINFOSTRUCT16 *lpDrvInfo)
+{
+    FIXME( "(%04x, %p): stub\n", hDrvr, lpDrvInfo);
+    return FALSE;
+}
+
+
+/**************************************************************************
+ *		GetNextDriver (USER.257)
+ */
+HDRVR16 WINAPI GetNextDriver16(HDRVR16 hDrvr, DWORD dwFlags)
+{
+    FIXME( "(%04x, %08x): stub\n", hDrvr, dwFlags);
+    return 0;
 }
 
 

Modified: vendor/wine/dlls/user32/current/user32.spec
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/user32.spec?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/user32.spec [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/user32.spec [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -774,17 +774,7 @@
 ################################################################
 # Wine extensions: Win16 functions that are needed by other dlls
 #
-@ stdcall CallWindowProc16(long long long long long)
-@ stdcall CloseDriver16(long long long)
-@ stdcall CreateDialogIndirectParam16(long ptr long long long)
-@ stdcall DefDriverProc16(long long long long long)
-@ stdcall DefWindowProc16(long long long long)
 @ stdcall DestroyIcon32(long long)
-@ stdcall DialogBoxIndirectParam16(long long long long long)
-@ stdcall GetDriverModuleHandle16(long)
-@ stdcall OpenDriver16(str str long)
-@ stdcall SendDriverMessage16(long long long long)
-@ stdcall UserYield16()
 
 ################################################################
 # Wine dll separation hacks, these will go away, don't use them

Modified: vendor/wine/dlls/user32/current/user_main.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/user_main.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/user_main.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/user_main.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -354,12 +354,14 @@
     static const WCHAR forceW[]       = { ' ','-','-','f','o','r','c','e',0 };
     static const WCHAR shutdownW[]    = { ' ','-','-','s','h','u','t','d','o','w','n',0 };
 
+    WCHAR app[MAX_PATH];
     WCHAR cmdline[MAX_PATH + 64];
     PROCESS_INFORMATION pi;
     STARTUPINFOW si;
 
-    GetSystemDirectoryW( cmdline, MAX_PATH );
-    lstrcatW( cmdline, winebootW );
+    GetSystemDirectoryW( app, MAX_PATH - sizeof(winebootW)/sizeof(WCHAR) );
+    strcatW( app, winebootW );
+    strcpyW( cmdline, app );
 
     if (flags & EWX_FORCE) lstrcatW( cmdline, killW );
     else
@@ -371,7 +373,7 @@
 
     memset( &si, 0, sizeof si );
     si.cb = sizeof si;
-    if (!CreateProcessW( NULL, cmdline, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &si, &pi ))
+    if (!CreateProcessW( app, cmdline, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &si, &pi ))
     {
         ERR( "Failed to run %s\n", debugstr_w(cmdline) );
         return FALSE;

Modified: vendor/wine/dlls/user32/current/win.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/win.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/win.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/win.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1852,11 +1852,13 @@
         if (!GetUserObjectInformationW( GetProcessWindowStation(), UOI_FLAGS, &flags,
                                         sizeof(flags), NULL ) || (flags.dwFlags & WSF_VISIBLE))
         {
-            static const WCHAR command_line[] = {'\\','e','x','p','l','o','r','e','r','.','e','x','e',' ','/','d','e','s','k','t','o','p',0};
+            static const WCHAR explorer[] = {'\\','e','x','p','l','o','r','e','r','.','e','x','e',0};
+            static const WCHAR args[] = {' ','/','d','e','s','k','t','o','p',0};
             STARTUPINFOW si;
             PROCESS_INFORMATION pi;
-            WCHAR systemdir[MAX_PATH];
-            WCHAR cmdline[MAX_PATH + sizeof(command_line)/sizeof(WCHAR)];
+            WCHAR windir[MAX_PATH];
+            WCHAR app[MAX_PATH + sizeof(explorer)/sizeof(WCHAR)];
+            WCHAR cmdline[MAX_PATH + (sizeof(explorer) + sizeof(args))/sizeof(WCHAR)];
 
             memset( &si, 0, sizeof(si) );
             si.cb = sizeof(si);
@@ -1865,11 +1867,13 @@
             si.hStdOutput = 0;
             si.hStdError  = GetStdHandle( STD_ERROR_HANDLE );
 
-            GetSystemDirectoryW( systemdir, MAX_PATH );
-            lstrcpyW( cmdline, systemdir );
-            lstrcatW( cmdline, command_line );
-            if (CreateProcessW( NULL, cmdline, NULL, NULL, FALSE, DETACHED_PROCESS,
-                                NULL, systemdir, &si, &pi ))
+            GetWindowsDirectoryW( windir, MAX_PATH );
+            strcpyW( app, windir );
+            strcatW( app, explorer );
+            strcpyW( cmdline, app );
+            strcatW( cmdline, args );
+            if (CreateProcessW( app, cmdline, NULL, NULL, FALSE, DETACHED_PROCESS,
+                                NULL, windir, &si, &pi ))
             {
                 TRACE( "started explorer pid %04x tid %04x\n", pi.dwProcessId, pi.dwThreadId );
                 WaitForInputIdle( pi.hProcess, 10000 );

Modified: vendor/wine/dlls/user32/current/winpos.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/winpos.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/user32/current/winpos.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/winpos.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1056,7 +1056,7 @@
 
         /* Revert focus to parent */
         hFocus = GetFocus();
-        if (hwnd == hFocus || IsChild(hwnd, hFocus))
+        if (hwnd == hFocus)
         {
             HWND parent = GetAncestor(hwnd, GA_PARENT);
             if (parent == GetDesktopWindow()) parent = 0;

Modified: vendor/wine/dlls/winex11.drv/current/bitblt.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/bitblt.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/bitblt.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/bitblt.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1350,6 +1350,14 @@
     return TRUE;
 }
 
+static BOOL same_format(X11DRV_PDEVICE *physDevSrc, X11DRV_PDEVICE *physDevDst)
+{
+    if (physDevSrc->depth != physDevDst->depth) return FALSE;
+    if (!physDevSrc->color_shifts && !physDevDst->color_shifts) return TRUE;
+    if (physDevSrc->color_shifts && physDevDst->color_shifts)
+        return !memcmp(physDevSrc->color_shifts, physDevDst->color_shifts, sizeof(ColorShifts));
+    return FALSE;
+}
 
 /***********************************************************************
  *           X11DRV_StretchBlt
@@ -1446,7 +1454,7 @@
     /* try client-side DIB copy */
     if (!fStretch && rop == SRCCOPY &&
         sSrc == DIB_Status_AppMod && sDst == DIB_Status_AppMod &&
-        physDevSrc->depth == physDevDst->depth)
+        same_format(physDevSrc, physDevDst))
     {
         if (client_side_dib_copy( physDevSrc, visRectSrc.left, visRectSrc.top,
                                   physDevDst, visRectDst.left, visRectDst.top, width, height ))
@@ -1519,7 +1527,7 @@
         }
         else if (OP_SRCDST(*opcode) == OP_ARGS(SRC,DST))
         {
-            if (physDevSrc->depth == physDevDst->depth)
+            if (same_format(physDevSrc, physDevDst))
             {
                 wine_tsx11_lock();
                 XSetFunction( gdi_display, physDevDst->gc, OP_ROP(*opcode) );

Modified: vendor/wine/dlls/winex11.drv/current/dib.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/dib.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/dib.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/dib.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -4096,6 +4096,11 @@
   if (!(obj_size = GetObjectW( hbitmap, sizeof(dib), &dib ))) return 0;
 
   bitmap_type = DIB_GetBitmapInfo( (BITMAPINFOHEADER*)info, &width, &tempHeight, &descr.infoBpp, &descr.compression);
+  if (bitmap_type == -1)
+  {
+      ERR("Invalid bitmap\n");
+      return 0;
+  }
 
   if (physBitmap->pixmap_depth > 1)
   {
@@ -4107,11 +4112,6 @@
     palette[1] = peWhite;
   }
 
-  if (bitmap_type == -1)
-  {
-      ERR("Invalid bitmap\n");
-      return 0;
-  }
   descr.lines = tempHeight;
   core_header = (bitmap_type == 0);
   colorPtr = (LPBYTE) info + (WORD) info->bmiHeader.biSize;

Modified: vendor/wine/dlls/winex11.drv/current/event.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/event.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/event.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/event.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -476,11 +476,13 @@
 {
     HWND focus;
     Window win;
+    GUITHREADINFO threadinfo;
 
     TRACE( "setting foreground window to %p\n", hwnd );
     SetForegroundWindow( hwnd );
 
-    focus = GetFocus();
+    GetGUIThreadInfo(0, &threadinfo);
+    focus = threadinfo.hwndFocus;
     if (focus) focus = GetAncestor( focus, GA_ROOT );
     win = X11DRV_get_whole_window(focus);
 
@@ -676,6 +678,7 @@
         wine_tsx11_unlock();
     }
     if (hwnd != GetForegroundWindow()) return;
+    if (root_window != DefaultRootWindow(event->display)) return;
     SendMessageW( hwnd, WM_CANCELMODE, 0, 0 );
 
     /* don't reset the foreground window, if the window which is

Modified: vendor/wine/dlls/winex11.drv/current/keyboard.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/keyboard.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/keyboard.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/keyboard.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1683,11 +1683,29 @@
     KeySym keysym;
     KeyCode *kcp;
     XKeyEvent e2;
-    WORD scan, vkey, OEMvkey;
+    WORD scan, vkey;
     int keyc, i, keyn, syms;
     char ckey[4]={0,0,0,0};
     const char (*lkey)[MAIN_LEN][4];
     char vkey_used[256] = { 0 };
+
+    /* Ranges of OEM, function key, and character virtual key codes.
+     * Don't include those handled specially in X11DRV_ToUnicodeEx and
+     * X11DRV_MapVirtualKeyEx, like VK_NUMPAD0 - VK_DIVIDE. */
+    static const struct {
+        WORD first, last;
+    } vkey_ranges[] = {
+        { VK_OEM_1, VK_OEM_3 },
+        { VK_OEM_4, VK_ICO_00 },
+        { 0xe6, 0xe6 },
+        { 0xe9, 0xf5 },
+        { VK_OEM_NEC_EQUAL, VK_OEM_NEC_EQUAL },
+        { VK_F1, VK_F24 },
+        { 0x30, 0x39 }, /* VK_0 - VK_9 */
+        { 0x41, 0x5a }, /* VK_A - VK_Z */
+        { 0, 0 }
+    };
+    int vkey_range;
 
     set_kbd_layout_preload_key();
 
@@ -1737,7 +1755,6 @@
     e2.display = display;
     e2.state = 0;
 
-    OEMvkey = VK_OEM_8; /* next is available.  */
     memset(keyc2vkey, 0, sizeof(keyc2vkey));
     for (keyc = min_keycode; keyc <= max_keycode; keyc++)
     {
@@ -1854,46 +1871,65 @@
             }
         }
 
-        if (!vkey)
-        {
-            /* Others keys: let's assign OEM virtual key codes in the allowed range,
-             * that is ([0xba,0xc0], [0xdb,0xe4], 0xe6 (given up) et [0xe9,0xf5]) */
-            do
-            {
-                switch (++OEMvkey)
-                {
-                case 0xc1 : OEMvkey=0xdb; break;
-                case 0xe5 : OEMvkey=0xe9; break;
-                case 0xf6 : OEMvkey=0xf5; WARN("No more OEM vkey available!\n");
-                }
-            } while (OEMvkey < 0xf5 && vkey_used[OEMvkey]);
-
-            vkey = VKEY_IF_NOT_USED(OEMvkey);
-
-            if (TRACE_ON(keyboard))
-            {
-                TRACE("OEM specific virtual key %X assigned to keycode %X:\n",
-                                 OEMvkey, e2.keycode);
-                TRACE("(");
-                for (i = 0; i < keysyms_per_keycode; i += 1)
-                {
-                    const char *ksname;
-
-                    keysym = XLookupKeysym(&e2, i);
-                    ksname = XKeysymToString(keysym);
-                    if (!ksname)
-                        ksname = "NoSymbol";
-                    TRACE( "%lX (%s) ", keysym, ksname);
-                }
-                TRACE(")\n");
-            }
-        }
-
         if (vkey)
         {
             TRACE("keycode %04x => vkey %04x\n", e2.keycode, vkey);
             keyc2vkey[e2.keycode] = vkey;
         }
+    } /* for */
+
+    /* For any keycodes which still don't have a vkey, assign any spare
+     * character, function key, or OEM virtual key code. */
+    vkey_range = 0;
+    vkey = vkey_ranges[vkey_range].first;
+    for (keyc = min_keycode; keyc <= max_keycode; keyc++)
+    {
+        if (keyc2vkey[keyc] & 0xff)
+            continue;
+
+        e2.keycode = (KeyCode)keyc;
+        keysym = XLookupKeysym(&e2, 0);
+        if (!keysym)
+           continue;
+
+        while (vkey && vkey_used[vkey])
+        {
+            if (vkey == vkey_ranges[vkey_range].last)
+            {
+                vkey_range++;
+                vkey = vkey_ranges[vkey_range].first;
+            }
+            else
+                vkey++;
+        }
+
+        if (!vkey)
+        {
+            WARN("No more vkeys available!\n");
+            break;
+        }
+
+        if (TRACE_ON(keyboard))
+        {
+            TRACE("spare virtual key %X assigned to keycode %X:\n",
+                             vkey, e2.keycode);
+            TRACE("(");
+            for (i = 0; i < keysyms_per_keycode; i += 1)
+            {
+                const char *ksname;
+
+                keysym = XLookupKeysym(&e2, i);
+                ksname = XKeysymToString(keysym);
+                if (!ksname)
+                    ksname = "NoSymbol";
+                TRACE( "%lX (%s) ", keysym, ksname);
+            }
+            TRACE(")\n");
+        }
+
+        TRACE("keycode %04x => vkey %04x\n", e2.keycode, vkey);
+        keyc2vkey[e2.keycode] = vkey;
+        vkey_used[vkey] = 1;
     } /* for */
 #undef VKEY_IF_NOT_USED
 

Modified: vendor/wine/dlls/winex11.drv/current/opengl.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/opengl.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/opengl.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/opengl.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -600,7 +600,7 @@
   int pop;
   int drawattrib = 0;
   int nvfloatattrib = GLX_DONT_CARE;
-  int pixelattrib = 0;
+  int pixelattrib = ~0;
 
   /* The list of WGL attributes is allowed to be NULL. We don't return here for NULL
    * because we need to do fixups for GLX_DRAWABLE_TYPE/GLX_RENDER_TYPE/GLX_FLOAT_COMPONENTS_NV. */
@@ -756,7 +756,6 @@
           ERR("trying to use WGL_render_texture Attributes without support (was %x)\n", iWGLAttr[cur]);
           return -1; /** error: don't support it */
         } else {
-          PUSH2(oGLXAttr, GLX_X_RENDERABLE, pop);
           drawattrib |= GLX_PBUFFER_BIT;
         }
       }
@@ -796,12 +795,16 @@
     ++cur;
   }
 
-  /* Apply the OR'd drawable type bitmask now EVEN when WGL_DRAW_TO* is unset.
-   * It is needed in all cases because GLX_DRAWABLE_TYPE default to GLX_WINDOW_BIT. */
+  /* By default glXChooseFBConfig defaults to GLX_WINDOW_BIT. wglChoosePixelFormatARB searches through
+   * all formats. Unless drawattrib is set to a non-zero value override it with ~0, so that pixmap and pbuffer
+   * formats appear as well. */
+  if(!drawattrib) drawattrib = ~0;
   PUSH2(oGLXAttr, GLX_DRAWABLE_TYPE, drawattrib);
   TRACE("pAttr[?] = GLX_DRAWABLE_TYPE: %#x\n", drawattrib);
 
-  /* Set GLX_RENDER_TYPE all the time */
+  /* By default glXChooseFBConfig uses GLX_RGBA_BIT as the default value. Since wglChoosePixelFormatARB
+   * searches in all formats we have to do the same. For this reason we set GLX_RENDER_TYPE to ~0 unless
+   * it is overridden. */
   PUSH2(oGLXAttr, GLX_RENDER_TYPE, pixelattrib);
   TRACE("pAttr[?] = GLX_RENDER_TYPE: %#x\n", pixelattrib);
 

Modified: vendor/wine/dlls/winex11.drv/current/window.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/window.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/window.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/window.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -2025,14 +2025,11 @@
     wine_tsx11_lock();
     changes.stack_mode = Above;
     XConfigureWindow( display, data->whole_window, CWStackMode, &changes );
-    if (root_window == DefaultRootWindow(display))
-    {
-        /* we must not use CurrentTime (ICCCM), so try to use last message time instead */
-        /* FIXME: this is not entirely correct */
-        XSetInputFocus( display, data->whole_window, RevertToParent,
-                        /* CurrentTime */
-                        GetMessageTime() - EVENT_x11_time_to_win32_time(0));
-    }
+    /* we must not use CurrentTime (ICCCM), so try to use last message time instead */
+    /* FIXME: this is not entirely correct */
+    XSetInputFocus( display, data->whole_window, RevertToParent,
+                    /* CurrentTime */
+                    GetMessageTime() - EVENT_x11_time_to_win32_time(0));
     wine_tsx11_unlock();
 }
 

Modified: vendor/wine/dlls/winex11.drv/current/x11drv_main.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/x11drv_main.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/x11drv_main.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/x11drv_main.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -188,7 +188,8 @@
  */
 static inline BOOL ignore_error( Display *display, XErrorEvent *event )
 {
-    if (event->request_code == X_SetInputFocus && event->error_code == BadMatch) return TRUE;
+    if (event->request_code == X_SetInputFocus &&
+        (event->error_code == BadMatch || event->error_code == BadWindow)) return TRUE;
 
     /* ignore a number of errors on gdi display caused by creating/destroying windows */
     if (display == gdi_display)

Modified: vendor/wine/dlls/winex11.drv/current/xfont.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/xfont.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/xfont.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/xfont.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1852,7 +1852,7 @@
     **
     **  - on Red Hat systems, DISPLAY is commonly set to one of
     **    either 'unix:0.0' or ':0' or ':0.0'.
-    **  - on MacOS X systems, DISPLAY is commonly set to
+    **  - on Mac OS X systems, DISPLAY is commonly set to
     **    /tmp/foo/:0
     **
     **  after this code, all of the above will resolve to ':0.0'.

Modified: vendor/wine/dlls/winex11.drv/current/xrender.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/xrender.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/xrender.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/xrender.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1956,9 +1956,6 @@
         return FALSE;
     }
 
-    if ((blendfn.AlphaFormat & AC_SRC_ALPHA) && blendfn.SourceConstantAlpha != 0xff)
-        FIXME("Ignoring SourceConstantAlpha %d for AC_SRC_ALPHA\n", blendfn.SourceConstantAlpha);
-
     if(dib.dsBm.bmBitsPixel != 32) {
         FIXME("not a 32 bpp dibsection\n");
         return FALSE;
@@ -1979,11 +1976,35 @@
 
     if (blendfn.AlphaFormat & AC_SRC_ALPHA)
     {
-        for(; y >= y2; y--)
+        if (blendfn.SourceConstantAlpha == 0xff)
         {
-            memcpy(dstbits, (char *)dib.dsBm.bmBits + y * dib.dsBm.bmWidthBytes + xSrc * 4,
-                   widthSrc * 4);
-            dstbits += (top_down ? -1 : 1) * widthSrc;
+            for (; y >= y2; y--)
+            {
+                memcpy(dstbits, (char *)dib.dsBm.bmBits + y * dib.dsBm.bmWidthBytes + xSrc * 4,
+                       widthSrc * 4);
+                dstbits += (top_down ? -1 : 1) * widthSrc;
+            }
+        }
+        else
+        {
+            /* SourceConstantAlpha combined with source alpha */
+            for (; y >= y2; y--)
+            {
+                int x;
+                DWORD *srcbits = (DWORD *)((char *)dib.dsBm.bmBits + y * dib.dsBm.bmWidthBytes) + xSrc;
+                for (x = 0; x < widthSrc; x++)
+                {
+                    DWORD argb = *srcbits++;
+                    BYTE *s = (BYTE *) &argb;
+                    s[0] = (s[0] * blendfn.SourceConstantAlpha) / 255;
+                    s[1] = (s[1] * blendfn.SourceConstantAlpha) / 255;
+                    s[2] = (s[2] * blendfn.SourceConstantAlpha) / 255;
+                    s[3] = (s[3] * blendfn.SourceConstantAlpha) / 255;
+                    *dstbits++ = argb;
+                }
+                if (top_down)  /* we traversed the row forward so we should go back by two rows */
+                    dstbits -= 2 * widthSrc;
+            }
         }
     }
     else
@@ -2063,21 +2084,20 @@
 {
     /* At depths >1, the depth of physBitmap and physDev might not be the same e.g. the physbitmap might be a 16-bit DIB while the physdev uses 24-bit */
     int depth = physBitmap->pixmap_depth == 1 ? 1 : physDev->depth;
+    const WineXRenderFormat *src_format = get_xrender_format_from_color_shifts(physBitmap->pixmap_depth, &physBitmap->pixmap_color_shifts);
+    const WineXRenderFormat *dst_format = get_xrender_format_from_color_shifts(physDev->depth, physDev->color_shifts);
 
     wine_tsx11_lock();
     physDev->brush.pixmap = XCreatePixmap(gdi_display, root_window, width, height, depth);
 
-    /* Use XCopyArea when the physBitmap and brush.pixmap have the same depth. */
-    if(physBitmap->pixmap_depth == 1 || physDev->depth == physBitmap->pixmap_depth)
+    /* Use XCopyArea when the physBitmap and brush.pixmap have the same format. */
+    if(physBitmap->pixmap_depth == 1 || src_format->format == dst_format->format)
     {
         XCopyArea( gdi_display, physBitmap->pixmap, physDev->brush.pixmap,
                    get_bitmap_gc(physBitmap->pixmap_depth), 0, 0, width, height, 0, 0 );
     }
-    else /* We meed depth conversion */
-    {
-        const WineXRenderFormat *src_format = get_xrender_format_from_color_shifts(physBitmap->pixmap_depth, &physBitmap->pixmap_color_shifts);
-        const WineXRenderFormat *dst_format = get_xrender_format_from_color_shifts(physDev->depth, physDev->color_shifts);
-
+    else /* We need depth conversion */
+    {
         Picture src_pict, dst_pict;
         XRenderPictureAttributes pa;
         pa.subwindow_mode = IncludeInferiors;
@@ -2104,6 +2124,7 @@
     int height = visRectDst->bottom - visRectDst->top;
     int x_src = physDevSrc->dc_rect.left + visRectSrc->left;
     int y_src = physDevSrc->dc_rect.top + visRectSrc->top;
+    struct xrender_info *src_info = get_xrender_info(physDevSrc);
     const WineXRenderFormat *dst_format = get_xrender_format_from_color_shifts(physDevDst->depth, physDevDst->color_shifts);
     Picture src_pict=0, dst_pict=0, mask_pict=0;
 
@@ -2131,8 +2152,8 @@
     if((physDevDst->depth == 1) && (physDevSrc->depth > 1))
         return FALSE;
 
-    /* Just use traditional X copy when the depths match and we don't need stretching */
-    if((physDevSrc->depth == physDevDst->depth) && !stretch)
+    /* Just use traditional X copy when the formats match and we don't need stretching */
+    if((src_info->format->format == dst_format->format) && !stretch)
     {
         TRACE("Source and destination depth match and no stretching needed falling back to XCopyArea\n");
         wine_tsx11_lock();

Modified: vendor/wine/server/current/fd.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/server/current/fd.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/server/current/fd.c [iso-8859-1] (original)
+++ vendor/wine/server/current/fd.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -190,6 +190,7 @@
     unsigned int         access;      /* file access (FILE_READ_DATA etc.) */
     unsigned int         options;     /* file options (FILE_DELETE_ON_CLOSE, FILE_SYNCHRONOUS...) */
     unsigned int         sharing;     /* file sharing mode */
+    char                *unix_name;   /* unix file name */
     int                  unix_fd;     /* unix file descriptor */
     unsigned int         no_fd_status;/* status to return when unix_fd is -1 */
     unsigned int         signaled :1; /* is the fd signaled? */
@@ -1368,6 +1369,7 @@
 
     if (fd->completion) release_object( fd->completion );
     remove_fd_locks( fd );
+    free( fd->unix_name );
     list_remove( &fd->inode_entry );
     if (fd->poll_index != -1) remove_poll_user( fd, fd->poll_index );
     if (fd->inode)
@@ -1438,6 +1440,7 @@
     fd->options    = 0;
     fd->sharing    = 0;
     fd->unix_fd    = -1;
+    fd->unix_name  = NULL;
     fd->signaled   = 1;
     fd->fs_locks   = 1;
     fd->poll_index = -1;
@@ -1470,6 +1473,7 @@
     fd->access     = 0;
     fd->options    = options;
     fd->sharing    = 0;
+    fd->unix_name  = NULL;
     fd->unix_fd    = -1;
     fd->signaled   = 0;
     fd->fs_locks   = 0;
@@ -1576,6 +1580,9 @@
         else rw_mode = O_WRONLY;
     }
     else rw_mode = O_RDONLY;
+
+    if (!(fd->unix_name = mem_alloc( strlen(name) + 1 ))) goto error;
+    strcpy( fd->unix_name, name );
 
     if ((fd->unix_fd = open( name, rw_mode | (flags & ~O_TRUNC), *mode )) == -1)
     {
@@ -2003,6 +2010,24 @@
     if (root) release_object( root );
 }
 
+/* get the Unix name from a file handle */
+DECL_HANDLER(get_handle_unix_name)
+{
+    struct fd *fd;
+
+    if ((fd = get_handle_fd_obj( current->process, req->handle, 0 )))
+    {
+        if (fd->unix_name)
+        {
+            data_size_t name_len = strlen( fd->unix_name );
+            reply->name_len = name_len;
+            if (name_len <= get_reply_max_size()) set_reply_data( fd->unix_name, name_len );
+            else set_error( STATUS_BUFFER_OVERFLOW );
+        }
+        release_object( fd );
+    }
+}
+
 /* get a Unix fd to access a file */
 DECL_HANDLER(get_handle_fd)
 {

Modified: vendor/wine/server/current/protocol.def
URL: http://svn.reactos.org/svn/reactos/vendor/wine/server/current/protocol.def?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/server/current/protocol.def [iso-8859-1] (original)
+++ vendor/wine/server/current/protocol.def [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1003,6 +1003,15 @@
 @END
 
 
+/* Get the Unix name from a file handle */
+ at REQ(get_handle_unix_name)
+    obj_handle_t   handle;      /* file handle */
+ at REPLY
+    data_size_t    name_len;    /* unix name length */
+    VARARG(name,string);        /* unix name */
+ at END
+
+
 /* Get a Unix fd to access a file */
 @REQ(get_handle_fd)
     obj_handle_t handle;        /* handle to the file */

Modified: vendor/wine/server/current/request.h
URL: http://svn.reactos.org/svn/reactos/vendor/wine/server/current/request.h?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/server/current/request.h [iso-8859-1] (original)
+++ vendor/wine/server/current/request.h [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -148,6 +148,7 @@
 DECL_HANDLER(create_file);
 DECL_HANDLER(open_file_object);
 DECL_HANDLER(alloc_file_handle);
+DECL_HANDLER(get_handle_unix_name);
 DECL_HANDLER(get_handle_fd);
 DECL_HANDLER(flush_file);
 DECL_HANDLER(lock_file);
@@ -394,6 +395,7 @@
     (req_handler)req_create_file,
     (req_handler)req_open_file_object,
     (req_handler)req_alloc_file_handle,
+    (req_handler)req_get_handle_unix_name,
     (req_handler)req_get_handle_fd,
     (req_handler)req_flush_file,
     (req_handler)req_lock_file,
@@ -846,6 +848,9 @@
 C_ASSERT( FIELD_OFFSET(struct alloc_file_handle_request, fd) == 20 );
 C_ASSERT( FIELD_OFFSET(struct alloc_file_handle_reply, handle) == 8 );
 C_ASSERT( sizeof(struct alloc_file_handle_reply) == 16 );
+C_ASSERT( FIELD_OFFSET(struct get_handle_unix_name_request, handle) == 12 );
+C_ASSERT( FIELD_OFFSET(struct get_handle_unix_name_reply, name_len) == 8 );
+C_ASSERT( sizeof(struct get_handle_unix_name_reply) == 16 );
 C_ASSERT( FIELD_OFFSET(struct get_handle_fd_request, handle) == 12 );
 C_ASSERT( FIELD_OFFSET(struct get_handle_fd_reply, type) == 8 );
 C_ASSERT( FIELD_OFFSET(struct get_handle_fd_reply, removable) == 12 );

Modified: vendor/wine/server/current/trace.c
URL: http://svn.reactos.org/svn/reactos/vendor/wine/server/current/trace.c?rev=44151&r1=44150&r2=44151&view=diff
==============================================================================
--- vendor/wine/server/current/trace.c [iso-8859-1] (original)
+++ vendor/wine/server/current/trace.c [iso-8859-1] Sat Nov 14 12:11:27 2009
@@ -1457,6 +1457,17 @@
     fprintf( stderr, " handle=%04x", req->handle );
 }
 
+static void dump_get_handle_unix_name_request( const struct get_handle_unix_name_request *req )
+{
+    fprintf( stderr, " handle=%04x", req->handle );
+}
+
+static void dump_get_handle_unix_name_reply( const struct get_handle_unix_name_reply *req )
+{
+    fprintf( stderr, " name_len=%u", req->name_len );
+    dump_varargs_string( ", name=", cur_size );
+}
+
 static void dump_get_handle_fd_request( const struct get_handle_fd_request *req )
 {
     fprintf( stderr, " handle=%04x", req->handle );
@@ -3832,6 +3843,7 @@
     (dump_func)dump_create_file_request,
     (dump_func)dump_open_file_object_request,
     (dump_func)dump_alloc_file_handle_request,
+    (dump_func)dump_get_handle_unix_name_request,
     (dump_func)dump_get_handle_fd_request,
     (dump_func)dump_flush_file_request,
     (dump_func)dump_lock_file_request,
@@ -4075,6 +4087,7 @@
     (dump_func)dump_create_file_reply,
     (dump_func)dump_open_file_object_reply,
     (dump_func)dump_alloc_file_handle_reply,
+    (dump_func)dump_get_handle_unix_name_reply,
     (dump_func)dump_get_handle_fd_reply,
     (dump_func)dump_flush_file_reply,
     (dump_func)dump_lock_file_reply,
@@ -4318,6 +4331,7 @@
     "create_file",
     "open_file_object",
     "alloc_file_handle",
+    "get_handle_unix_name",
     "get_handle_fd",
     "flush_file",
     "lock_file",




More information about the Ros-diffs mailing list