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
Compare commits
40 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8937409359 | ||
|
0a970828aa | ||
|
dc27f103e5 | ||
|
d1bde95011 | ||
|
90d6184697 | ||
|
d10f51a658 | ||
|
bad4d30c2c | ||
|
3a1f2a42bb | ||
|
3aca66f24e | ||
|
32c64aa429 | ||
|
ffc4a7a5a0 | ||
|
13c3e61937 | ||
|
c5281120df | ||
|
18941e7959 | ||
|
8581775098 | ||
|
f912827a38 | ||
|
d269579b4b | ||
|
cc4bced66e | ||
|
ab806dce36 | ||
|
2f85e74399 | ||
|
d007ef33ee | ||
|
c3db92d75d | ||
|
d8881486da | ||
|
8c90eb42eb | ||
|
da453ddf66 | ||
|
6c3797b3e8 | ||
|
3d15623eaf | ||
|
bf51996097 | ||
|
8a5220955b | ||
|
5088fc67ba | ||
|
a16b6b9c1e | ||
|
d935a41e61 | ||
|
31acabe792 | ||
|
1a2b47b084 | ||
|
2e9f238732 | ||
|
cf32a7092b | ||
|
4303e3ee3b | ||
|
49ed7ae4a0 | ||
|
eff142bc57 | ||
|
bd2608b12c |
1
.github/workflows/macOS.yml
vendored
1
.github/workflows/macOS.yml
vendored
@@ -14,7 +14,6 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew update
|
||||
brew install --cask xquartz
|
||||
brew install bison \
|
||||
gphoto2 \
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 92914d4648be5dd7ee62b35d3ca2fc7376d0dbd0 Mon Sep 17 00:00:00 2001
|
||||
From 4edf58f26172ec7f931eab57d14aca564d8b58e3 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 22 Mar 2016 21:54:26 +0100
|
||||
Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
|
||||
@@ -13,10 +13,10 @@ Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
|
||||
6 files changed, 12 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/d2d1/bitmap.c b/dlls/d2d1/bitmap.c
|
||||
index 971e3c7ff6b..fcd96eb6374 100644
|
||||
index 1cba26f5ca4..df88fb70469 100644
|
||||
--- a/dlls/d2d1/bitmap.c
|
||||
+++ b/dlls/d2d1/bitmap.c
|
||||
@@ -646,5 +646,5 @@ struct d2d_bitmap *unsafe_impl_from_ID2D1Bitmap(ID2D1Bitmap *iface)
|
||||
@@ -762,5 +762,5 @@ struct d2d_bitmap *unsafe_impl_from_ID2D1Bitmap(ID2D1Bitmap *iface)
|
||||
if (!iface)
|
||||
return NULL;
|
||||
assert(iface->lpVtbl == (ID2D1BitmapVtbl *)&d2d_bitmap_vtbl);
|
||||
@@ -24,7 +24,7 @@ index 971e3c7ff6b..fcd96eb6374 100644
|
||||
+ return CONTAINING_RECORD((ID2D1Bitmap1*)iface, struct d2d_bitmap, ID2D1Bitmap1_iface);
|
||||
}
|
||||
diff --git a/dlls/d2d1/brush.c b/dlls/d2d1/brush.c
|
||||
index b9a673fe54c..c5a52db6b01 100644
|
||||
index 98aa889aa5f..52fc0a9854a 100644
|
||||
--- a/dlls/d2d1/brush.c
|
||||
+++ b/dlls/d2d1/brush.c
|
||||
@@ -259,7 +259,7 @@ static void d2d_brush_init(struct d2d_brush *brush, ID2D1Factory *factory,
|
||||
@@ -64,7 +64,7 @@ index b9a673fe54c..c5a52db6b01 100644
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d2d_bitmap_brush_QueryInterface(ID2D1BitmapBrush1 *iface,
|
||||
diff --git a/dlls/d2d1/dc_render_target.c b/dlls/d2d1/dc_render_target.c
|
||||
index e7e0fa57ed7..1166ae204c2 100644
|
||||
index 30eafe361d1..0a38aa8613a 100644
|
||||
--- a/dlls/d2d1/dc_render_target.c
|
||||
+++ b/dlls/d2d1/dc_render_target.c
|
||||
@@ -23,7 +23,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d2d);
|
||||
@@ -77,10 +77,10 @@ index e7e0fa57ed7..1166ae204c2 100644
|
||||
|
||||
static HRESULT d2d_dc_render_target_present(IUnknown *outer_unknown)
|
||||
diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c
|
||||
index e97bae0b54a..661387b570b 100644
|
||||
index d6ee91de005..781e9aa8511 100644
|
||||
--- a/dlls/d2d1/geometry.c
|
||||
+++ b/dlls/d2d1/geometry.c
|
||||
@@ -3356,7 +3356,7 @@ static const struct ID2D1GeometrySinkVtbl d2d_geometry_sink_vtbl =
|
||||
@@ -3360,7 +3360,7 @@ static const struct ID2D1GeometrySinkVtbl d2d_geometry_sink_vtbl =
|
||||
|
||||
static inline struct d2d_geometry *impl_from_ID2D1PathGeometry1(ID2D1PathGeometry1 *iface)
|
||||
{
|
||||
@@ -89,7 +89,7 @@ index e97bae0b54a..661387b570b 100644
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d2d_path_geometry_QueryInterface(ID2D1PathGeometry1 *iface, REFIID iid, void **out)
|
||||
@@ -4229,7 +4229,7 @@ fail:
|
||||
@@ -4233,7 +4233,7 @@ fail:
|
||||
|
||||
static inline struct d2d_geometry *impl_from_ID2D1RectangleGeometry(ID2D1RectangleGeometry *iface)
|
||||
{
|
||||
@@ -98,7 +98,7 @@ index e97bae0b54a..661387b570b 100644
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d2d_rectangle_geometry_QueryInterface(ID2D1RectangleGeometry *iface,
|
||||
@@ -4941,7 +4941,7 @@ fail:
|
||||
@@ -4945,7 +4945,7 @@ fail:
|
||||
|
||||
static inline struct d2d_geometry *impl_from_ID2D1TransformedGeometry(ID2D1TransformedGeometry *iface)
|
||||
{
|
||||
@@ -107,7 +107,7 @@ index e97bae0b54a..661387b570b 100644
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d2d_transformed_geometry_QueryInterface(ID2D1TransformedGeometry *iface,
|
||||
@@ -5225,7 +5225,7 @@ void d2d_transformed_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *
|
||||
@@ -5229,7 +5229,7 @@ void d2d_transformed_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *
|
||||
|
||||
static inline struct d2d_geometry *impl_from_ID2D1GeometryGroup(ID2D1GeometryGroup *iface)
|
||||
{
|
||||
@@ -117,7 +117,7 @@ index e97bae0b54a..661387b570b 100644
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d2d_geometry_group_QueryInterface(ID2D1GeometryGroup *iface,
|
||||
diff --git a/dlls/d2d1/hwnd_render_target.c b/dlls/d2d1/hwnd_render_target.c
|
||||
index 4ce220bf433..32eeaf02c9f 100644
|
||||
index 4d3fe43a1b3..ccb7067fabf 100644
|
||||
--- a/dlls/d2d1/hwnd_render_target.c
|
||||
+++ b/dlls/d2d1/hwnd_render_target.c
|
||||
@@ -23,7 +23,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d2d);
|
||||
@@ -130,16 +130,16 @@ index 4ce220bf433..32eeaf02c9f 100644
|
||||
|
||||
static HRESULT d2d_hwnd_render_target_present(IUnknown *outer_unknown)
|
||||
diff --git a/dlls/d2d1/state_block.c b/dlls/d2d1/state_block.c
|
||||
index 114a3efd883..4f662be4549 100644
|
||||
index 770c165fd90..a3b48095436 100644
|
||||
--- a/dlls/d2d1/state_block.c
|
||||
+++ b/dlls/d2d1/state_block.c
|
||||
@@ -187,5 +187,5 @@ struct d2d_state_block *unsafe_impl_from_ID2D1DrawingStateBlock(ID2D1DrawingStat
|
||||
if (!iface)
|
||||
@@ -191,5 +191,5 @@ struct d2d_state_block *unsafe_impl_from_ID2D1DrawingStateBlock(ID2D1DrawingStat
|
||||
WARN("Unexpected state block vtbl %p.\n", iface->lpVtbl);
|
||||
return NULL;
|
||||
assert(iface->lpVtbl == (ID2D1DrawingStateBlockVtbl *)&d2d_state_block_vtbl);
|
||||
}
|
||||
- return CONTAINING_RECORD(iface, struct d2d_state_block, ID2D1DrawingStateBlock1_iface);
|
||||
+ return CONTAINING_RECORD((ID2D1DrawingStateBlock1*)iface, struct d2d_state_block, ID2D1DrawingStateBlock1_iface);
|
||||
}
|
||||
--
|
||||
2.35.1
|
||||
2.38.1
|
||||
|
||||
|
@@ -67,7 +67,7 @@ index cacb7ea7751..19a807c1624 100644
|
||||
- Note: Launching internal wine processes cannot specify a full path to exe */
|
||||
- status = CreateProcessW(thisDir,
|
||||
- command, NULL, NULL, TRUE, 0, NULL, NULL, &st, &pe);
|
||||
- heap_free(st.lpReserved2);
|
||||
- free(st.lpReserved2);
|
||||
- if ((opt_c || opt_k) && !opt_s && !status
|
||||
- && GetLastError()==ERROR_FILE_NOT_FOUND && command[0]=='\"') {
|
||||
- /* strip first and last quote WCHARacters and try again */
|
||||
@@ -143,7 +143,7 @@ index cacb7ea7751..19a807c1624 100644
|
||||
+ WINE_TRACE("Launching via CreateProcess\n");
|
||||
+ status = CreateProcessW(thisDir,
|
||||
+ command, NULL, NULL, TRUE, 0, NULL, NULL, &st, &pe);
|
||||
+ heap_free(st.lpReserved2);
|
||||
+ free(st.lpReserved2);
|
||||
+ if ((opt_c || opt_k) && !opt_s && !status
|
||||
+ && GetLastError()==ERROR_FILE_NOT_FOUND && command[0]=='\"') {
|
||||
+ /* strip first and last quote WCHARacters and try again */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From c88a1acf9ac625cb2a7cbfc90ac3bb2d426889a0 Mon Sep 17 00:00:00 2001
|
||||
From 7362e037e8160046fffcf062a663ea8e7ac45290 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Tue, 12 Nov 2019 18:13:20 +0800
|
||||
Subject: [PATCH] comctl32: Bump version to 6.0.
|
||||
@@ -14,10 +14,10 @@ Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/comctl32/comctl32.h b/dlls/comctl32/comctl32.h
|
||||
index 66b341ae5ad..1af9baea7ee 100644
|
||||
index 7dfdf089eb1..17ec7eeab40 100644
|
||||
--- a/dlls/comctl32/comctl32.h
|
||||
+++ b/dlls/comctl32/comctl32.h
|
||||
@@ -193,7 +193,7 @@ BOOL Str_SetPtrAtoW (LPWSTR *lppDest, LPCSTR lpSrc) DECLSPEC_HIDDEN;
|
||||
@@ -194,7 +194,7 @@ BOOL Str_SetPtrAtoW (LPWSTR *lppDest, LPCSTR lpSrc) DECLSPEC_HIDDEN;
|
||||
BOOL Str_SetPtrWtoA (LPSTR *lppDest, LPCWSTR lpSrc) DECLSPEC_HIDDEN;
|
||||
BOOL imagelist_has_alpha(HIMAGELIST, UINT) DECLSPEC_HIDDEN;
|
||||
|
||||
@@ -40,12 +40,12 @@ index c9aa1ba6253..be6e2425193 100644
|
||||
#define WINE_PRODUCTVERSION_STR WINE_FILEVERSION_STR
|
||||
|
||||
diff --git a/include/commctrl.h b/include/commctrl.h
|
||||
index dfd2f4a37d2..0784478ce14 100644
|
||||
index a54de13d8b2..e0b0e22d4dc 100644
|
||||
--- a/include/commctrl.h
|
||||
+++ b/include/commctrl.h
|
||||
@@ -51,7 +51,7 @@ enum _LI_METRIC
|
||||
HRESULT WINAPI LoadIconWithScaleDown(HINSTANCE, const WCHAR *, int, int, HICON *);
|
||||
HRESULT WINAPI LoadIconMetric(HINSTANCE, const WCHAR *, int, HICON *);
|
||||
@@ -59,7 +59,7 @@ enum _LI_METRIC
|
||||
WINCOMMCTRLAPI HRESULT WINAPI LoadIconWithScaleDown(HINSTANCE, const WCHAR *, int, int, HICON *);
|
||||
WINCOMMCTRLAPI HRESULT WINAPI LoadIconMetric(HINSTANCE, const WCHAR *, int, HICON *);
|
||||
|
||||
-#define COMCTL32_VERSION 5 /* dll version */
|
||||
+#define COMCTL32_VERSION 6 /* dll version */
|
||||
@@ -53,5 +53,5 @@ index dfd2f4a37d2..0784478ce14 100644
|
||||
#define ICC_LISTVIEW_CLASSES 0x00000001 /* listview, header */
|
||||
#define ICC_TREEVIEW_CLASSES 0x00000002 /* treeview, tooltips */
|
||||
--
|
||||
2.25.1
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,16 +1,16 @@
|
||||
From 33e4e3219056f09ed8b406d154b87bafedb1ebe0 Mon Sep 17 00:00:00 2001
|
||||
From 7ba5e4a89be15deeb704078ad8321c7cc5aa02eb Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Mon, 22 Jul 2013 21:51:20 +0200
|
||||
Subject: d3dx9_36: Implement ID3DXSkinInfoImpl_UpdateSkinnedMesh.
|
||||
Subject: [PATCH] d3dx9_36: Implement ID3DXSkinInfoImpl_UpdateSkinnedMesh.
|
||||
|
||||
This patch fixes last problem of bug 32572.
|
||||
---
|
||||
dlls/d3dx9_36/skin.c | 86 ++++++++++++++++++++++++++++++++++++++++++++--
|
||||
dlls/d3dx9_36/tests/mesh.c | 83 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/d3dx9_36/skin.c | 86 ++++++++++++++++++++++++++++++++++++--
|
||||
dlls/d3dx9_36/tests/mesh.c | 83 ++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 166 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/skin.c b/dlls/d3dx9_36/skin.c
|
||||
index aa5acf2..bd7e581 100644
|
||||
index b81fb6863d3..75ee6d44a95 100644
|
||||
--- a/dlls/d3dx9_36/skin.c
|
||||
+++ b/dlls/d3dx9_36/skin.c
|
||||
@@ -2,6 +2,7 @@
|
||||
@@ -21,7 +21,7 @@ index aa5acf2..bd7e581 100644
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -375,10 +376,89 @@ static HRESULT WINAPI d3dx9_skin_info_GetDeclaration(ID3DXSkinInfo *iface,
|
||||
@@ -399,10 +400,89 @@ static HRESULT WINAPI d3dx9_skin_info_GetDeclaration(ID3DXSkinInfo *iface,
|
||||
static HRESULT WINAPI d3dx9_skin_info_UpdateSkinnedMesh(ID3DXSkinInfo *iface, const D3DXMATRIX *bone_transforms,
|
||||
const D3DXMATRIX *bone_inv_transpose_transforms, const void *src_vertices, void *dst_vertices)
|
||||
{
|
||||
@@ -115,11 +115,11 @@ index aa5acf2..bd7e581 100644
|
||||
|
||||
static HRESULT WINAPI d3dx9_skin_info_ConvertToBlendedMesh(ID3DXSkinInfo *iface, ID3DXMesh *mesh_in,
|
||||
diff --git a/dlls/d3dx9_36/tests/mesh.c b/dlls/d3dx9_36/tests/mesh.c
|
||||
index 17c5d9c..e255eac 100644
|
||||
index 1daec158a5f..64b02276843 100644
|
||||
--- a/dlls/d3dx9_36/tests/mesh.c
|
||||
+++ b/dlls/d3dx9_36/tests/mesh.c
|
||||
@@ -5152,6 +5152,88 @@ static void test_create_skin_info(void)
|
||||
ok(hr == D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, got %#x\n", hr);
|
||||
@@ -5241,6 +5241,88 @@ static void test_create_skin_info(void)
|
||||
ok(hr == D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, got %#lx\n", hr);
|
||||
}
|
||||
|
||||
+static void test_update_skinned_mesh(void)
|
||||
@@ -207,7 +207,7 @@ index 17c5d9c..e255eac 100644
|
||||
static void test_convert_adjacency_to_point_reps(void)
|
||||
{
|
||||
HRESULT hr;
|
||||
@@ -10468,6 +10550,7 @@ START_TEST(mesh)
|
||||
@@ -11484,6 +11566,7 @@ START_TEST(mesh)
|
||||
D3DXGenerateAdjacencyTest();
|
||||
test_update_semantics();
|
||||
test_create_skin_info();
|
||||
@@ -216,5 +216,5 @@ index 17c5d9c..e255eac 100644
|
||||
test_convert_point_reps_to_adjacency();
|
||||
test_weld_vertices();
|
||||
--
|
||||
2.1.2
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From f2401390227b40c68bb97983fc028d5060a70e8c Mon Sep 17 00:00:00 2001
|
||||
From 3069c254173b551cde229830af857fc5e3abd911 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 13 Jun 2018 10:44:49 -0500
|
||||
Subject: [PATCH] configure: Check for sys/eventfd.h, ppoll(), and shm_open().
|
||||
@@ -12,18 +12,18 @@ Although perhaps we shouldn't since the server doesn't do this.
|
||||
2 files changed, 17 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9683798b57b..b4465a98794 100644
|
||||
index f4e454ae217..de28e5228e9 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -478,6 +478,7 @@ AC_CHECK_HEADERS(\
|
||||
@@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\
|
||||
sys/cdio.h \
|
||||
sys/epoll.h \
|
||||
sys/event.h \
|
||||
+ sys/eventfd.h \
|
||||
sys/extattr.h \
|
||||
sys/filio.h \
|
||||
sys/ipc.h \
|
||||
sys/link.h \
|
||||
@@ -1991,6 +1992,7 @@ AC_CHECK_FUNCS(\
|
||||
@@ -2044,6 +2045,7 @@ AC_CHECK_FUNCS(\
|
||||
port_create \
|
||||
posix_fadvise \
|
||||
posix_fallocate \
|
||||
@@ -31,7 +31,7 @@ index 9683798b57b..b4465a98794 100644
|
||||
prctl \
|
||||
proc_pidinfo \
|
||||
sched_yield \
|
||||
@@ -2033,6 +2035,12 @@ case $host_os in
|
||||
@@ -2085,6 +2087,12 @@ case $host_os in
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -41,14 +41,14 @@ index 9683798b57b..b4465a98794 100644
|
||||
+ test "$ac_res" = "none required" || AC_SUBST(RT_LIBS,"$ac_res")])
|
||||
+LIBS=$ac_save_LIBS
|
||||
+
|
||||
dnl **** Check for OpenLDAP ***
|
||||
if test "x$with_ldap" != "xno"
|
||||
then
|
||||
AC_CACHE_CHECK([for sched_setaffinity],wine_cv_have_sched_setaffinity,
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM(
|
||||
[[#include <sched.h>]], [[sched_setaffinity(0, 0, 0);]])],[wine_cv_have_sched_setaffinity=yes],[wine_cv_have_sched_setaffinity=no]))
|
||||
diff --git a/include/config.h.in b/include/config.h.in
|
||||
index 197c3b97f09..13f822cb36c 100644
|
||||
index 509dd2869bf..d6b19f96a9c 100644
|
||||
--- a/include/config.h.in
|
||||
+++ b/include/config.h.in
|
||||
@@ -362,6 +362,9 @@
|
||||
@@ -335,6 +335,9 @@
|
||||
/* Define to 1 if you have the `posix_fallocate' function. */
|
||||
#undef HAVE_POSIX_FALLOCATE
|
||||
|
||||
@@ -58,7 +58,7 @@ index 197c3b97f09..13f822cb36c 100644
|
||||
/* Define to 1 if you have the `prctl' function. */
|
||||
#undef HAVE_PRCTL
|
||||
|
||||
@@ -434,6 +437,9 @@
|
||||
@@ -404,6 +407,9 @@
|
||||
/* Define to 1 if `interface_id' is a member of `sg_io_hdr_t'. */
|
||||
#undef HAVE_SG_IO_HDR_T_INTERFACE_ID
|
||||
|
||||
@@ -68,7 +68,7 @@ index 197c3b97f09..13f822cb36c 100644
|
||||
/* Define if sigaddset is supported */
|
||||
#undef HAVE_SIGADDSET
|
||||
|
||||
@@ -574,6 +580,9 @@
|
||||
@@ -553,6 +559,9 @@
|
||||
/* Define to 1 if you have the <sys/epoll.h> header file. */
|
||||
#undef HAVE_SYS_EPOLL_H
|
||||
|
||||
@@ -79,5 +79,5 @@ index 197c3b97f09..13f822cb36c 100644
|
||||
#undef HAVE_SYS_EVENT_H
|
||||
|
||||
--
|
||||
2.33.0
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 846f2603e9d2a3a3b5a56b0e1140bb49a95053a6 Mon Sep 17 00:00:00 2001
|
||||
From ec18233558b62aa736b5ecf20d2f7487e2823286 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Thu, 7 Jun 2018 20:09:59 -0500
|
||||
Subject: [PATCH] server: Create server objects for eventfd-based
|
||||
@@ -15,7 +15,7 @@ Subject: [PATCH] server: Create server objects for eventfd-based
|
||||
create mode 100644 server/esync.h
|
||||
|
||||
diff --git a/server/Makefile.in b/server/Makefile.in
|
||||
index c81a2112632..da20dff9f56 100644
|
||||
index 3b9446fe224..776faec63e4 100644
|
||||
--- a/server/Makefile.in
|
||||
+++ b/server/Makefile.in
|
||||
@@ -11,6 +11,7 @@ C_SRCS = \
|
||||
@@ -28,7 +28,7 @@ index c81a2112632..da20dff9f56 100644
|
||||
file.c \
|
||||
diff --git a/server/esync.c b/server/esync.c
|
||||
new file mode 100644
|
||||
index 00000000000..b9dbfa322bc
|
||||
index 00000000000..35b4833fd4c
|
||||
--- /dev/null
|
||||
+++ b/server/esync.c
|
||||
@@ -0,0 +1,318 @@
|
||||
@@ -158,7 +158,7 @@ index 00000000000..b9dbfa322bc
|
||||
+ NULL, /* satisfied */
|
||||
+ no_signal, /* signal */
|
||||
+ no_get_fd, /* get_fd */
|
||||
+ no_map_access, /* map_access */
|
||||
+ default_map_access, /* map_access */
|
||||
+ default_get_sd, /* get_sd */
|
||||
+ default_set_sd, /* set_sd */
|
||||
+ default_get_full_name, /* get_full_name */
|
||||
@@ -403,10 +403,10 @@ index a134d811d82..3436b0871b4 100644
|
||||
set_current_time();
|
||||
init_scheduler();
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 6bfcda213a4..6b0e0e6f6e4 100644
|
||||
index 99df502e398..9e15ada5bd0 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3738,7 +3738,6 @@ struct handle_info
|
||||
@@ -3777,7 +3777,6 @@ struct handle_info
|
||||
obj_handle_t handle; /* process handle */
|
||||
@END
|
||||
|
||||
@@ -414,7 +414,7 @@ index 6bfcda213a4..6b0e0e6f6e4 100644
|
||||
/* Iterate thread list for process */
|
||||
@REQ(get_next_thread)
|
||||
obj_handle_t process; /* process handle */
|
||||
@@ -3749,3 +3748,27 @@ struct handle_info
|
||||
@@ -3788,3 +3787,27 @@ struct handle_info
|
||||
@REPLY
|
||||
obj_handle_t handle; /* next thread handle */
|
||||
@END
|
||||
@@ -443,5 +443,5 @@ index 6bfcda213a4..6b0e0e6f6e4 100644
|
||||
+ unsigned int shm_idx;
|
||||
+@END
|
||||
--
|
||||
2.35.1
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From c204c9ed2a8504868c3cbf487e7a29c4e7254d3f Mon Sep 17 00:00:00 2001
|
||||
From 271f43a1fafb19e1404b05ec597b504ecad74784 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <zfigura@codeweavers.com>
|
||||
Date: Mon, 6 Jul 2020 12:09:22 -0500
|
||||
Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
|
||||
@@ -16,10 +16,10 @@ Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
|
||||
create mode 100644 dlls/ntdll/unix/esync.h
|
||||
|
||||
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
|
||||
index 185bc563e68..d7c757cab32 100644
|
||||
index 07688a5fcf6..4e490c475a2 100644
|
||||
--- a/dlls/ntdll/Makefile.in
|
||||
+++ b/dlls/ntdll/Makefile.in
|
||||
@@ -46,6 +46,7 @@ C_SRCS = \
|
||||
@@ -47,6 +47,7 @@ C_SRCS = \
|
||||
unix/cdrom.c \
|
||||
unix/debug.c \
|
||||
unix/env.c \
|
||||
@@ -346,7 +346,7 @@ index 00000000000..a50a755149a
|
||||
+
|
||||
+extern int receive_fd( obj_handle_t *handle ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index 10884a7a673..28cc48e04bf 100644
|
||||
index 35f2e5f986f..4d95c29ab24 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -89,6 +89,7 @@
|
||||
@@ -357,8 +357,8 @@ index 10884a7a673..28cc48e04bf 100644
|
||||
#include "wine/list.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
@@ -2082,6 +2083,7 @@ static void start_main_thread(void)
|
||||
signal_init_thread( teb );
|
||||
@@ -2188,6 +2189,7 @@ static void start_main_thread(void)
|
||||
signal_alloc_thread( teb );
|
||||
dbg_init();
|
||||
startup_info_size = server_init_process();
|
||||
+ esync_init();
|
||||
@@ -366,7 +366,7 @@ index 10884a7a673..28cc48e04bf 100644
|
||||
init_cpu_info();
|
||||
init_files();
|
||||
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
|
||||
index 6a3224d8385..de65f936a59 100644
|
||||
index b7d8733f2bc..8cd5f0474e6 100644
|
||||
--- a/dlls/ntdll/unix/server.c
|
||||
+++ b/dlls/ntdll/unix/server.c
|
||||
@@ -106,7 +106,7 @@ sigset_t server_block_set; /* signals to block during server calls */
|
||||
@@ -378,7 +378,7 @@ index 6a3224d8385..de65f936a59 100644
|
||||
|
||||
/* atomically exchange a 64-bit value */
|
||||
static inline LONG64 interlocked_xchg64( LONG64 *dest, LONG64 val )
|
||||
@@ -803,7 +803,7 @@ void wine_server_send_fd( int fd )
|
||||
@@ -834,7 +834,7 @@ void wine_server_send_fd( int fd )
|
||||
*
|
||||
* Receive a file descriptor passed from the server.
|
||||
*/
|
||||
@@ -388,7 +388,7 @@ index 6a3224d8385..de65f936a59 100644
|
||||
struct iovec vec;
|
||||
struct msghdr msghdr;
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index 442243d8bcf..72cbf92f93c 100644
|
||||
index 9112572c67d..c5f30428f79 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -64,6 +64,7 @@
|
||||
@@ -399,7 +399,7 @@ index 442243d8bcf..72cbf92f93c 100644
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(sync);
|
||||
|
||||
@@ -262,6 +263,9 @@ NTSTATUS WINAPI NtCreateSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJ
|
||||
@@ -273,6 +274,9 @@ NTSTATUS WINAPI NtCreateSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJ
|
||||
if (max <= 0 || initial < 0 || initial > max) return STATUS_INVALID_PARAMETER;
|
||||
if ((ret = alloc_object_attributes( attr, &objattr, &len ))) return ret;
|
||||
|
||||
@@ -422,5 +422,5 @@ index b9dbfa322bc..99e57eca44c 100644
|
||||
int do_esync(void)
|
||||
{
|
||||
--
|
||||
2.34.1
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 4c255f91363e09892de43bf5f3b991ef5ccce3b2 Mon Sep 17 00:00:00 2001
|
||||
From 06faa163af3dd5fa6e4794bf244c662533a88b69 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <zfigura@codeweavers.com>
|
||||
Date: Mon, 6 Jul 2020 12:16:34 -0500
|
||||
Subject: [PATCH] ntdll: Implement NtReleaseSemaphore().
|
||||
@@ -90,12 +90,12 @@ index a50a755149a..09838e95535 100644
|
||||
|
||||
/* We have to synchronize on the fd cache mutex so that our calls to receive_fd
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index 72cbf92f93c..db992f3a9ad 100644
|
||||
index fff4970549b..fbd28292524 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -348,6 +348,9 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, ULONG *previous
|
||||
@@ -359,6 +359,9 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, ULONG *previous
|
||||
{
|
||||
NTSTATUS ret;
|
||||
unsigned int ret;
|
||||
|
||||
+ if (do_esync())
|
||||
+ return esync_release_semaphore( handle, count, previous );
|
||||
@@ -104,5 +104,5 @@ index 72cbf92f93c..db992f3a9ad 100644
|
||||
{
|
||||
req->handle = wine_server_obj_handle( handle );
|
||||
--
|
||||
2.33.0
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From bb4f401e45ff4017600e8037ceb69456c2c0171d Mon Sep 17 00:00:00 2001
|
||||
From ff044319027197bb9a1f20a19f01d8c299835818 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <zfigura@codeweavers.com>
|
||||
Date: Mon, 6 Jul 2020 14:46:24 -0500
|
||||
Subject: [PATCH] ntdll: Implement NtSetEvent().
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtSetEvent().
|
||||
3 files changed, 20 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
|
||||
index e440e9baa4a..b8fb27edf38 100644
|
||||
index 059d7fd9ca6..410cfd3c2ce 100644
|
||||
--- a/dlls/ntdll/unix/esync.c
|
||||
+++ b/dlls/ntdll/unix/esync.c
|
||||
@@ -316,6 +316,21 @@ NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
|
||||
@@ -314,6 +314,21 @@ NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
|
||||
return create_esync( type, handle, access, attr, initial, 0 );
|
||||
}
|
||||
|
||||
@@ -48,15 +48,15 @@ index d9c7df967f8..b585af047ee 100644
|
||||
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
|
||||
BOOLEAN alertable, const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index f3ced2d63b6..686255d4d99 100644
|
||||
index 7be736927b2..8e793941711 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -429,8 +429,12 @@ NTSTATUS WINAPI NtOpenEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_AT
|
||||
@@ -440,8 +440,12 @@ NTSTATUS WINAPI NtOpenEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_AT
|
||||
*/
|
||||
NTSTATUS WINAPI NtSetEvent( HANDLE handle, LONG *prev_state )
|
||||
{
|
||||
+ /* This comment is a dummy to make sure this patch applies in the right place. */
|
||||
NTSTATUS ret;
|
||||
unsigned int ret;
|
||||
|
||||
+ if (do_esync())
|
||||
+ return esync_set_event( handle );
|
||||
@@ -65,5 +65,5 @@ index f3ced2d63b6..686255d4d99 100644
|
||||
{
|
||||
req->handle = wine_server_obj_handle( handle );
|
||||
--
|
||||
2.29.2
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 68e3e5a72ce9776371df909163ac40cb2a2aa887 Mon Sep 17 00:00:00 2001
|
||||
From c1c004fcfb9d38086fd682e64aca7fd6aaad4cc9 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <zfigura@codeweavers.com>
|
||||
Date: Mon, 6 Jul 2020 14:51:21 -0500
|
||||
Subject: [PATCH] ntdll: Implement NtResetEvent().
|
||||
@@ -6,14 +6,14 @@ Subject: [PATCH] ntdll: Implement NtResetEvent().
|
||||
---
|
||||
dlls/ntdll/unix/esync.c | 15 +++++++++++++++
|
||||
dlls/ntdll/unix/esync.h | 1 +
|
||||
dlls/ntdll/unix/sync.c | 4 ++++
|
||||
3 files changed, 20 insertions(+)
|
||||
dlls/ntdll/unix/sync.c | 5 +++++
|
||||
3 files changed, 21 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
|
||||
index b8fb27edf38..97d468b2449 100644
|
||||
index 410cfd3c2ce..80eb3773ee4 100644
|
||||
--- a/dlls/ntdll/unix/esync.c
|
||||
+++ b/dlls/ntdll/unix/esync.c
|
||||
@@ -331,6 +331,21 @@ NTSTATUS esync_set_event( HANDLE handle )
|
||||
@@ -329,6 +329,21 @@ NTSTATUS esync_set_event( HANDLE handle )
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -48,22 +48,23 @@ index b585af047ee..8480a213b2a 100644
|
||||
|
||||
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index bb36254acdc..b0f53d4677b 100644
|
||||
index 8e793941711..f57a825872b 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -507,8 +507,12 @@ NTSTATUS WINAPI NtSetEvent( HANDLE handle, LONG *prev_state )
|
||||
@@ -463,8 +463,13 @@ NTSTATUS WINAPI NtSetEvent( HANDLE handle, LONG *prev_state )
|
||||
*/
|
||||
NTSTATUS WINAPI NtResetEvent( HANDLE handle, LONG *prev_state )
|
||||
{
|
||||
+ /* This comment is a dummy to make sure this patch applies in the right place. */
|
||||
NTSTATUS ret;
|
||||
unsigned int ret;
|
||||
|
||||
+ if (do_esync())
|
||||
+ return esync_reset_event( handle );
|
||||
+
|
||||
+
|
||||
SERVER_START_REQ( event_op )
|
||||
{
|
||||
req->handle = wine_server_obj_handle( handle );
|
||||
--
|
||||
2.29.2
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 5b4a4557f47415d9a78185a3be8b0a9d7d6bdc33 Mon Sep 17 00:00:00 2001
|
||||
From 24a1dd64bee6e9140d6f05241c03f572bb464436 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <zfigura@codeweavers.com>
|
||||
Date: Mon, 6 Jul 2020 16:37:49 -0500
|
||||
Subject: [PATCH] ntdll: Implement NtReleaseMutant().
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtReleaseMutant().
|
||||
3 files changed, 38 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
|
||||
index df9eb2696a1..48482a31ea2 100644
|
||||
index 350b1ffb756..ded71e631f7 100644
|
||||
--- a/dlls/ntdll/unix/esync.c
|
||||
+++ b/dlls/ntdll/unix/esync.c
|
||||
@@ -431,6 +431,40 @@ NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
|
||||
@@ -424,6 +424,40 @@ NTSTATUS esync_create_mutex( HANDLE *handle, ACCESS_MASK access,
|
||||
return create_esync( ESYNC_MUTEX, handle, access, attr, initial ? 0 : 1, 0 );
|
||||
}
|
||||
|
||||
@@ -67,12 +67,12 @@ index 38ebefc9eed..e69c46ca462 100644
|
||||
extern NTSTATUS esync_wait_objects( DWORD count, const HANDLE *handles, BOOLEAN wait_any,
|
||||
BOOLEAN alertable, const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index 56292db271a..1a19bb78a9c 100644
|
||||
index 2640320587e..620d013751f 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -648,6 +648,9 @@ NTSTATUS WINAPI NtReleaseMutant( HANDLE handle, LONG *prev_count )
|
||||
@@ -609,6 +609,9 @@ NTSTATUS WINAPI NtReleaseMutant( HANDLE handle, LONG *prev_count )
|
||||
{
|
||||
NTSTATUS ret;
|
||||
unsigned int ret;
|
||||
|
||||
+ if (do_esync())
|
||||
+ return esync_release_mutex( handle, prev_count );
|
||||
@@ -81,5 +81,5 @@ index 56292db271a..1a19bb78a9c 100644
|
||||
{
|
||||
req->handle = wine_server_obj_handle( handle );
|
||||
--
|
||||
2.28.0
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 7f04be3dd881287f1a74b7fe5829fa5917afa054 Mon Sep 17 00:00:00 2001
|
||||
From fd251549dc6a59073937ba74b195f9dc7a892616 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <zfigura@codeweavers.com>
|
||||
Date: Mon, 6 Jul 2020 16:56:09 -0500
|
||||
Subject: [PATCH] ntdll: Implement NtOpenSemaphore().
|
||||
@@ -12,10 +12,10 @@ Subject: [PATCH] ntdll: Implement NtOpenSemaphore().
|
||||
5 files changed, 96 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
|
||||
index 6d8653cd107..8e7e50ce777 100644
|
||||
index cdf5f602695..583afebb17c 100644
|
||||
--- a/dlls/ntdll/unix/esync.c
|
||||
+++ b/dlls/ntdll/unix/esync.c
|
||||
@@ -336,6 +336,45 @@ static NTSTATUS create_esync( enum esync_type type, HANDLE *handle, ACCESS_MASK
|
||||
@@ -329,6 +329,45 @@ static NTSTATUS create_esync( enum esync_type type, HANDLE *handle, ACCESS_MASK
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ index 6d8653cd107..8e7e50ce777 100644
|
||||
extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
|
||||
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max)
|
||||
{
|
||||
@@ -345,6 +384,14 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
|
||||
@@ -338,6 +377,14 @@ extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
|
||||
return create_esync( ESYNC_SEMAPHORE, handle, access, attr, initial, max );
|
||||
}
|
||||
|
||||
@@ -90,11 +90,11 @@ index bee08ff857f..2738e8b7f87 100644
|
||||
|
||||
extern NTSTATUS esync_create_event( HANDLE *handle, ACCESS_MASK access,
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index a51462abeac..36322f6afb6 100644
|
||||
index ce3061a7f31..dd8ed16f868 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -353,6 +353,10 @@ NTSTATUS WINAPI NtOpenSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJEC
|
||||
NTSTATUS ret;
|
||||
@@ -301,6 +301,10 @@ NTSTATUS WINAPI NtOpenSemaphore( HANDLE *handle, ACCESS_MASK access, const OBJEC
|
||||
unsigned int ret;
|
||||
|
||||
*handle = 0;
|
||||
+
|
||||
@@ -105,10 +105,10 @@ index a51462abeac..36322f6afb6 100644
|
||||
|
||||
SERVER_START_REQ( open_semaphore )
|
||||
diff --git a/server/esync.c b/server/esync.c
|
||||
index 913104e3dd4..da97c6c140b 100644
|
||||
index 3f1c61bc1f0..eca9b6aa67d 100644
|
||||
--- a/server/esync.c
|
||||
+++ b/server/esync.c
|
||||
@@ -412,6 +412,37 @@ DECL_HANDLER(create_esync)
|
||||
@@ -410,6 +410,37 @@ DECL_HANDLER(create_esync)
|
||||
if (root) release_object( root );
|
||||
}
|
||||
|
||||
@@ -147,10 +147,10 @@ index 913104e3dd4..da97c6c140b 100644
|
||||
* server. The client should only read from (i.e. wait on) this object. */
|
||||
DECL_HANDLER(get_esync_fd)
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 776d3d72dc2..575cf291bb0 100644
|
||||
index 40bdd8a70b4..acd90615cf7 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3750,6 +3750,18 @@ enum esync_type
|
||||
@@ -3812,6 +3812,18 @@ enum esync_type
|
||||
unsigned int shm_idx;
|
||||
@END
|
||||
|
||||
@@ -170,5 +170,5 @@ index 776d3d72dc2..575cf291bb0 100644
|
||||
@REQ(get_esync_fd)
|
||||
obj_handle_t handle; /* handle to the object */
|
||||
--
|
||||
2.30.2
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 161ae4c64b5e3bd33771671f518c482a6a66700b Mon Sep 17 00:00:00 2001
|
||||
From 614c13aed3d20a772c3ccd26547fa93a56fcc40b Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Sun, 10 Jun 2018 19:08:18 -0500
|
||||
Subject: [PATCH] server: Implement esync_map_access().
|
||||
@@ -8,10 +8,10 @@ Subject: [PATCH] server: Implement esync_map_access().
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/server/esync.c b/server/esync.c
|
||||
index 1703608263f..20f149cdad3 100644
|
||||
index eca9b6aa67d..3a334b3b330 100644
|
||||
--- a/server/esync.c
|
||||
+++ b/server/esync.c
|
||||
@@ -114,6 +114,7 @@ struct esync
|
||||
@@ -112,6 +112,7 @@ struct esync
|
||||
};
|
||||
|
||||
static void esync_dump( struct object *obj, int verbose );
|
||||
@@ -19,16 +19,16 @@ index 1703608263f..20f149cdad3 100644
|
||||
static void esync_destroy( struct object *obj );
|
||||
|
||||
const struct object_ops esync_ops =
|
||||
@@ -128,7 +129,7 @@ const struct object_ops esync_ops =
|
||||
@@ -126,7 +127,7 @@ const struct object_ops esync_ops =
|
||||
NULL, /* satisfied */
|
||||
no_signal, /* signal */
|
||||
no_get_fd, /* get_fd */
|
||||
- no_map_access, /* map_access */
|
||||
- default_map_access, /* map_access */
|
||||
+ esync_map_access, /* map_access */
|
||||
default_get_sd, /* get_sd */
|
||||
default_set_sd, /* set_sd */
|
||||
default_get_full_name, /* get_full_name */
|
||||
@@ -148,6 +149,16 @@ static void esync_dump( struct object *obj, int verbose )
|
||||
@@ -146,6 +147,16 @@ static void esync_dump( struct object *obj, int verbose )
|
||||
fprintf( stderr, "esync fd=%d\n", esync->fd );
|
||||
}
|
||||
|
||||
@@ -46,5 +46,5 @@ index 1703608263f..20f149cdad3 100644
|
||||
{
|
||||
struct esync *esync = (struct esync *)obj;
|
||||
--
|
||||
2.28.0
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From bb81fa475b3aa206fe1e8ff914d41de292aa9807 Mon Sep 17 00:00:00 2001
|
||||
From 1d7cb4fe562903aa56abe64c97d0d84357b67f49 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <zfigura@codeweavers.com>
|
||||
Date: Mon, 6 Jul 2020 17:56:40 -0500
|
||||
Subject: [PATCH] ntdll: Implement NtPulseEvent().
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Implement NtPulseEvent().
|
||||
3 files changed, 29 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c
|
||||
index 91a85253a83..d7511f39601 100644
|
||||
index ff0210f3cd4..3a47b5aa39e 100644
|
||||
--- a/dlls/ntdll/unix/esync.c
|
||||
+++ b/dlls/ntdll/unix/esync.c
|
||||
@@ -607,6 +607,31 @@ NTSTATUS esync_reset_event( HANDLE handle )
|
||||
@@ -600,6 +600,31 @@ NTSTATUS esync_reset_event( HANDLE handle )
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -58,12 +58,12 @@ index 18788fa273b..188304f3be7 100644
|
||||
extern NTSTATUS esync_reset_event( HANDLE handle ) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS esync_set_event( HANDLE handle ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index acec96c0a3c..051c672bd12 100644
|
||||
index 4c745b3b72e..4025a7a3a2f 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -549,6 +549,9 @@ NTSTATUS WINAPI NtPulseEvent( HANDLE handle, LONG *prev_state )
|
||||
@@ -509,6 +509,9 @@ NTSTATUS WINAPI NtPulseEvent( HANDLE handle, LONG *prev_state )
|
||||
{
|
||||
NTSTATUS ret;
|
||||
unsigned int ret;
|
||||
|
||||
+ if (do_esync())
|
||||
+ return esync_pulse_event( handle );
|
||||
@@ -72,5 +72,5 @@ index acec96c0a3c..051c672bd12 100644
|
||||
{
|
||||
req->handle = wine_server_obj_handle( handle );
|
||||
--
|
||||
2.28.0
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From c4a4d47fb07faee6ef6d20b967e21eafe6a60ea4 Mon Sep 17 00:00:00 2001
|
||||
From f57e7a06cffc47773c647a10ed4d298b58fbd408 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 9 Jul 2019 14:13:28 +1000
|
||||
Subject: [PATCH] user32: Do not enumerate the registry in
|
||||
@@ -13,7 +13,7 @@ not the complete list from the registry.
|
||||
3 files changed, 36 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/input.c b/dlls/user32/input.c
|
||||
index bb7477ed482..55ab8d246e7 100644
|
||||
index c5387cf9212..2507a86e3b6 100644
|
||||
--- a/dlls/user32/input.c
|
||||
+++ b/dlls/user32/input.c
|
||||
@@ -494,7 +494,6 @@ BOOL WINAPI UnloadKeyboardLayout( HKL layout )
|
||||
@@ -25,11 +25,11 @@ index bb7477ed482..55ab8d246e7 100644
|
||||
* EnableMouseInPointer (USER32.@)
|
||||
*/
|
||||
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
|
||||
index 8477645fad5..e92548c7402 100644
|
||||
index bf913b8e6a6..8ac46bedc71 100644
|
||||
--- a/dlls/user32/tests/input.c
|
||||
+++ b/dlls/user32/tests/input.c
|
||||
@@ -4566,6 +4566,40 @@ static void test_SendInput(void)
|
||||
DestroyWindow( hwnd );
|
||||
@@ -4837,6 +4837,40 @@ static void test_EnableMouseInPointer( char **argv, BOOL enable )
|
||||
CloseHandle( info.hProcess );
|
||||
}
|
||||
|
||||
+static void test_GetKeyboardLayoutList(void)
|
||||
@@ -69,7 +69,7 @@ index 8477645fad5..e92548c7402 100644
|
||||
START_TEST(input)
|
||||
{
|
||||
char **argv;
|
||||
@@ -4608,6 +4642,7 @@ START_TEST(input)
|
||||
@@ -4887,6 +4921,7 @@ START_TEST(input)
|
||||
test_GetRawInputBuffer();
|
||||
test_RegisterRawInputDevices();
|
||||
test_rawinput(argv[0]);
|
||||
@@ -78,7 +78,7 @@ index 8477645fad5..e92548c7402 100644
|
||||
|
||||
if(pGetMouseMovePointsEx)
|
||||
diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c
|
||||
index f3b724e7010..a971e1ee776 100644
|
||||
index fd16d03f733..fb452843803 100644
|
||||
--- a/dlls/win32u/input.c
|
||||
+++ b/dlls/win32u/input.c
|
||||
@@ -934,11 +934,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags )
|
||||
@@ -129,5 +129,5 @@ index f3b724e7010..a971e1ee776 100644
|
||||
|
||||
return count;
|
||||
--
|
||||
2.37.2
|
||||
2.39.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From bd90f10550e2de898517d0a41b94f76f23fc9601 Mon Sep 17 00:00:00 2001
|
||||
From e1c18d8fda84e300fc6ae2b90bf3770c4f2bb2c7 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 19 Mar 2021 17:01:54 -0400
|
||||
Subject: [PATCH] winegstreamer: Report streams backwards in media source.
|
||||
@@ -9,18 +9,18 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index 43beb71838a..d39b01b8578 100644
|
||||
index 542189b28f5..a9e97f545dd 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -1480,7 +1480,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_
|
||||
descriptors = malloc(object->stream_count * sizeof(IMFStreamDescriptor *));
|
||||
for (i = 0; i < object->stream_count; i++)
|
||||
{
|
||||
@@ -1496,7 +1496,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_
|
||||
DWORD len;
|
||||
char *str;
|
||||
|
||||
- IMFMediaStream_GetStreamDescriptor(&object->streams[i]->IMFMediaStream_iface, &descriptors[i]);
|
||||
+ IMFMediaStream_GetStreamDescriptor(&object->streams[i]->IMFMediaStream_iface, &descriptors[object->stream_count - 1 - i]);
|
||||
}
|
||||
|
||||
if (FAILED(hr = MFCreatePresentationDescriptor(object->stream_count, descriptors, &object->pres_desc)))
|
||||
for (j = 0; j < ARRAY_SIZE(tags); ++j)
|
||||
{
|
||||
--
|
||||
2.37.2
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,185 +0,0 @@
|
||||
From bdf230e4b3fedad3cf63d612dbc57e68fd33094a Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Thu, 18 Mar 2021 15:25:17 -0400
|
||||
Subject: [PATCH] winegstreamer: Implement MF_SD_LANGUAGE.
|
||||
|
||||
---
|
||||
dlls/winegstreamer/gst_private.h | 1 +
|
||||
dlls/winegstreamer/main.c | 12 ++++++++++++
|
||||
dlls/winegstreamer/media_source.c | 20 +++++++++++++++++++-
|
||||
dlls/winegstreamer/unixlib.h | 8 ++++++++
|
||||
dlls/winegstreamer/wg_parser.c | 31 +++++++++++++++++++++++++++++++
|
||||
5 files changed, 71 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/gst_private.h b/dlls/winegstreamer/gst_private.h
|
||||
index c33a89afd5b..21aef431039 100644
|
||||
--- a/dlls/winegstreamer/gst_private.h
|
||||
+++ b/dlls/winegstreamer/gst_private.h
|
||||
@@ -95,6 +95,7 @@ void wg_parser_stream_notify_qos(struct wg_parser_stream *stream,
|
||||
|
||||
/* Returns the duration in 100-nanosecond units. */
|
||||
uint64_t wg_parser_stream_get_duration(struct wg_parser_stream *stream);
|
||||
+bool wg_parser_stream_get_language(struct wg_parser_stream *stream, char *buffer, uint32_t size);
|
||||
/* start_pos and stop_pos are in 100-nanosecond units. */
|
||||
void wg_parser_stream_seek(struct wg_parser_stream *stream, double rate,
|
||||
uint64_t start_pos, uint64_t stop_pos, DWORD start_flags, DWORD stop_flags);
|
||||
diff --git a/dlls/winegstreamer/main.c b/dlls/winegstreamer/main.c
|
||||
index 2efa3bd26ac..2b9f10e7b37 100644
|
||||
--- a/dlls/winegstreamer/main.c
|
||||
+++ b/dlls/winegstreamer/main.c
|
||||
@@ -271,6 +271,18 @@ uint64_t wg_parser_stream_get_duration(struct wg_parser_stream *stream)
|
||||
return params.duration;
|
||||
}
|
||||
|
||||
+bool wg_parser_stream_get_language(struct wg_parser_stream *stream, char *buffer, uint32_t size)
|
||||
+{
|
||||
+ struct wg_parser_stream_get_language_params params =
|
||||
+ {
|
||||
+ .stream = stream,
|
||||
+ .buffer = buffer,
|
||||
+ .size = size,
|
||||
+ };
|
||||
+
|
||||
+ return !__wine_unix_call(unix_handle, unix_wg_parser_stream_get_language, ¶ms);
|
||||
+}
|
||||
+
|
||||
void wg_parser_stream_seek(struct wg_parser_stream *stream, double rate,
|
||||
uint64_t start_pos, uint64_t stop_pos, DWORD start_flags, DWORD stop_flags)
|
||||
{
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index 042c635ae93..7c58dce5e27 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -1482,7 +1482,25 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_
|
||||
descriptors = malloc(object->stream_count * sizeof(IMFStreamDescriptor *));
|
||||
for (i = 0; i < object->stream_count; i++)
|
||||
{
|
||||
- IMFMediaStream_GetStreamDescriptor(&object->streams[i]->IMFMediaStream_iface, &descriptors[object->stream_count - 1 - i]);
|
||||
+ IMFStreamDescriptor **descriptor = &descriptors[object->stream_count - 1 - i];
|
||||
+ char language[128];
|
||||
+ DWORD language_len;
|
||||
+ WCHAR *languageW;
|
||||
+
|
||||
+ IMFMediaStream_GetStreamDescriptor(&object->streams[i]->IMFMediaStream_iface, descriptor);
|
||||
+
|
||||
+ if (wg_parser_stream_get_language(object->streams[i]->wg_stream, language, sizeof(language)))
|
||||
+ {
|
||||
+ if ((language_len = MultiByteToWideChar(CP_UTF8, 0, language, -1, NULL, 0)))
|
||||
+ {
|
||||
+ languageW = malloc(language_len * sizeof(WCHAR));
|
||||
+ if (MultiByteToWideChar(CP_UTF8, 0, language, -1, languageW, language_len))
|
||||
+ {
|
||||
+ IMFStreamDescriptor_SetString(*descriptor, &MF_SD_LANGUAGE, languageW);
|
||||
+ }
|
||||
+ free(languageW);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
if (FAILED(hr = MFCreatePresentationDescriptor(object->stream_count, descriptors, &object->pres_desc)))
|
||||
diff --git a/dlls/winegstreamer/unixlib.h b/dlls/winegstreamer/unixlib.h
|
||||
index 9c53ecbfbc3..0c0fec0e966 100644
|
||||
--- a/dlls/winegstreamer/unixlib.h
|
||||
+++ b/dlls/winegstreamer/unixlib.h
|
||||
@@ -249,6 +249,13 @@ struct wg_parser_stream_get_duration_params
|
||||
UINT64 duration;
|
||||
};
|
||||
|
||||
+struct wg_parser_stream_get_language_params
|
||||
+{
|
||||
+ struct wg_parser_stream *stream;
|
||||
+ char *buffer;
|
||||
+ UINT32 size;
|
||||
+};
|
||||
+
|
||||
struct wg_parser_stream_seek_params
|
||||
{
|
||||
struct wg_parser_stream *stream;
|
||||
@@ -309,6 +316,7 @@ enum unix_funcs
|
||||
unix_wg_parser_stream_notify_qos,
|
||||
|
||||
unix_wg_parser_stream_get_duration,
|
||||
+ unix_wg_parser_stream_get_language,
|
||||
unix_wg_parser_stream_seek,
|
||||
|
||||
unix_wg_transform_create,
|
||||
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
|
||||
index 6ec8e1bdbd8..6fa712dd1fb 100644
|
||||
--- a/dlls/winegstreamer/wg_parser.c
|
||||
+++ b/dlls/winegstreamer/wg_parser.c
|
||||
@@ -109,6 +109,7 @@ struct wg_parser_stream
|
||||
bool flushing, eos, enabled, has_caps;
|
||||
|
||||
uint64_t duration;
|
||||
+ gchar *language_code;
|
||||
};
|
||||
|
||||
static NTSTATUS wg_parser_get_stream_count(void *args)
|
||||
@@ -350,6 +351,14 @@ static NTSTATUS wg_parser_stream_get_duration(void *args)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
+static NTSTATUS wg_parser_stream_get_language(void *args)
|
||||
+{
|
||||
+ struct wg_parser_stream_get_language_params *params = args;
|
||||
+ if (params->stream->language_code)
|
||||
+ lstrcpynA(params->buffer, params->stream->language_code, params->size);
|
||||
+ return params->stream->language_code ? S_OK : E_FAIL;
|
||||
+}
|
||||
+
|
||||
static NTSTATUS wg_parser_stream_seek(void *args)
|
||||
{
|
||||
GstSeekType start_type = GST_SEEK_TYPE_SET, stop_type = GST_SEEK_TYPE_SET;
|
||||
@@ -723,6 +732,9 @@ static void free_stream(struct wg_parser_stream *stream)
|
||||
pthread_cond_destroy(&stream->event_cond);
|
||||
pthread_cond_destroy(&stream->event_empty_cond);
|
||||
|
||||
+ if (stream->language_code)
|
||||
+ g_free(stream->language_code);
|
||||
+
|
||||
free(stream);
|
||||
}
|
||||
|
||||
@@ -1187,6 +1199,22 @@ static gboolean src_event_cb(GstPad *pad, GstObject *parent, GstEvent *event)
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static gchar *query_language(GstPad *pad)
|
||||
+{
|
||||
+ GstTagList *tag_list;
|
||||
+ GstEvent *tag_event;
|
||||
+ gchar *ret = NULL;
|
||||
+
|
||||
+ if ((tag_event = gst_pad_get_sticky_event(pad, GST_EVENT_TAG, 0)))
|
||||
+ {
|
||||
+ gst_event_parse_tag(tag_event, &tag_list);
|
||||
+ gst_tag_list_get_string(tag_list, "language-code", &ret);
|
||||
+ gst_event_unref(tag_event);
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
static NTSTATUS wg_parser_connect(void *args)
|
||||
{
|
||||
GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE("quartz_src",
|
||||
@@ -1315,6 +1343,8 @@ static NTSTATUS wg_parser_connect(void *args)
|
||||
* attempting to read anything), but we don't want to waste CPU time
|
||||
* trying to decode them. */
|
||||
stream->enabled = true;
|
||||
+
|
||||
+ stream->language_code = query_language(stream->their_src);
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&parser->mutex);
|
||||
@@ -1631,6 +1661,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
|
||||
X(wg_parser_stream_notify_qos),
|
||||
|
||||
X(wg_parser_stream_get_duration),
|
||||
+ X(wg_parser_stream_get_language),
|
||||
X(wg_parser_stream_seek),
|
||||
|
||||
X(wg_transform_create),
|
||||
--
|
||||
2.37.2
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From e6e95fe8edfaa85796f533f3f7a485bc721fe930 Mon Sep 17 00:00:00 2001
|
||||
From 281a1753e7a075b7b3bdbba2692a1da5bec081f3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 30 Mar 2015 04:01:51 +0200
|
||||
Subject: [PATCH] mountmgr.sys: Write usable device paths into
|
||||
@@ -15,10 +15,10 @@ Based on a patch by Bernhard Übelacker.
|
||||
3 files changed, 13 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c
|
||||
index fc32b57cf70..4d837315311 100644
|
||||
index 8fd9dc0757e..f40f70b06d7 100644
|
||||
--- a/dlls/mountmgr.sys/device.c
|
||||
+++ b/dlls/mountmgr.sys/device.c
|
||||
@@ -1083,8 +1083,8 @@ static NTSTATUS set_volume_info( struct volume *volume, struct dos_drive *drive,
|
||||
@@ -1045,8 +1045,8 @@ static NTSTATUS set_volume_info( struct volume *volume, struct dos_drive *drive,
|
||||
id = disk_device->unix_mount;
|
||||
id_len = strlen( disk_device->unix_mount ) + 1;
|
||||
}
|
||||
@@ -30,20 +30,20 @@ index fc32b57cf70..4d837315311 100644
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c
|
||||
index 2e3ff80c36a..6898bb98c62 100644
|
||||
index 9f72eedb33b..19cb71b4eb6 100644
|
||||
--- a/dlls/mountmgr.sys/mountmgr.c
|
||||
+++ b/dlls/mountmgr.sys/mountmgr.c
|
||||
@@ -52,14 +52,21 @@ static HKEY mount_key;
|
||||
|
||||
unixlib_handle_t mountmgr_handle = 0;
|
||||
@@ -46,14 +46,21 @@ struct mount_point
|
||||
static struct list mount_points_list = LIST_INIT(mount_points_list);
|
||||
static HKEY mount_key;
|
||||
|
||||
-void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len )
|
||||
+void set_mount_point_id( struct mount_point *mount, const void *id, unsigned int id_len, int drive )
|
||||
{
|
||||
+ WCHAR logicalW[] = {'\\','\\','.','\\','a',':',0};
|
||||
RtlFreeHeap( GetProcessHeap(), 0, mount->id );
|
||||
free( mount->id );
|
||||
mount->id_len = max( MIN_ID_LEN, id_len );
|
||||
if ((mount->id = RtlAllocateHeap( GetProcessHeap(), HEAP_ZERO_MEMORY, mount->id_len )))
|
||||
if ((mount->id = calloc( mount->id_len, 1 )))
|
||||
{
|
||||
memcpy( mount->id, id, id_len );
|
||||
- RegSetValueExW( mount_key, mount->link.Buffer, 0, REG_BINARY, mount->id, mount->id_len );
|
||||
@@ -58,10 +58,10 @@ index 2e3ff80c36a..6898bb98c62 100644
|
||||
else mount->id_len = 0;
|
||||
}
|
||||
diff --git a/dlls/mountmgr.sys/mountmgr.h b/dlls/mountmgr.sys/mountmgr.h
|
||||
index 0297f6f11fe..b347a9cef6a 100644
|
||||
index 143401e3b9b..bad875dd9bc 100644
|
||||
--- a/dlls/mountmgr.sys/mountmgr.h
|
||||
+++ b/dlls/mountmgr.sys/mountmgr.h
|
||||
@@ -110,6 +110,7 @@ extern struct mount_point *add_dosdev_mount_point( DEVICE_OBJECT *device, UNICOD
|
||||
@@ -108,6 +108,7 @@ extern struct mount_point *add_dosdev_mount_point( DEVICE_OBJECT *device, UNICOD
|
||||
extern struct mount_point *add_volume_mount_point( DEVICE_OBJECT *device, UNICODE_STRING *device_name,
|
||||
const GUID *guid ) DECLSPEC_HIDDEN;
|
||||
extern void delete_mount_point( struct mount_point *mount ) DECLSPEC_HIDDEN;
|
||||
@@ -71,5 +71,5 @@ index 0297f6f11fe..b347a9cef6a 100644
|
||||
|
||||
#endif /* __WINE_MOUNTMGR_H */
|
||||
--
|
||||
2.33.0
|
||||
2.38.1
|
||||
|
||||
|
@@ -1,114 +0,0 @@
|
||||
From bef93835ceb4a482c348b0aa6e62ce4fee5e3f35 Mon Sep 17 00:00:00 2001
|
||||
From: Zhenbo Li <litimetal@gmail.com>
|
||||
Date: Tue, 1 Jul 2014 19:45:43 +0800
|
||||
Subject: [PATCH] mshtml: Add IHTMLLocation::hash property's getter
|
||||
implementation.
|
||||
|
||||
---
|
||||
dlls/mshtml/htmllocation.c | 11 ++++++--
|
||||
dlls/mshtml/tests/htmldoc.c | 53 ++++++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 61 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/mshtml/htmllocation.c b/dlls/mshtml/htmllocation.c
|
||||
index 8f7800ff2a3..2b42939a39f 100644
|
||||
--- a/dlls/mshtml/htmllocation.c
|
||||
+++ b/dlls/mshtml/htmllocation.c
|
||||
@@ -524,8 +524,15 @@ static HRESULT WINAPI HTMLLocation_get_search(IHTMLLocation *iface, BSTR *p)
|
||||
static HRESULT WINAPI HTMLLocation_put_hash(IHTMLLocation *iface, BSTR v)
|
||||
{
|
||||
HTMLLocation *This = impl_from_IHTMLLocation(iface);
|
||||
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
|
||||
- return E_NOTIMPL;
|
||||
+
|
||||
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
|
||||
+
|
||||
+ if(!This->window || !This->window->base.outer_window) {
|
||||
+ FIXME("No window available\n");
|
||||
+ return E_FAIL;
|
||||
+ }
|
||||
+
|
||||
+ return navigate_url(This->window->base.outer_window, v, This->window->base.outer_window->uri, 0);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLLocation_get_hash(IHTMLLocation *iface, BSTR *p)
|
||||
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
|
||||
index ff050863b6f..2c118d89d1d 100644
|
||||
--- a/dlls/mshtml/tests/htmldoc.c
|
||||
+++ b/dlls/mshtml/tests/htmldoc.c
|
||||
@@ -5963,6 +5963,56 @@ static void test_Persist(IHTMLDocument2 *doc, IMoniker *mon)
|
||||
}
|
||||
}
|
||||
|
||||
+static void test_put_hash(IHTMLDocument2 *doc, const WCHAR *new_hash)
|
||||
+{
|
||||
+ static WCHAR nav_url_buff[256];
|
||||
+ IHTMLLocation *location;
|
||||
+ BSTR str;
|
||||
+ WCHAR *psharp;
|
||||
+ HRESULT hres;
|
||||
+
|
||||
+ trace("put_hash, url = %s, new hash = %s\n", debugstr_w(nav_url), debugstr_w(new_hash));
|
||||
+
|
||||
+ location = NULL;
|
||||
+ hres = IHTMLDocument2_get_location(doc, &location);
|
||||
+ ok(hres == S_OK, "get_location failed: %08lx\n", hres);
|
||||
+ ok(location != NULL, "location == NULL\n");
|
||||
+
|
||||
+ SET_EXPECT(TranslateUrl);
|
||||
+ SET_EXPECT(Exec_ShellDocView_67);
|
||||
+ SET_EXPECT(FireBeforeNavigate2);
|
||||
+ SET_EXPECT(FireDocumentComplete);
|
||||
+ SET_EXPECT(FireNavigateComplete2);
|
||||
+
|
||||
+ /* Edit nav_url */
|
||||
+ wcscpy(nav_url_buff, nav_url);
|
||||
+ psharp = wcschr(nav_url_buff, '#');
|
||||
+ if (psharp)
|
||||
+ *psharp = '\0';
|
||||
+ wcscat(nav_url_buff, new_hash);
|
||||
+ nav_url = nav_url_buff;
|
||||
+
|
||||
+ str = SysAllocString(new_hash);
|
||||
+ hres = IHTMLLocation_put_hash(location, str);
|
||||
+ ok (hres == S_OK, "put_hash failed: %08lx\n", hres);
|
||||
+ SysFreeString(str);
|
||||
+
|
||||
+ CHECK_CALLED(TranslateUrl);
|
||||
+ CHECK_CALLED_BROKEN(Exec_ShellDocView_67); /* Broken on Win7 and 8 */
|
||||
+ CHECK_CALLED(FireBeforeNavigate2);
|
||||
+ CHECK_CALLED(FireDocumentComplete);
|
||||
+ CHECK_CALLED(FireNavigateComplete2);
|
||||
+
|
||||
+
|
||||
+ /* Check the result */
|
||||
+ hres = IHTMLLocation_get_hash(location, &str);
|
||||
+ ok(hres == S_OK, "get_hash failed: %08lx\n", hres);
|
||||
+ ok(!wcscmp(str, new_hash), "expected %s, got %s\n", debugstr_w(new_hash), debugstr_w(str));
|
||||
+ SysFreeString(str);
|
||||
+
|
||||
+ IHTMLLocation_Release(location);
|
||||
+}
|
||||
+
|
||||
static void test_put_href(IHTMLDocument2 *doc, BOOL use_replace, const WCHAR *href, const WCHAR *new_nav_url, BOOL is_js,
|
||||
BOOL is_hash, DWORD dwl_flags)
|
||||
{
|
||||
@@ -6148,7 +6198,7 @@ static void test_load_history(IHTMLDocument2 *doc)
|
||||
ok(hres == S_OK, "Could not get IPersistHistory iface: %08lx\n", hres);
|
||||
|
||||
prev_url = nav_url;
|
||||
- nav_url = L"http://test.winehq.org/tests/winehq_snapshot/#test";
|
||||
+ nav_url = L"http://test.winehq.org/tests/winehq_snapshot/#hash_test";
|
||||
nav_serv_url = L"http://test.winehq.org/tests/winehq_snapshot/";
|
||||
|
||||
SET_EXPECT(Exec_ShellDocView_138);
|
||||
@@ -8017,6 +8067,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
|
||||
nav_url = nav_serv_url = L"http://test.winehq.org/tests/winehq_snapshot/"; /* for valid prev nav_url */
|
||||
if(support_wbapp) {
|
||||
test_put_href(doc, FALSE, L"#test", L"http://test.winehq.org/tests/winehq_snapshot/#test", FALSE, TRUE, 0);
|
||||
+ test_put_hash(doc, L"#hash_test");
|
||||
test_travellog(doc);
|
||||
test_refresh(doc);
|
||||
}
|
||||
--
|
||||
2.34.1
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user