Added patch to translate flags in LaunchINFSectionW.

This commit is contained in:
Sebastian Lackner 2015-08-30 22:55:44 +02:00
parent c5e1cdaffb
commit e9cda98df5
5 changed files with 105 additions and 1 deletions

View File

@ -39,7 +39,7 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [7]:**
**Bug fixes and features included in the next upcoming release [8]:**
* Add stub for winspool.SetPrinterW level 8 ([Wine Bug #24645](https://bugs.winehq.org/show_bug.cgi?id=24645))
* Allow non-nullterminated string as working directory in kernel32.create_startup_info
@ -48,6 +48,7 @@ Included bug fixes and improvements
* Fix failure to create anonymous file mapping after failed open_fd server call
* Map EXDEV error code to STATUS_NOT_SAME_DEVICE
* Return a dummy BIOS name in Win32_BIOS record
* Translate flags in LaunchINFSectionW
**Bug fixes and features in Wine Staging 1.7.50 [242]:**

1
debian/changelog vendored
View File

@ -15,6 +15,7 @@ wine-staging (1.7.51) UNRELEASED; urgency=low
* Added patch to allow non-nullterminated string as working directory in
kernel32.create_startup_info (fixes Wine Staging Bug #543).
* Added patch with stub for winspool.SetPrinterW level 8.
* Added patch to translate flags in LaunchINFSectionW.
* Removed patch to fix bug in wineserver debug_children inheritance (accepted
upstream).
* Removed patch to use helper function for NtWaitForMultipleObjects and

View File

@ -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

View File

@ -0,0 +1 @@
Fixes: Translate flags in LaunchINFSectionW

View File

@ -87,6 +87,7 @@ patch_enable_all ()
enable_Pipelight="$1"
enable_Staging="$1"
enable_advapi32_LsaLookupSids="$1"
enable_advpack_LaunchINFSection="$1"
enable_amstream_GetMultiMediaStream="$1"
enable_api_ms_win_crt_Stub_DLLs="$1"
enable_browseui_Progress_Dialog="$1"
@ -341,6 +342,9 @@ patch_enable ()
advapi32-LsaLookupSids)
enable_advapi32_LsaLookupSids="$2"
;;
advpack-LaunchINFSection)
enable_advpack_LaunchINFSection="$2"
;;
amstream-GetMultiMediaStream)
enable_amstream_GetMultiMediaStream="$2"
;;
@ -2163,6 +2167,18 @@ if test "$enable_advapi32_LsaLookupSids" -eq 1; then
) >> "$patchlist"
fi
# Patchset advpack-LaunchINFSection
# |
# | Modified files:
# | * dlls/advpack/install.c, dlls/advpack/tests/install.c, include/advpub.h
# |
if test "$enable_advpack_LaunchINFSection" -eq 1; then
patch_apply advpack-LaunchINFSection/0001-advpack-Translate-flags-in-LaunchINFSection.patch
(
echo '+ { "Michael Müller", "advpack: Translate flags in LaunchINFSection.", 1 },';
) >> "$patchlist"
fi
# Patchset amstream-GetMultiMediaStream
# |
# | This patchset fixes the following Wine bugs: