mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against d48ffbdc014954907d3280a3b53eb9b478b10195
This commit is contained in:
parent
7d9b7bbdf5
commit
57370fd9ae
@ -1,38 +0,0 @@
|
||||
From 5487b4720e24aaa7a10719fc36bc23c851a48a9b Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Tue, 28 Apr 2015 22:35:26 +0800
|
||||
Subject: server: Create primary group using DOMAIN_GROUP_RID_USERS.
|
||||
|
||||
---
|
||||
dlls/advapi32/tests/security.c | 2 +-
|
||||
server/token.c | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
|
||||
index 25b34ba4..573119f 100644
|
||||
--- a/dlls/advapi32/tests/security.c
|
||||
+++ b/dlls/advapi32/tests/security.c
|
||||
@@ -2591,7 +2591,7 @@ static void test_process_security(void)
|
||||
ok(res, "GetTokenInformation failed with error %d\n", GetLastError());
|
||||
UserSid = user->User.Sid;
|
||||
test_sid_str(UserSid);
|
||||
- todo_wine ok(EqualPrefixSid(UsersSid, UserSid), "TokenPrimaryGroup Sid and TokenUser Sid don't match.\n");
|
||||
+ ok(EqualPrefixSid(UsersSid, UserSid), "TokenPrimaryGroup Sid and TokenUser Sid don't match.\n");
|
||||
|
||||
CloseHandle( token );
|
||||
if (!res)
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index e57cbc6..be8c53b 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -695,6 +695,7 @@ struct token *token_create_admin( void )
|
||||
{ security_local_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
{ security_interactive_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
{ security_authenticated_user_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
+ { security_domain_users_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY|SE_GROUP_OWNER },
|
||||
{ alias_admins_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY|SE_GROUP_OWNER },
|
||||
{ alias_users_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
{ logon_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY|SE_GROUP_LOGON_ID },
|
||||
--
|
||||
2.3.5
|
||||
|
@ -1,51 +0,0 @@
|
||||
From a82c1a7a7342200b8112dc4176ad5adf557787c0 Mon Sep 17 00:00:00 2001
|
||||
From: Tim Schumacher <timschumi@gmx.de>
|
||||
Date: Sun, 31 Mar 2019 13:02:27 +0200
|
||||
Subject: [PATCH 1/2] winejoystick: Add support for wheel axes
|
||||
|
||||
Wheel, gas, and brake are replacements for X, Y and Z in wheel-like
|
||||
joysticks. Remap them internally to send inputs as X, Y, and Z.
|
||||
|
||||
Signed-off-by: Tim Schumacher <timschumi@gmx.de>
|
||||
---
|
||||
dlls/winejoystick.drv/joystick_linux.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/dlls/winejoystick.drv/joystick_linux.c b/dlls/winejoystick.drv/joystick_linux.c
|
||||
index 287f4be..7c24040 100644
|
||||
--- a/dlls/winejoystick.drv/joystick_linux.c
|
||||
+++ b/dlls/winejoystick.drv/joystick_linux.c
|
||||
@@ -280,10 +280,13 @@ static const WCHAR ini[] = {'W','i','n','e',' ','J','o','y','s','t','i','c','k',
|
||||
switch (jstck->axesMap[i]) {
|
||||
case 0: /* X */
|
||||
case 1: /* Y */
|
||||
+ case 8: /* Wheel */
|
||||
+ case 9: /* Gas */
|
||||
lpCaps->wNumAxes++;
|
||||
break;
|
||||
case 2: /* Z */
|
||||
case 6: /* Throttle */
|
||||
+ case 10: /* Brake */
|
||||
lpCaps->wNumAxes++;
|
||||
lpCaps->wCaps |= JOYCAPS_HASZ;
|
||||
break;
|
||||
@@ -365,13 +368,16 @@ LRESULT driver_joyGetPosEx(DWORD_PTR dwDevID, LPJOYINFOEX lpInfo)
|
||||
if (ev.type == (JS_EVENT_AXIS)) {
|
||||
switch (jstck->axesMap[ev.number]) {
|
||||
case 0: /* X */
|
||||
+ case 8: /* Wheel */
|
||||
jstck->x = ev.value;
|
||||
break;
|
||||
case 1: /* Y */
|
||||
+ case 9: /* Gas */
|
||||
jstck->y = ev.value;
|
||||
break;
|
||||
case 2: /* Z */
|
||||
case 6: /* Throttle */
|
||||
+ case 10: /* Brake */
|
||||
jstck->z = ev.value;
|
||||
break;
|
||||
case 5: /* Rz */
|
||||
--
|
||||
1.9.1
|
||||
|
@ -1,37 +0,0 @@
|
||||
From dddcfcb92fb61c70738378b29db0ede050bcf162 Mon Sep 17 00:00:00 2001
|
||||
From: Tim Schumacher <timschumi@gmx.de>
|
||||
Date: Sun, 31 Mar 2019 13:09:43 +0200
|
||||
Subject: [PATCH 2/2] dinput: Map wheel, gas, and brake axes as well
|
||||
|
||||
The axes wheel, gas, and brake are just differently named replacements
|
||||
for X, Y, and Z when using wheel-like joysticks.
|
||||
|
||||
Make those accessible by remapping them to X, Y, and Z internally.
|
||||
|
||||
Signed-off-by: Tim Schumacher <timschumi@gmx.de>
|
||||
---
|
||||
dlls/dinput/joystick_linux.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c
|
||||
index 963e62f..c4efc93 100644
|
||||
--- a/dlls/dinput/joystick_linux.c
|
||||
+++ b/dlls/dinput/joystick_linux.c
|
||||
@@ -239,6 +239,14 @@ static INT find_joystick_devices(void)
|
||||
joydev.dev_axes_map[j] = j;
|
||||
found_axes++;
|
||||
}
|
||||
+ else if (axes_map[j] <= 10)
|
||||
+ {
|
||||
+ /* Axes 8 through 10 are Wheel, Gas and Brake,
|
||||
+ * remap to 0, 1 and 2
|
||||
+ */
|
||||
+ joydev.dev_axes_map[j] = axes_map[j] - 8;
|
||||
+ found_axes++;
|
||||
+ }
|
||||
else if (axes_map[j] == 16 ||
|
||||
axes_map[j] == 17)
|
||||
{
|
||||
--
|
||||
1.9.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [46989] dinput: Wheel (Wheel, Gas, Brake) axes inputs aren't recognized
|
@ -1,43 +0,0 @@
|
||||
From: Louis Lenders <xerox.xerox2000x@gmail.com>
|
||||
Subject: [PATCH 1/2] dwmapi: return DWM_E_COMPOSITIONDISABLED instead of E_NOTIMPL in DwmGetTransportAttributes
|
||||
Message-Id: <20181205121826.2124-1-xerox.xerox2000x@gmail.com>
|
||||
Date: Wed, 5 Dec 2018 13:18:25 +0100
|
||||
|
||||
This versioh is with tests;
|
||||
|
||||
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
|
||||
---
|
||||
dlls/dwmapi/dwmapi_main.c | 2 +-
|
||||
include/winerror.h | 2 ++
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dwmapi/dwmapi_main.c b/dlls/dwmapi/dwmapi_main.c
|
||||
index c1ee067122..eb06d15507 100644
|
||||
--- a/dlls/dwmapi/dwmapi_main.c
|
||||
+++ b/dlls/dwmapi/dwmapi_main.c
|
||||
@@ -146,7 +146,7 @@ HRESULT WINAPI DwmGetTransportAttributes(BOOL *pfIsRemoting, BOOL *pfIsConnected
|
||||
{
|
||||
FIXME("(%p, %p, %p) stub\n", pfIsRemoting, pfIsConnected, pDwGeneration);
|
||||
|
||||
- return E_NOTIMPL;
|
||||
+ return DWM_E_COMPOSITIONDISABLED;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
diff --git a/include/winerror.h b/include/winerror.h
|
||||
index d78c91e84e..a97b405c34 100644
|
||||
--- a/include/winerror.h
|
||||
+++ b/include/winerror.h
|
||||
@@ -3090,6 +3090,8 @@ static inline HRESULT HRESULT_FROM_WIN32(unsigned int x)
|
||||
#define WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY _HRESULT_TYPEDEF_(0x80072f8e)
|
||||
#define WININET_E_DECODING_FAILED _HRESULT_TYPEDEF_(0x80072f8f)
|
||||
|
||||
+#define DWM_E_COMPOSITIONDISABLED _HRESULT_TYPEDEF_(0x80263001)
|
||||
+
|
||||
#define D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS _HRESULT_TYPEDEF_(0x887c0001)
|
||||
#define D3D11_ERROR_FILE_NOT_FOUND _HRESULT_TYPEDEF_(0x887c0002)
|
||||
#define D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS _HRESULT_TYPEDEF_(0x887c0003)
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,247 +0,0 @@
|
||||
From 43b9548b90ae22fd1b3247e5bca51795e33c9970 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 22 Feb 2015 01:10:21 +0100
|
||||
Subject: [PATCH] include: Add dxva.h header file.
|
||||
|
||||
---
|
||||
include/Makefile.in | 1 +
|
||||
include/dxva.h | 215 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 216 insertions(+)
|
||||
create mode 100644 include/dxva.h
|
||||
|
||||
diff --git a/include/Makefile.in b/include/Makefile.in
|
||||
index f1bcba3..563d10c 100644
|
||||
--- a/include/Makefile.in
|
||||
+++ b/include/Makefile.in
|
||||
@@ -245,6 +245,7 @@ SOURCES = \
|
||||
dxgicommon.idl \
|
||||
dxgiformat.idl \
|
||||
dxgitype.idl \
|
||||
+ dxva.h \
|
||||
dxva2api.idl \
|
||||
dyngraph.idl \
|
||||
endpointvolume.idl \
|
||||
diff --git a/include/dxva.h b/include/dxva.h
|
||||
new file mode 100644
|
||||
index 0000000..e311488
|
||||
--- /dev/null
|
||||
+++ b/include/dxva.h
|
||||
@@ -0,0 +1,215 @@
|
||||
+/*
|
||||
+ * Copyright 2015 Michael Müller for Pipelight
|
||||
+ *
|
||||
+ * 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
|
||||
+ */
|
||||
+
|
||||
+#ifndef __WINE_DXVA_H
|
||||
+#define __WINE_DXVA_H
|
||||
+
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
+
|
||||
+#define DXVA_USUAL_BLOCK_WIDTH 8
|
||||
+#define DXVA_USUAL_BLOCK_HEIGHT 8
|
||||
+#define DXVA_USUAL_BLOCK_SIZE (DXVA_USUAL_BLOCK_WIDTH * DXVA_USUAL_BLOCK_HEIGHT)
|
||||
+
|
||||
+#include <pshpack1.h>
|
||||
+
|
||||
+typedef struct _DXVA_PictureParameters
|
||||
+{
|
||||
+ WORD wDecodedPictureIndex;
|
||||
+ WORD wDeblockedPictureIndex;
|
||||
+ WORD wForwardRefPictureIndex;
|
||||
+ WORD wBackwardRefPictureIndex;
|
||||
+ WORD wPicWidthInMBminus1;
|
||||
+ WORD wPicHeightInMBminus1;
|
||||
+ BYTE bMacroblockWidthMinus1;
|
||||
+ BYTE bMacroblockHeightMinus1;
|
||||
+ BYTE bBlockWidthMinus1;
|
||||
+ BYTE bBlockHeightMinus1;
|
||||
+ BYTE bBPPminus1;
|
||||
+ BYTE bPicStructure;
|
||||
+ BYTE bSecondField;
|
||||
+ BYTE bPicIntra;
|
||||
+ BYTE bPicBackwardPrediction;
|
||||
+ BYTE bBidirectionalAveragingMode;
|
||||
+ BYTE bMVprecisionAndChromaRelation;
|
||||
+ BYTE bChromaFormat;
|
||||
+ BYTE bPicScanFixed;
|
||||
+ BYTE bPicScanMethod;
|
||||
+ BYTE bPicReadbackRequests;
|
||||
+ BYTE bRcontrol;
|
||||
+ BYTE bPicSpatialResid8;
|
||||
+ BYTE bPicOverflowBlocks;
|
||||
+ BYTE bPicExtrapolation;
|
||||
+ BYTE bPicDeblocked;
|
||||
+ BYTE bPicDeblockConfined;
|
||||
+ BYTE bPic4MVallowed;
|
||||
+ BYTE bPicOBMC;
|
||||
+ BYTE bPicBinPB;
|
||||
+ BYTE bMV_RPS;
|
||||
+ BYTE bReservedBits;
|
||||
+ WORD wBitstreamFcodes;
|
||||
+ WORD wBitstreamPCEelements;
|
||||
+ BYTE bBitstreamConcealmentNeed;
|
||||
+ BYTE bBitstreamConcealmentMethod;
|
||||
+} DXVA_PictureParameters, *LPDXVA_PictureParameters;
|
||||
+
|
||||
+typedef struct _DXVA_SliceInfo
|
||||
+{
|
||||
+ WORD wHorizontalPosition;
|
||||
+ WORD wVerticalPosition;
|
||||
+ DWORD dwSliceBitsInBuffer;
|
||||
+ DWORD dwSliceDataLocation;
|
||||
+ BYTE bStartCodeBitOffset;
|
||||
+ BYTE bReservedBits;
|
||||
+ WORD wMBbitOffset;
|
||||
+ WORD wNumberMBsInSlice;
|
||||
+ WORD wQuantizerScaleCode;
|
||||
+ WORD wBadSliceChopping;
|
||||
+} DXVA_SliceInfo, *LPDXVA_SliceInfo;
|
||||
+
|
||||
+typedef struct _DXVA_QmatrixData
|
||||
+{
|
||||
+ BYTE bNewQmatrix[4];
|
||||
+ WORD Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH * DXVA_USUAL_BLOCK_HEIGHT];
|
||||
+} DXVA_QmatrixData, *LPDXVA_QmatrixData;
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ union
|
||||
+ {
|
||||
+ struct
|
||||
+ {
|
||||
+ UCHAR Index7Bits : 7;
|
||||
+ UCHAR AssociatedFlag : 1;
|
||||
+ };
|
||||
+ UCHAR bPicEntry;
|
||||
+ };
|
||||
+} DXVA_PicEntry_H264;
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ USHORT wFrameWidthInMbsMinus1;
|
||||
+ USHORT wFrameHeightInMbsMinus1;
|
||||
+ DXVA_PicEntry_H264 CurrPic;
|
||||
+ UCHAR num_ref_frames;
|
||||
+ union
|
||||
+ {
|
||||
+ struct
|
||||
+ {
|
||||
+ USHORT field_pic_flag : 1;
|
||||
+ USHORT MbaffFrameFlag : 1;
|
||||
+ USHORT residual_colour_transform_flag : 1;
|
||||
+ USHORT sp_for_switch_flag : 1;
|
||||
+ USHORT chroma_format_idc : 2;
|
||||
+ USHORT RefPicFlag : 1;
|
||||
+ USHORT constrained_intra_pred_flag : 1;
|
||||
+ USHORT weighted_pred_flag : 1;
|
||||
+ USHORT weighted_bipred_idc : 2;
|
||||
+ USHORT MbsConsecutiveFlag : 1;
|
||||
+ USHORT frame_mbs_only_flag : 1;
|
||||
+ USHORT transform_8x8_mode_flag : 1;
|
||||
+ USHORT MinLumaBipredSize8x8Flag : 1;
|
||||
+ USHORT IntraPicFlag : 1;
|
||||
+ };
|
||||
+ USHORT wBitFields;
|
||||
+ };
|
||||
+ UCHAR bit_depth_luma_minus8;
|
||||
+ UCHAR bit_depth_chroma_minus8;
|
||||
+ USHORT Reserved16Bits;
|
||||
+ UINT StatusReportFeedbackNumber;
|
||||
+ DXVA_PicEntry_H264 RefFrameList[16];
|
||||
+ INT CurrFieldOrderCnt[2];
|
||||
+ INT FieldOrderCntList[16][2];
|
||||
+ CHAR pic_init_qs_minus26;
|
||||
+ CHAR chroma_qp_index_offset;
|
||||
+ CHAR second_chroma_qp_index_offset;
|
||||
+ UCHAR ContinuationFlag;
|
||||
+ CHAR pic_init_qp_minus26;
|
||||
+ UCHAR num_ref_idx_l0_active_minus1;
|
||||
+ UCHAR num_ref_idx_l1_active_minus1;
|
||||
+ UCHAR Reserved8BitsA;
|
||||
+ USHORT FrameNumList[16];
|
||||
+
|
||||
+ UINT UsedForReferenceFlags;
|
||||
+ USHORT NonExistingFrameFlags;
|
||||
+ USHORT frame_num;
|
||||
+ UCHAR log2_max_frame_num_minus4;
|
||||
+ UCHAR pic_order_cnt_type;
|
||||
+ UCHAR log2_max_pic_order_cnt_lsb_minus4;
|
||||
+ UCHAR delta_pic_order_always_zero_flag;
|
||||
+ UCHAR direct_8x8_inference_flag;
|
||||
+ UCHAR entropy_coding_mode_flag;
|
||||
+ UCHAR pic_order_present_flag;
|
||||
+ UCHAR num_slice_groups_minus1;
|
||||
+ UCHAR slice_group_map_type;
|
||||
+ UCHAR deblocking_filter_control_present_flag;
|
||||
+ UCHAR redundant_pic_cnt_present_flag;
|
||||
+ UCHAR Reserved8BitsB;
|
||||
+ USHORT slice_group_change_rate_minus1;
|
||||
+ UCHAR SliceGroupMap[810];
|
||||
+} DXVA_PicParams_H264;
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ UCHAR bScalingLists4x4[6][16];
|
||||
+ UCHAR bScalingLists8x8[2][64];
|
||||
+} DXVA_Qmatrix_H264;
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ UINT BSNALunitDataLocation;
|
||||
+ UINT SliceBytesInBuffer;
|
||||
+ USHORT wBadSliceChopping;
|
||||
+ USHORT first_mb_in_slice;
|
||||
+ USHORT NumMbsForSlice;
|
||||
+ USHORT BitOffsetToSliceData;
|
||||
+ UCHAR slice_type;
|
||||
+ UCHAR luma_log2_weight_denom;
|
||||
+ UCHAR chroma_log2_weight_denom;
|
||||
+
|
||||
+ UCHAR num_ref_idx_l0_active_minus1;
|
||||
+ UCHAR num_ref_idx_l1_active_minus1;
|
||||
+ CHAR slice_alpha_c0_offset_div2;
|
||||
+ CHAR slice_beta_offset_div2;
|
||||
+ UCHAR Reserved8Bits;
|
||||
+ DXVA_PicEntry_H264 RefPicList[2][32];
|
||||
+ SHORT Weights[2][32][3][2];
|
||||
+ CHAR slice_qs_delta;
|
||||
+ CHAR slice_qp_delta;
|
||||
+ UCHAR redundant_pic_cnt;
|
||||
+ UCHAR direct_spatial_mv_pred_flag;
|
||||
+ UCHAR cabac_init_idc;
|
||||
+ UCHAR disable_deblocking_filter_idc;
|
||||
+ USHORT slice_id;
|
||||
+} DXVA_Slice_H264_Long;
|
||||
+
|
||||
+typedef struct
|
||||
+{
|
||||
+ UINT BSNALunitDataLocation;
|
||||
+ UINT SliceBytesInBuffer;
|
||||
+ USHORT wBadSliceChopping;
|
||||
+} DXVA_Slice_H264_Short;
|
||||
+
|
||||
+#include <poppack.h>
|
||||
+
|
||||
+#ifdef __cplusplus
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+#endif /* __WINE_DXVA_H */
|
||||
--
|
||||
1.9.1
|
||||
|
@ -1,51 +0,0 @@
|
||||
From 593664b03b00092f0db519ce537f62e0c041d28e Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Sun, 4 Nov 2018 04:05:15 -0600
|
||||
Subject: [PATCH] iphlpapi: Add GetBestRoute2 stub.
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44850
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
dlls/iphlpapi/iphlpapi.spec | 2 +-
|
||||
dlls/iphlpapi/iphlpapi_main.c | 15 +++++++++++++++
|
||||
2 files changed, 16 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/iphlpapi/iphlpapi.spec b/dlls/iphlpapi/iphlpapi.spec
|
||||
index b4f77be..7a447e7 100644
|
||||
--- a/dlls/iphlpapi/iphlpapi.spec
|
||||
+++ b/dlls/iphlpapi/iphlpapi.spec
|
||||
@@ -77,7 +77,7 @@
|
||||
@ stdcall GetBestInterfaceEx( ptr ptr )
|
||||
@ stub GetBestInterfaceFromStack
|
||||
@ stdcall GetBestRoute( long long ptr )
|
||||
-#@ stub GetBestRoute2
|
||||
+@ stdcall GetBestRoute2( ptr long ptr ptr long ptr ptr )
|
||||
@ stub GetBestRouteFromStack
|
||||
#@ stub GetCurrentThreadCompartmentId
|
||||
@ stdcall GetExtendedTcpTable( ptr ptr long long long long )
|
||||
diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
|
||||
index 5df4cd8..ae8f7b4 100644
|
||||
--- a/dlls/iphlpapi/iphlpapi_main.c
|
||||
+++ b/dlls/iphlpapi/iphlpapi_main.c
|
||||
@@ -3313,3 +3313,18 @@ DWORD WINAPI GetIpInterfaceTable(ADDRESS_FAMILY family, PMIB_IPINTERFACE_TABLE *
|
||||
FIXME("(%u %p): stub\n", family, table);
|
||||
return ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
+
|
||||
+/******************************************************************
|
||||
+ * GetIpInterfaceTable (IPHLPAPI.@)
|
||||
+ */
|
||||
+DWORD WINAPI GetBestRoute2(NET_LUID *luid, NET_IFINDEX index,
|
||||
+ const SOCKADDR_INET *source, const SOCKADDR_INET *destination,
|
||||
+ ULONG options, PMIB_IPFORWARD_ROW2 bestroute,
|
||||
+ SOCKADDR_INET *bestaddress)
|
||||
+{
|
||||
+ static int once;
|
||||
+ if (!once++)
|
||||
+ FIXME("(%p, %d, %p, %p, 0x%08x, %p, %p): stub\n", luid, index, source,
|
||||
+ destination, options, bestroute, bestaddress);
|
||||
+ return ERROR_NOT_SUPPORTED;
|
||||
+}
|
||||
--
|
||||
1.9.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [44850] iphlpapi: Add GetBestRoute2 stub.
|
@ -1,60 +0,0 @@
|
||||
From 35606d9b1a51b094f4abac7a880e66c71ecd8cf3 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Sat, 3 Jan 2015 20:24:07 -0700
|
||||
Subject: [PATCH] kernel32: Add SearchPath test demonstrating the priority of
|
||||
the working directory.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/path.c | 27 +++++++++++++++++++++++++--
|
||||
1 file changed, 25 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/path.c b/dlls/kernel32/tests/path.c
|
||||
index 0a03225..ff78a39 100644
|
||||
--- a/dlls/kernel32/tests/path.c
|
||||
+++ b/dlls/kernel32/tests/path.c
|
||||
@@ -1820,10 +1820,11 @@ static void test_SearchPathA(void)
|
||||
static const CHAR testdeprelA[] = "./testdep.dll";
|
||||
static const CHAR kernel32A[] = "kernel32.dll";
|
||||
static const CHAR fileA[] = "";
|
||||
- CHAR pathA[MAX_PATH], buffA[MAX_PATH], path2A[MAX_PATH];
|
||||
- CHAR *ptrA = NULL;
|
||||
+ CHAR pathA[MAX_PATH], buffA[MAX_PATH], path2A[MAX_PATH], path3A[MAX_PATH], curdirA[MAX_PATH];
|
||||
+ CHAR tmpdirA[MAX_PATH], *ptrA = NULL;
|
||||
ULONG_PTR cookie;
|
||||
HANDLE handle;
|
||||
+ BOOL bret;
|
||||
DWORD ret;
|
||||
|
||||
GetWindowsDirectoryA(pathA, ARRAY_SIZE(pathA));
|
||||
@@ -1915,6 +1916,28 @@ static void test_SearchPathA(void)
|
||||
ret = pDeactivateActCtx(0, cookie);
|
||||
ok(ret, "failed to deactivate context, %u\n", GetLastError());
|
||||
pReleaseActCtx(handle);
|
||||
+
|
||||
+ /* test the search path priority of the working directory */
|
||||
+ GetTempPathA(sizeof(tmpdirA), tmpdirA);
|
||||
+ ret = GetCurrentDirectoryA(MAX_PATH, curdirA);
|
||||
+ ok(ret, "failed to obtain working directory.\n");
|
||||
+ sprintf(pathA, "%s\\%s", tmpdirA, kernel32A);
|
||||
+ ret = SearchPathA(NULL, kernel32A, NULL, sizeof(path2A)/sizeof(CHAR), path2A, NULL);
|
||||
+ ok(ret && ret == strlen(path2A), "got %d\n", ret);
|
||||
+ bret = CopyFileA(path2A, pathA, FALSE);
|
||||
+ ok(bret != 0, "failed to copy test executable to temp directory, %u\n", GetLastError());
|
||||
+ sprintf(path3A, "%s%s%s", curdirA, curdirA[strlen(curdirA)-1] != '\\' ? "\\" : "", kernel32A);
|
||||
+ bret = CopyFileA(path2A, path3A, FALSE);
|
||||
+ ok(bret != 0, "failed to copy test executable to launch directory, %u\n", GetLastError());
|
||||
+ bret = SetCurrentDirectoryA(tmpdirA);
|
||||
+ ok(bret, "failed to change working directory\n");
|
||||
+ ret = SearchPathA(NULL, kernel32A, ".exe", sizeof(buffA), buffA, NULL);
|
||||
+ ok(ret && ret == strlen(buffA), "got %d\n", ret);
|
||||
+ ok(strcmp(buffA, path3A) == 0, "expected %s, got %s\n", path3A, buffA);
|
||||
+ bret = SetCurrentDirectoryA(curdirA);
|
||||
+ ok(bret, "failed to reset working directory\n");
|
||||
+ DeleteFileA(path3A);
|
||||
+ DeleteFileA(pathA);
|
||||
}
|
||||
|
||||
static void test_SearchPathW(void)
|
||||
--
|
||||
1.9.1
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "8039941c52758113955d376bd7b6b6e1e5b5f76c"
|
||||
echo "d48ffbdc014954907d3280a3b53eb9b478b10195"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -132,7 +132,6 @@ patch_enable_all ()
|
||||
enable_dinput_axis_recalc="$1"
|
||||
enable_dinput_reconnect_joystick="$1"
|
||||
enable_dinput_remap_joystick="$1"
|
||||
enable_dinput_wheel_support="$1"
|
||||
enable_dsound_EAX="$1"
|
||||
enable_dsound_Fast_Mixer="$1"
|
||||
enable_dwmapi_DwmGetTransportAttributes="$1"
|
||||
@ -155,7 +154,6 @@ patch_enable_all ()
|
||||
enable_imm32_message_on_focus="$1"
|
||||
enable_include_winsock="$1"
|
||||
enable_inseng_Implementation="$1"
|
||||
enable_iphlpapi_GetBestRoute2="$1"
|
||||
enable_iphlpapi_System_Ping="$1"
|
||||
enable_kernel32_CopyFileEx="$1"
|
||||
enable_kernel32_Debugger="$1"
|
||||
@ -301,7 +299,6 @@ patch_enable_all ()
|
||||
enable_user32_msgbox_Support_WM_COPY_mesg="$1"
|
||||
enable_uxtheme_CloseThemeClass="$1"
|
||||
enable_uxtheme_GTK_Theming="$1"
|
||||
enable_version_VerFindFileA="$1"
|
||||
enable_version_VerQueryValue="$1"
|
||||
enable_widl_SLTG_Typelib_Support="$1"
|
||||
enable_windowscodecs_GIF_Encoder="$1"
|
||||
@ -531,9 +528,6 @@ patch_enable ()
|
||||
dinput-remap-joystick)
|
||||
enable_dinput_remap_joystick="$2"
|
||||
;;
|
||||
dinput-wheel-support)
|
||||
enable_dinput_wheel_support="$2"
|
||||
;;
|
||||
dsound-EAX)
|
||||
enable_dsound_EAX="$2"
|
||||
;;
|
||||
@ -600,9 +594,6 @@ patch_enable ()
|
||||
inseng-Implementation)
|
||||
enable_inseng_Implementation="$2"
|
||||
;;
|
||||
iphlpapi-GetBestRoute2)
|
||||
enable_iphlpapi_GetBestRoute2="$2"
|
||||
;;
|
||||
iphlpapi-System_Ping)
|
||||
enable_iphlpapi_System_Ping="$2"
|
||||
;;
|
||||
@ -1038,9 +1029,6 @@ patch_enable ()
|
||||
uxtheme-GTK_Theming)
|
||||
enable_uxtheme_GTK_Theming="$2"
|
||||
;;
|
||||
version-VerFindFileA)
|
||||
enable_version_VerFindFileA="$2"
|
||||
;;
|
||||
version-VerQueryValue)
|
||||
enable_version_VerQueryValue="$2"
|
||||
;;
|
||||
@ -2164,21 +2152,19 @@ fi
|
||||
# Patchset advapi32-LsaLookupSids
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/advapi32/lsa.c, dlls/advapi32/security.c, dlls/advapi32/tests/security.c, server/token.c
|
||||
# | * dlls/advapi32/lsa.c, dlls/advapi32/security.c, dlls/advapi32/tests/security.c
|
||||
# |
|
||||
if test "$enable_advapi32_LsaLookupSids" -eq 1; then
|
||||
patch_apply advapi32-LsaLookupSids/0001-advapi32-Initialize-buffer-length-to-zero-in-LsaLook.patch
|
||||
patch_apply advapi32-LsaLookupSids/0002-advapi32-Prepend-a-hidden-LSA_TRUST_INFORMATION-in-L.patch
|
||||
patch_apply advapi32-LsaLookupSids/0003-advapi32-Prepend-a-hidden-LSA_TRUST_INFORMATION-in-L.patch
|
||||
patch_apply advapi32-LsaLookupSids/0004-advapi32-Fallback-to-Sid-string-when-LookupAccountSi.patch
|
||||
patch_apply advapi32-LsaLookupSids/0006-server-Create-primary-group-using-DOMAIN_GROUP_RID_U.patch
|
||||
patch_apply advapi32-LsaLookupSids/0007-advapi32-Fix-name-and-use-of-DOMAIN_GROUP_RID_USERS.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Qian Hong", "advapi32: Initialize buffer length to zero in LsaLookupSids to prevent crash.", 2 },';
|
||||
printf '%s\n' '+ { "Qian Hong", "advapi32: Prepend a hidden LSA_TRUST_INFORMATION in LsaLookupSids to avoid crash when Domains[-1] incorrectly accessed by application.", 2 },';
|
||||
printf '%s\n' '+ { "Qian Hong", "advapi32: Prepend a hidden LSA_TRUST_INFORMATION in LsaLookupNames2 to avoid crash when Domains[-1] incorrectly accessed by application.", 2 },';
|
||||
printf '%s\n' '+ { "Qian Hong", "advapi32: Fallback to Sid string when LookupAccountSid fails.", 1 },';
|
||||
printf '%s\n' '+ { "Qian Hong", "server: Create primary group using DOMAIN_GROUP_RID_USERS.", 1 },';
|
||||
printf '%s\n' '+ { "Qian Hong", "advapi32: Fix name and use of DOMAIN_GROUP_RID_USERS.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
@ -3120,23 +3106,6 @@ if test "$enable_dinput_remap_joystick" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset dinput-wheel-support
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#46989] dinput: Wheel (Wheel, Gas, Brake) axes inputs aren't recognized
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/dinput/joystick_linux.c, dlls/winejoystick.drv/joystick_linux.c
|
||||
# |
|
||||
if test "$enable_dinput_wheel_support" -eq 1; then
|
||||
patch_apply dinput-wheel-support/0001-winejoystick-Add-support-for-wheel-axes.patch
|
||||
patch_apply dinput-wheel-support/0002-dinput-Map-wheel-gas-and-brake-axes-as-well.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Tim Schumacher", "winejoystick: Add support for wheel axes.", 1 },';
|
||||
printf '%s\n' '+ { "Tim Schumacher", "dinput: Map wheel, gas, and brake axes as well.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset dsound-Fast_Mixer
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -3215,14 +3184,11 @@ fi
|
||||
# | Vista/Win7 mode)
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure, configure.ac, dlls/dwmapi/dwmapi_main.c, dlls/dwmapi/tests/Makefile.in, dlls/dwmapi/tests/dwmapi.c,
|
||||
# | include/dwmapi.h, include/winerror.h
|
||||
# | * configure, configure.ac, dlls/dwmapi/tests/Makefile.in, dlls/dwmapi/tests/dwmapi.c, include/dwmapi.h
|
||||
# |
|
||||
if test "$enable_dwmapi_DwmGetTransportAttributes" -eq 1; then
|
||||
patch_apply dwmapi-DwmGetTransportAttributes/0001-dwmapi-return-DWM_E_COMPOSITIONDISABLED-instead-of-ENOTIMPL-in-DwmGetTransportAttributes.patch
|
||||
patch_apply dwmapi-DwmGetTransportAttributes/0002-dwmapi-add-initial-tests.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Louis Lenders", "dwmapi: Return DWM_E_COMPOSITIONDISABLED instead of E_NOTIMPL in DwmGetTransportAttributes.", 1 },';
|
||||
printf '%s\n' '+ { "Louis Lenders", "dwampi: Add initial tests.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
@ -3301,13 +3267,12 @@ fi
|
||||
# | * configure.ac, dlls/dxva2/Makefile.in, dlls/dxva2/backend.idl, dlls/dxva2/devicemanager.c, dlls/dxva2/dxva2_private.h,
|
||||
# | dlls/dxva2/genericdecoder.c, dlls/dxva2/main.c, dlls/dxva2/softwareprocessor.c, dlls/dxva2/tests/Makefile.in,
|
||||
# | dlls/dxva2/tests/dxva2.c, dlls/dxva2/vaapi-h264.c, dlls/dxva2/vaapi-mpeg2.c, dlls/dxva2/vaapi.c,
|
||||
# | dlls/dxva2/videoservices.c, include/Makefile.in, include/dxva.h, include/dxva2api.idl
|
||||
# | dlls/dxva2/videoservices.c, include/dxva2api.idl
|
||||
# |
|
||||
if test "$enable_dxva2_Video_Decoder" -eq 1; then
|
||||
patch_apply dxva2-Video_Decoder/0001-dxva2-Implement-semi-stub-for-Direct3DDeviceManager9.patch
|
||||
patch_apply dxva2-Video_Decoder/0002-dxva2-Implement-stubbed-interfaces-for-IDirectXVideo.patch
|
||||
patch_apply dxva2-Video_Decoder/0004-dxva2-Implement-stubbed-DirectX-Software-VideoProces.patch
|
||||
patch_apply dxva2-Video_Decoder/0005-include-Add-dxva.h-header-file.patch
|
||||
patch_apply dxva2-Video_Decoder/0006-dxva2-tests-Add-tests-for-dxva2-decoder.patch
|
||||
patch_apply dxva2-Video_Decoder/0007-dxva2-Initial-implementation-of-MPEG2-decoder-using-.patch
|
||||
patch_apply dxva2-Video_Decoder/0008-dxva2-Implement-h264-decoder.patch
|
||||
@ -3319,7 +3284,6 @@ if test "$enable_dxva2_Video_Decoder" -eq 1; then
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "dxva2: Implement semi-stub for Direct3DDeviceManager9 interface.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "dxva2: Implement stubbed interfaces for IDirectXVideo{Acceleration,Decoder,Processor}Service.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "dxva2: Implement stubbed DirectX Software VideoProcessor interface.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "include: Add dxva.h header file.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "dxva2/tests: Add tests for dxva2 decoder.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "dxva2: Initial implementation of MPEG2 decoder using vaapi backend.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "dxva2: Implement h264 decoder.", 1 },';
|
||||
@ -3795,6 +3759,7 @@ if test "$enable_eventfd_synchronization" -eq 1; then
|
||||
printf '%s\n' '+ { "Zebediah Figura", "ntdll: Let the server know when we are doing a message wait.", 1 },';
|
||||
printf '%s\n' '+ { "Zebediah Figura", "ntdll: Avoid server_select() when waiting for critical sections.", 1 },';
|
||||
printf '%s\n' '+ { "Zebediah Figura", "user32: Remove hooks that time out.", 1 },';
|
||||
printf '%s\n' '+ { "Zebediah Figura", "server: Don'\''t check for a hung queue when sending low-level hooks.", 1 },';
|
||||
printf '%s\n' '+ { "Zebediah Figura", "kernel32/tests: Zigzag test.", 1 },';
|
||||
printf '%s\n' '+ { "Zebediah Figura", "=?UTF-8?q?server:=20Try=20to=20remove=20a=20pre?= =?UTF-8?q?=C3=ABxisting=20shm=20file.?=.", 1 },';
|
||||
printf '%s\n' '+ { "Zebediah Figura", "ntdll: Implement NtQuerySemaphore().", 1 },';
|
||||
@ -4052,21 +4017,6 @@ if test "$enable_inseng_Implementation" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset iphlpapi-GetBestRoute2
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#44850] iphlpapi: Add GetBestRoute2 stub.
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/iphlpapi/iphlpapi.spec, dlls/iphlpapi/iphlpapi_main.c
|
||||
# |
|
||||
if test "$enable_iphlpapi_GetBestRoute2" -eq 1; then
|
||||
patch_apply iphlpapi-GetBestRoute2/0001-iphlpapi-Add-GetBestRoute2-stub.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Austin English", "iphlpapi: Add GetBestRoute2 stub.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset iphlpapi-System_Ping
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -4211,13 +4161,11 @@ fi
|
||||
# | * [#23934] CreateProcess does not prioritize the working directory over the system search path
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/process.c, dlls/kernel32/tests/path.c
|
||||
# | * dlls/kernel32/process.c
|
||||
# |
|
||||
if test "$enable_kernel32_NeedCurrentDirectoryForExePath" -eq 1; then
|
||||
patch_apply kernel32-NeedCurrentDirectoryForExePath/0001-kernel32-Add-SearchPath-test-demonstrating-the-prior.patch
|
||||
patch_apply kernel32-NeedCurrentDirectoryForExePath/0003-kernel32-Consider-the-working-directory-first-when-l.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Erich E. Hoover", "kernel32: Add SearchPath test demonstrating the priority of the working directory.", 1 },';
|
||||
printf '%s\n' '+ { "Erich E. Hoover", "kernel32: Consider the working directory first when launching executables with CreateProcess.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
@ -6343,18 +6291,6 @@ if test "$enable_uxtheme_GTK_Theming" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset version-VerFindFileA
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/version/tests/Makefile.in, dlls/version/tests/install.c, dlls/version/version.c
|
||||
# |
|
||||
if test "$enable_version_VerFindFileA" -eq 1; then
|
||||
patch_apply version-VerFindFileA/0001-version-Correctly-return-VFF_CURNEDEST-in-VerFindFil.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "version: Correctly return VFF_CURNEDEST in VerFindFileA.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset version-VerQueryValue
|
||||
# |
|
||||
# | Modified files:
|
||||
|
@ -1,286 +0,0 @@
|
||||
From 1e3065d6354cfd372da28d53162559e82b8d752b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Wed, 2 Mar 2016 01:46:05 +0100
|
||||
Subject: version: Correctly return VFF_CURNEDEST in VerFindFileA.
|
||||
|
||||
---
|
||||
dlls/version/tests/Makefile.in | 2 +-
|
||||
dlls/version/tests/install.c | 151 +++++++++++++++++++++++++++++++++++++++--
|
||||
dlls/version/version.c | 38 +++++++----
|
||||
3 files changed, 169 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/dlls/version/tests/Makefile.in b/dlls/version/tests/Makefile.in
|
||||
index 3c155c9..a1e24f9 100644
|
||||
--- a/dlls/version/tests/Makefile.in
|
||||
+++ b/dlls/version/tests/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
TESTDLL = version.dll
|
||||
-IMPORTS = version
|
||||
+IMPORTS = version shell32
|
||||
|
||||
C_SRCS = \
|
||||
info.c \
|
||||
diff --git a/dlls/version/tests/install.c b/dlls/version/tests/install.c
|
||||
index 9b84dce..b06125f 100644
|
||||
--- a/dlls/version/tests/install.c
|
||||
+++ b/dlls/version/tests/install.c
|
||||
@@ -24,11 +24,13 @@
|
||||
#include "winbase.h"
|
||||
#include "winerror.h"
|
||||
#include "winver.h"
|
||||
+#include "shlobj.h"
|
||||
|
||||
static void test_find_file(void)
|
||||
{
|
||||
DWORD ret;
|
||||
UINT dwCur, dwOut ;
|
||||
+ char tmp[MAX_PATH];
|
||||
char appdir[MAX_PATH];
|
||||
char curdir[MAX_PATH];
|
||||
char filename[MAX_PATH];
|
||||
@@ -115,10 +117,11 @@ static void test_find_file(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
- if(!GetModuleFileNameA(NULL, filename, MAX_PATH) ||
|
||||
- !GetSystemDirectoryA(windir, MAX_PATH) ||
|
||||
- !GetTempPathA(MAX_PATH, appdir))
|
||||
- trace("GetModuleFileNameA, GetSystemDirectoryA or GetTempPathA failed\n");
|
||||
+ if(!GetSystemDirectoryA(windir, MAX_PATH) ||
|
||||
+ !SHGetSpecialFolderPathA(0, appdir, CSIDL_PROGRAM_FILES, FALSE) ||
|
||||
+ !GetTempPathA(MAX_PATH, tmp) ||
|
||||
+ !GetTempFileNameA(tmp, "tes", 0, filename))
|
||||
+ ok(0, "GetSystemDirectoryA, SHGetSpecialFolderPathA, GetTempPathA or GetTempFileNameA failed\n");
|
||||
else {
|
||||
char *p = strrchr(filename, '\\');
|
||||
if(p) {
|
||||
@@ -150,7 +153,7 @@ static void test_find_file(void)
|
||||
memset(outBuf, 0, MAX_PATH);
|
||||
memset(curdir, 0, MAX_PATH);
|
||||
ret = VerFindFileA(VFFF_ISSHAREDFILE, filename, NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
- todo_wine ok(VFF_CURNEDEST == ret, "Wrong return value got %x expected VFF_CURNEDEST\n", ret);
|
||||
+ ok(VFF_CURNEDEST == ret, "Wrong return value got %x expected VFF_CURNEDEST\n", ret);
|
||||
ok(dwOut == 1 + strlen(windir), "Wrong length of buffer for current location: "
|
||||
"got %d(%s) expected %d\n", dwOut, outBuf, lstrlenA(windir)+1);
|
||||
|
||||
@@ -159,9 +162,145 @@ static void test_find_file(void)
|
||||
memset(outBuf, 0, MAX_PATH);
|
||||
memset(curdir, 0, MAX_PATH);
|
||||
ret = VerFindFileA(0, filename, NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
- todo_wine ok(VFF_CURNEDEST == ret, "Wrong return value got %x expected VFF_CURNEDEST\n", ret);
|
||||
+ ok(VFF_CURNEDEST == ret, "Wrong return value got %x expected VFF_CURNEDEST\n", ret);
|
||||
ok(dwOut == 1 + strlen(appdir), "Wrong length of buffer for current location: "
|
||||
"got %d(%s) expected %d\n", dwOut, outBuf, lstrlenA(appdir)+1);
|
||||
+
|
||||
+ /* search for filename */
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, filename, NULL, NULL, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, filename, NULL, empty, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, filename, NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, filename, NULL, NULL, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, filename, NULL, empty, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, filename, NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ /* search for regedit */
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "regedit", NULL, NULL, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(!ret, "Wrong return value got %x expected 0\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "regedit", NULL, empty, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(!ret, "Wrong return value got %x expected 0\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "regedit", NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit", NULL, NULL, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit", NULL, empty, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit", NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ /* search for regedit.exe */
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "regedit.exe", NULL, NULL, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "regedit.exe", NULL, empty, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "regedit.exe", NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit.exe", NULL, NULL, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit.exe", NULL, empty, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit.exe", NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ /* nonexistent filename */
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "doesnotexist.exe", NULL, NULL, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(!ret, "Wrong return value got %x expected 0\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "doesnotexist.exe", NULL, empty, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(!ret, "Wrong return value got %x expected 0\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "doesnotexist.exe", NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(0, "doesnotexist.exe", NULL, "C:\\random_path_does_not_exist", curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "doesnotexist.exe", NULL, NULL, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "doesnotexist.exe", NULL, empty, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "doesnotexist.exe", NULL, appdir, curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ dwCur=MAX_PATH;
|
||||
+ dwOut=MAX_PATH;
|
||||
+ ret = VerFindFileA(VFFF_ISSHAREDFILE, "doesnotexist.exe", NULL, "C:\\random_path_does_not_exist", curdir, &dwCur, outBuf, &dwOut);
|
||||
+ ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret);
|
||||
+
|
||||
+ DeleteFileA(filename);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/dlls/version/version.c b/dlls/version/version.c
|
||||
index 43f5c18..61040c8 100644
|
||||
--- a/dlls/version/version.c
|
||||
+++ b/dlls/version/version.c
|
||||
@@ -1109,16 +1109,22 @@ static int testFileExistenceA( char const * path, char const * file, BOOL excl )
|
||||
|
||||
fileinfo.cBytes = sizeof(OFSTRUCT);
|
||||
|
||||
- strcpy(filename, path);
|
||||
- filenamelen = strlen(filename);
|
||||
+ if (path)
|
||||
+ {
|
||||
+ strcpy(filename, path);
|
||||
+ filenamelen = strlen(filename);
|
||||
|
||||
- /* Add a trailing \ if necessary */
|
||||
- if(filenamelen) {
|
||||
- if(filename[filenamelen - 1] != '\\')
|
||||
- strcat(filename, "\\");
|
||||
+ /* Add a trailing \ if necessary */
|
||||
+ if(filenamelen)
|
||||
+ {
|
||||
+ if(filename[filenamelen - 1] != '\\')
|
||||
+ strcat(filename, "\\");
|
||||
+ }
|
||||
+ else /* specify the current directory */
|
||||
+ strcpy(filename, ".\\");
|
||||
}
|
||||
- else /* specify the current directory */
|
||||
- strcpy(filename, ".\\");
|
||||
+ else
|
||||
+ filename[0] = 0;
|
||||
|
||||
/* Create the full pathname */
|
||||
strcat(filename, file);
|
||||
@@ -1208,10 +1214,10 @@ DWORD WINAPI VerFindFileA(
|
||||
{
|
||||
if(testFileExistenceA(destDir, lpszFilename, FALSE)) curDir = destDir;
|
||||
else if(lpszAppDir && testFileExistenceA(lpszAppDir, lpszFilename, FALSE))
|
||||
- {
|
||||
curDir = lpszAppDir;
|
||||
+
|
||||
+ if(!testFileExistenceA(systemDir, lpszFilename, FALSE))
|
||||
retval |= VFF_CURNEDEST;
|
||||
- }
|
||||
}
|
||||
}
|
||||
else /* not a shared file */
|
||||
@@ -1222,15 +1228,17 @@ DWORD WINAPI VerFindFileA(
|
||||
GetWindowsDirectoryA( winDir, MAX_PATH );
|
||||
if(testFileExistenceA(destDir, lpszFilename, FALSE)) curDir = destDir;
|
||||
else if(testFileExistenceA(winDir, lpszFilename, FALSE))
|
||||
- {
|
||||
curDir = winDir;
|
||||
- retval |= VFF_CURNEDEST;
|
||||
- }
|
||||
else if(testFileExistenceA(systemDir, lpszFilename, FALSE))
|
||||
- {
|
||||
curDir = systemDir;
|
||||
- retval |= VFF_CURNEDEST;
|
||||
+
|
||||
+ if (lpszAppDir && lpszAppDir[0])
|
||||
+ {
|
||||
+ if(!testFileExistenceA(lpszAppDir, lpszFilename, FALSE))
|
||||
+ retval |= VFF_CURNEDEST;
|
||||
}
|
||||
+ else if(testFileExistenceA(NULL, lpszFilename, FALSE))
|
||||
+ retval |= VFF_CURNEDEST;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.7.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Correctly return VFF_CURNEDEST flag in VerFindFileA
|
@ -1,4 +1,4 @@
|
||||
From bf9b5ec8a095b59e64452a321f7396bfc6434a0e Mon Sep 17 00:00:00 2001
|
||||
From 913dada333cd12aae0080bfe3919467fcf709621 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 8 Jun 2017 23:50:03 +0200
|
||||
Subject: [PATCH] programs/winedevice: Load some common drivers and fix ldr
|
||||
@ -10,7 +10,7 @@ Subject: [PATCH] programs/winedevice: Load some common drivers and fix ldr
|
||||
2 files changed, 78 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
index 030c955..d528347 100644
|
||||
index ac31a4d..a4456ae 100644
|
||||
--- a/dlls/ntoskrnl.exe/tests/driver.c
|
||||
+++ b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
@@ -39,6 +39,8 @@ static const WCHAR driver_device[] = {'\\','D','e','v','i','c','e',
|
||||
@ -22,7 +22,7 @@ index 030c955..d528347 100644
|
||||
static HANDLE okfile;
|
||||
static LONG successes;
|
||||
static LONG failures;
|
||||
@@ -1172,6 +1174,7 @@ static void test_resource(void)
|
||||
@@ -1203,6 +1205,7 @@ static void test_resource(void)
|
||||
ok(status == STATUS_SUCCESS, "got status %#x\n", status);
|
||||
}
|
||||
|
||||
@ -30,8 +30,8 @@ index 030c955..d528347 100644
|
||||
static void test_lookup_thread(void)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@@ -1187,6 +1190,52 @@ static void test_lookup_thread(void)
|
||||
"PsLookupThreadByThreadId returned %#x\n", status);
|
||||
@@ -1246,6 +1249,52 @@ static void WINAPI main_test_task(DEVICE_OBJECT *device, void *context)
|
||||
IoCompleteRequest(irp, IO_NO_INCREMENT);
|
||||
}
|
||||
|
||||
+static void test_default_modules(void)
|
||||
@ -80,10 +80,10 @@ index 030c955..d528347 100644
|
||||
+ ok(dxgmms1, "Failed to find dxgmms1.sys\n");
|
||||
+}
|
||||
+
|
||||
static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info)
|
||||
static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *stack)
|
||||
{
|
||||
ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength;
|
||||
@@ -1229,6 +1278,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st
|
||||
@@ -1291,6 +1340,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st
|
||||
test_stack_callout();
|
||||
test_lookaside_list();
|
||||
test_ob_reference(test_input->path);
|
||||
@ -91,7 +91,7 @@ index 030c955..d528347 100644
|
||||
test_resource();
|
||||
test_lookup_thread();
|
||||
|
||||
@@ -1343,6 +1393,8 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry)
|
||||
@@ -1404,6 +1454,8 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry)
|
||||
|
||||
DbgPrint("loading driver\n");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user