You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against 887a57fadd00b39b266b421fe1a04ab09e0d917d
This commit is contained in:
@@ -1,77 +0,0 @@
|
||||
From b4797a84f8cb931433b055c55030b0eb86320789 Mon Sep 17 00:00:00 2001
|
||||
From: Ken Thomases <ken@codeweavers.com>
|
||||
Date: Sat, 18 Oct 2014 22:25:25 +0200
|
||||
Subject: gdi32: Also accept "\\.\DISPLAY<n>" devices names with <n> other than
|
||||
1 as display devices.
|
||||
|
||||
---
|
||||
dlls/gdi32/driver.c | 32 ++++++++++++++++++++++++++++----
|
||||
1 file changed, 28 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
|
||||
index 4529562..9e4f6f4 100644
|
||||
--- a/dlls/gdi32/driver.c
|
||||
+++ b/dlls/gdi32/driver.c
|
||||
@@ -109,6 +109,32 @@ static const struct gdi_dc_funcs *get_display_driver(void)
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
+ * is_display_device
|
||||
+ */
|
||||
+static BOOL is_display_device( LPCWSTR name )
|
||||
+{
|
||||
+ static const WCHAR display_deviceW[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y'};
|
||||
+ const WCHAR *p = name;
|
||||
+
|
||||
+ if (strncmpiW( name, display_deviceW, sizeof(display_deviceW) / sizeof(WCHAR) ))
|
||||
+ return FALSE;
|
||||
+
|
||||
+ p += sizeof(display_deviceW) / sizeof(WCHAR);
|
||||
+
|
||||
+ if (!isdigitW( *p++ ))
|
||||
+ return FALSE;
|
||||
+
|
||||
+ for (; *p; p++)
|
||||
+ {
|
||||
+ if (!isdigitW( *p ))
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/**********************************************************************
|
||||
* DRIVER_load_driver
|
||||
*/
|
||||
const struct gdi_dc_funcs *DRIVER_load_driver( LPCWSTR name )
|
||||
@@ -116,10 +142,9 @@ const struct gdi_dc_funcs *DRIVER_load_driver( LPCWSTR name )
|
||||
HMODULE module;
|
||||
struct graphics_driver *driver, *new_driver;
|
||||
static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 };
|
||||
- static const WCHAR display1W[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y','1',0};
|
||||
|
||||
/* display driver is a special case */
|
||||
- if (!strcmpiW( name, displayW ) || !strcmpiW( name, display1W )) return get_display_driver();
|
||||
+ if (!strcmpiW( name, displayW ) || is_display_device( name )) return get_display_driver();
|
||||
|
||||
if ((module = GetModuleHandleW( name )))
|
||||
{
|
||||
@@ -774,13 +799,12 @@ BOOL DRIVER_GetDriverName( LPCWSTR device, LPWSTR driver, DWORD size )
|
||||
{
|
||||
static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 };
|
||||
static const WCHAR devicesW[] = { 'd','e','v','i','c','e','s',0 };
|
||||
- static const WCHAR display1W[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y','1',0};
|
||||
static const WCHAR empty_strW[] = { 0 };
|
||||
WCHAR *p;
|
||||
|
||||
/* display is a special case */
|
||||
if (!strcmpiW( device, displayW ) ||
|
||||
- !strcmpiW( device, display1W ))
|
||||
+ is_display_device( device ))
|
||||
{
|
||||
lstrcpynW( driver, displayW, size );
|
||||
return TRUE;
|
||||
--
|
||||
1.9.1
|
||||
|
Reference in New Issue
Block a user