You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Added patch to translate flags in LaunchINFSectionW.
This commit is contained in:
@ -0,0 +1,85 @@
|
||||
From e81a06349b039e60a7d9fcaa6f38b874767e7543 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 30 Aug 2015 20:55:52 +0200
|
||||
Subject: advpack: Translate flags in LaunchINFSection.
|
||||
|
||||
---
|
||||
dlls/advpack/install.c | 6 +++++-
|
||||
dlls/advpack/tests/install.c | 11 ++++++++++-
|
||||
include/advpub.h | 4 ++++
|
||||
3 files changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/advpack/install.c b/dlls/advpack/install.c
|
||||
index f75eb01..dcd1dd7 100644
|
||||
--- a/dlls/advpack/install.c
|
||||
+++ b/dlls/advpack/install.c
|
||||
@@ -776,7 +776,11 @@ INT WINAPI LaunchINFSectionW(HWND hWnd, HINSTANCE hInst, LPWSTR cmdline, INT sho
|
||||
|
||||
str_flags = get_parameter(&cmdline_ptr, ',', TRUE);
|
||||
if (str_flags)
|
||||
- flags = atolW(str_flags);
|
||||
+ {
|
||||
+ DWORD inf_flags = atolW(str_flags);
|
||||
+ if (inf_flags & LIS_QUIET) flags |= RSC_FLAG_QUIET;
|
||||
+ if (inf_flags & LIS_NOGRPCONV) flags |= RSC_FLAG_NGCONV;
|
||||
+ }
|
||||
|
||||
ZeroMemory(&info, sizeof(ADVInfo));
|
||||
|
||||
diff --git a/dlls/advpack/tests/install.c b/dlls/advpack/tests/install.c
|
||||
index 875e7d4..c9cd720 100644
|
||||
--- a/dlls/advpack/tests/install.c
|
||||
+++ b/dlls/advpack/tests/install.c
|
||||
@@ -190,6 +190,8 @@ static void test_LaunchINFSection(void)
|
||||
HRESULT hr;
|
||||
char cmdline[MAX_PATH];
|
||||
static char file[] = "test.inf,DefaultInstall,4,0";
|
||||
+ static char file2[] = "one\\test.inf,DefaultInstall,4,0";
|
||||
+ static char file3[] = "test.inf,,1,0";
|
||||
|
||||
/* The 'No UI' flag seems to have no effect whatsoever on Windows.
|
||||
* So only do this test in interactive mode.
|
||||
@@ -207,10 +209,14 @@ static void test_LaunchINFSection(void)
|
||||
/* try a full path to the INF */
|
||||
lstrcpyA(cmdline, CURR_DIR);
|
||||
lstrcatA(cmdline, "\\");
|
||||
- lstrcatA(cmdline, "one\\test.inf,DefaultInstall,,4");
|
||||
+ lstrcatA(cmdline, file2);
|
||||
hr = pLaunchINFSection(NULL, NULL, cmdline, 0);
|
||||
ok(hr == 0, "Expected 0, got %d\n", hr);
|
||||
|
||||
+ /* try relative INF filename */
|
||||
+ hr = pLaunchINFSection(NULL, NULL, file2, 0);
|
||||
+ ok(hr == 0, "Expected 0, got %d\n", hr);
|
||||
+
|
||||
DeleteFileA("one\\test.inf");
|
||||
RemoveDirectoryA("one");
|
||||
|
||||
@@ -220,6 +226,9 @@ static void test_LaunchINFSection(void)
|
||||
hr = pLaunchINFSection(NULL, NULL, file, 0);
|
||||
ok(hr == 0, "Expected 0, got %d\n", hr);
|
||||
|
||||
+ hr = pLaunchINFSection(NULL, NULL, file3, 0);
|
||||
+ ok(hr == 0, "Expected 0, got %d\n", hr);
|
||||
+
|
||||
DeleteFileA("test.inf");
|
||||
}
|
||||
|
||||
diff --git a/include/advpub.h b/include/advpub.h
|
||||
index b213b1f..7823e0a 100644
|
||||
--- a/include/advpub.h
|
||||
+++ b/include/advpub.h
|
||||
@@ -135,6 +135,10 @@ DECL_WINELIB_TYPE_AW(LPCSTRTABLE)
|
||||
#define RSC_FLAG_DELAYREGISTEROCX 0x00000200
|
||||
#define RSC_FLAG_SETUPAPI 0x00000400
|
||||
|
||||
+/* Flags for LaunchINFSection */
|
||||
+#define LIS_QUIET 0x00000001
|
||||
+#define LIS_NOGRPCONV 0x00000002
|
||||
+
|
||||
/* Flags for DelNode */
|
||||
#define ADN_DEL_IF_EMPTY 0x00000001
|
||||
#define ADN_DONT_DEL_SUBDIRS 0x00000002
|
||||
--
|
||||
2.5.0
|
||||
|
1
patches/advpack-LaunchINFSection/definition
Normal file
1
patches/advpack-LaunchINFSection/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: Translate flags in LaunchINFSectionW
|
Reference in New Issue
Block a user