From 17fdb93f5547b2f91812e54968c8aea12500121d Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 12 Feb 2020 17:33:55 -0600 Subject: [PATCH] Rebase against 3d57cc2863f2f9a5ace40d29317b3ff4357fd119. --- ...ndline-option-patches-to-show-the-pa.patch | 34 ++-- ...er-Add-commandline-option-check-libs.patch | 14 +- .../0001-include-Add-adserr.h.patch | 83 --------- ...002-activeds-Implement-ADsOpenObject.patch | 161 ------------------ ...Location-hash-property-s-getter-impl.patch | 55 +++--- ...retrieving-DOS-attributes-in-NtQuery.patch | 12 +- ...t-HashLinks-field-in-LDR-module-data.patch | 40 ++--- patches/patchinstall.sh | 11 +- 8 files changed, 81 insertions(+), 329 deletions(-) delete mode 100644 patches/activeds-ADsOpenObject/0001-include-Add-adserr.h.patch delete mode 100644 patches/activeds-ADsOpenObject/0002-activeds-Implement-ADsOpenObject.patch diff --git a/patches/Staging/0003-loader-Add-commandline-option-patches-to-show-the-pa.patch b/patches/Staging/0003-loader-Add-commandline-option-patches-to-show-the-pa.patch index f92aac1e..f0329dcd 100644 --- a/patches/Staging/0003-loader-Add-commandline-option-patches-to-show-the-pa.patch +++ b/patches/Staging/0003-loader-Add-commandline-option-patches-to-show-the-pa.patch @@ -1,4 +1,4 @@ -From fa73044dd60bae90b9a5ec850205a07579d4db17 Mon Sep 17 00:00:00 2001 +From d216f85a593a09e7983d9178fb3e1f20bfcf08cc Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 29 May 2014 23:43:45 +0200 Subject: [PATCH] loader: Add commandline option --patches to show the patch @@ -14,13 +14,14 @@ Subject: [PATCH] loader: Add commandline option --patches to show the patch 6 files changed, 58 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c -index bb75d9c..21e2db6 100644 +index c29a1c26c..8906e1942 100644 --- a/dlls/ntdll/misc.c +++ b/dlls/ntdll/misc.c -@@ -61,6 +61,14 @@ const char * CDECL NTDLL_wine_get_version(void) +@@ -60,6 +60,14 @@ const char * CDECL NTDLL_wine_get_version(void) + return wine_get_version(); } - /********************************************************************* ++/********************************************************************* + * wine_get_patches (NTDLL.@) + */ +const void * CDECL NTDLL_wine_get_patches(void) @@ -28,15 +29,14 @@ index bb75d9c..21e2db6 100644 + return wine_get_patches(); +} + -+/********************************************************************* + /********************************************************************* * wine_get_build_id (NTDLL.@) */ - const char * CDECL NTDLL_wine_get_build_id(void) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec -index 292b0f6..fb45a94 100644 +index 7aa953ca6..cf7d5b6f9 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec -@@ -1516,6 +1516,7 @@ +@@ -1566,6 +1566,7 @@ # Version @ cdecl wine_get_version() NTDLL_wine_get_version @@ -45,10 +45,10 @@ index 292b0f6..fb45a94 100644 @ cdecl wine_get_host_version(ptr ptr) NTDLL_wine_get_host_version diff --git a/include/wine/library.h b/include/wine/library.h -index 242bb69..fae73fe 100644 +index a6fe28059..511bf4722 100644 --- a/include/wine/library.h +++ b/include/wine/library.h -@@ -43,6 +43,7 @@ extern const char *wine_get_data_dir(void); +@@ -47,6 +47,7 @@ extern const char *wine_get_data_dir(void); extern const char *wine_get_server_dir(void); extern const char *wine_get_user_name(void); extern const char *wine_get_version(void); @@ -57,10 +57,10 @@ index 242bb69..fae73fe 100644 extern void wine_init_argv0_path( const char *argv0 ); extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var ); diff --git a/libs/wine/config.c b/libs/wine/config.c -index 3c9110b..5da6263 100644 +index 2a3314cbf..5b66c063d 100644 --- a/libs/wine/config.c +++ b/libs/wine/config.c -@@ -522,6 +522,12 @@ const char *wine_get_version(void) +@@ -504,6 +504,12 @@ const char *wine_get_version(void) return PACKAGE_VERSION; } @@ -74,19 +74,19 @@ index 3c9110b..5da6263 100644 const char *wine_get_build_id(void) { diff --git a/libs/wine/wine.map b/libs/wine/wine.map -index 2159fac..7cb2918 100644 +index 3f2c430fa..ca46979f5 100644 --- a/libs/wine/wine.map +++ b/libs/wine/wine.map -@@ -90,6 +90,7 @@ WINE_1.0 +@@ -28,6 +28,7 @@ WINE_1.0 wine_get_ss; wine_get_user_name; wine_get_version; + wine_get_patches; wine_init; wine_init_argv0_path; - wine_is_dbcs_leadbyte; + wine_ldt_alloc_entries; diff --git a/loader/main.c b/loader/main.c -index f197cf8..f662912 100644 +index f197cf802..f6629128d 100644 --- a/loader/main.c +++ b/loader/main.c @@ -54,7 +54,8 @@ static void check_command_line( int argc, char *argv[] ) @@ -146,5 +146,5 @@ index f197cf8..f662912 100644 -- -1.9.1 +2.25.0 diff --git a/patches/Staging/0004-loader-Add-commandline-option-check-libs.patch b/patches/Staging/0004-loader-Add-commandline-option-check-libs.patch index 7c95e5e6..5a1de509 100644 --- a/patches/Staging/0004-loader-Add-commandline-option-check-libs.patch +++ b/patches/Staging/0004-loader-Add-commandline-option-check-libs.patch @@ -1,4 +1,4 @@ -From 5c9a371d0da2f0835ab86afb4f9264634a993375 Mon Sep 17 00:00:00 2001 +From c07a490a6950f4efe563e38ca78b1aa459dfad86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Wed, 28 May 2014 19:50:51 +0200 Subject: [PATCH] loader: Add commandline option --check-libs. @@ -214,18 +214,18 @@ index 2a569f5b7..5f10c3f9d 100644 * wine_dlsym */ diff --git a/libs/wine/wine.map b/libs/wine/wine.map -index 13b8d4715..3cfd3a24c 100644 +index ca46979f5..22a4e73b0 100644 --- a/libs/wine/wine.map +++ b/libs/wine/wine.map -@@ -13,6 +13,7 @@ WINE_1.0 - wine_cp_get_table; - wine_cp_mbstowcs; - wine_cp_wcstombs; +@@ -9,6 +9,7 @@ WINE_1.0 + wine_anon_mmap; + wine_casemap_lower; + wine_casemap_upper; + wine_dladdr; wine_dlclose; wine_dll_enum_load_path; wine_dll_set_callback; -@@ -28,6 +29,7 @@ WINE_1.0 +@@ -24,6 +25,7 @@ WINE_1.0 wine_get_es; wine_get_fs; wine_get_gs; diff --git a/patches/activeds-ADsOpenObject/0001-include-Add-adserr.h.patch b/patches/activeds-ADsOpenObject/0001-include-Add-adserr.h.patch deleted file mode 100644 index 24a993ed..00000000 --- a/patches/activeds-ADsOpenObject/0001-include-Add-adserr.h.patch +++ /dev/null @@ -1,83 +0,0 @@ -From e5500b9a3c7d36563725dc7975c2436a02165906 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 15 Nov 2019 15:46:23 +0800 -Subject: [PATCH] include: Add adserr.h. - -Signed-off-by: Dmitry Timoshkov ---- - include/Makefile.in | 1 + - include/adserr.h | 50 +++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 51 insertions(+) - create mode 100644 include/adserr.h - -diff --git a/include/Makefile.in b/include/Makefile.in -index cbad4d604f..2e0a10d650 100644 ---- a/include/Makefile.in -+++ b/include/Makefile.in -@@ -7,6 +7,7 @@ SOURCES = \ - activaut.idl \ - activdbg.idl \ - activscp.idl \ -+ adserr.h \ - adshlp.h \ - advpub.h \ - af_irda.h \ -diff --git a/include/adserr.h b/include/adserr.h -new file mode 100644 -index 0000000000..83da568763 ---- /dev/null -+++ b/include/adserr.h -@@ -0,0 +1,50 @@ -+/* -+ * Copyright (C) 2019 Dmitry Timoshkov -+ * -+ * 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 __ADSERR_H -+#define __ADSERR_H -+ -+#ifdef RC_INVOKED -+#define _HRESULT_TYPEDEF_(x) (x) -+#else -+#define _HRESULT_TYPEDEF_(x) ((HRESULT)x) -+#endif -+ -+#define E_ADS_BAD_PATHNAME _HRESULT_TYPEDEF_(0x80005000) -+#define E_ADS_INVALID_DOMAIN_OBJECT _HRESULT_TYPEDEF_(0x80005001) -+#define E_ADS_INVALID_USER_OBJECT _HRESULT_TYPEDEF_(0x80005002) -+#define E_ADS_INVALID_COMPUTER_OBJECT _HRESULT_TYPEDEF_(0x80005003) -+#define E_ADS_UNKNOWN_OBJECT _HRESULT_TYPEDEF_(0x80005004) -+#define E_ADS_PROPERTY_NOT_SET _HRESULT_TYPEDEF_(0x80005005) -+#define E_ADS_PROPERTY_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x80005006) -+#define E_ADS_PROPERTY_INVALID _HRESULT_TYPEDEF_(0x80005007) -+#define E_ADS_BAD_PARAMETER _HRESULT_TYPEDEF_(0x80005008) -+#define E_ADS_OBJECT_UNBOUND _HRESULT_TYPEDEF_(0x80005009) -+#define E_ADS_PROPERTY_NOT_MODIFIED _HRESULT_TYPEDEF_(0x8000500A) -+#define E_ADS_PROPERTY_MODIFIED _HRESULT_TYPEDEF_(0x8000500B) -+#define E_ADS_CANT_CONVERT_DATATYPE _HRESULT_TYPEDEF_(0x8000500C) -+#define E_ADS_PROPERTY_NOT_FOUND _HRESULT_TYPEDEF_(0x8000500D) -+#define E_ADS_OBJECT_EXISTS _HRESULT_TYPEDEF_(0x8000500E) -+#define E_ADS_SCHEMA_VIOLATION _HRESULT_TYPEDEF_(0x8000500F) -+#define E_ADS_COLUMN_NOT_SET _HRESULT_TYPEDEF_(0x80005010) -+#define S_ADS_ERRORSOCCURRED _HRESULT_TYPEDEF_(0x00005011) -+#define S_ADS_NOMORE_ROWS _HRESULT_TYPEDEF_(0x00005012) -+#define S_ADS_NOMORE_COLUMNS _HRESULT_TYPEDEF_(0x00005013) -+#define E_ADS_INVALID_FILTER _HRESULT_TYPEDEF_(0x80005014) -+ -+#endif /* __ADSERR_H */ --- -2.17.1 - diff --git a/patches/activeds-ADsOpenObject/0002-activeds-Implement-ADsOpenObject.patch b/patches/activeds-ADsOpenObject/0002-activeds-Implement-ADsOpenObject.patch deleted file mode 100644 index 42444c61..00000000 --- a/patches/activeds-ADsOpenObject/0002-activeds-Implement-ADsOpenObject.patch +++ /dev/null @@ -1,161 +0,0 @@ -From c12e335b0df736fe2a2f2447d0d751de7cc21d37 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 15 Nov 2019 17:37:11 +0800 -Subject: [PATCH 2/5] activeds: Implement ADsOpenObject. -Content-Type: text/plain; charset=UTF-8 -To: wine-devel@winehq.org - -Signed-off-by: Dmitry Timoshkov ---- - dlls/activeds/Makefile.in | 1 + - dlls/activeds/activeds_main.c | 80 +++++++++++++++++++++++++++++++++-- - include/iads.idl | 14 ++++++ - 3 files changed, 91 insertions(+), 4 deletions(-) - -diff --git a/dlls/activeds/Makefile.in b/dlls/activeds/Makefile.in -index 20578a93bc..54f86d661e 100644 ---- a/dlls/activeds/Makefile.in -+++ b/dlls/activeds/Makefile.in -@@ -1,5 +1,6 @@ - MODULE = activeds.dll - IMPORTLIB = activeds -+IMPORTS = advapi32 ole32 oleaut32 - - EXTRADLLFLAGS = -mno-cygwin - -diff --git a/dlls/activeds/activeds_main.c b/dlls/activeds/activeds_main.c -index 69c5c447dc..8ff587e332 100644 ---- a/dlls/activeds/activeds_main.c -+++ b/dlls/activeds/activeds_main.c -@@ -2,6 +2,7 @@ - * Implementation of the Active Directory Service Interface - * - * Copyright 2005 Detlef Riekenberg -+ * Copyright 2019 Dmitry Timoshkov - * - * This file contains only stubs to get the printui.dll up and running - * activeds.dll is much much more than this -@@ -30,8 +31,10 @@ - #include "winuser.h" - - #include "objbase.h" -+#include "initguid.h" - #include "iads.h" - #include "adshlp.h" -+#include "adserr.h" - - #include "wine/debug.h" - -@@ -112,11 +115,80 @@ HRESULT WINAPI ADsBuildVarArrayInt(LPDWORD lpdwObjectTypes, DWORD dwObjectTypes, - /***************************************************** - * ADsOpenObject [ACTIVEDS.9] - */ --HRESULT WINAPI ADsOpenObject(LPCWSTR lpszPathName, LPCWSTR lpszUserName, LPCWSTR lpszPassword, DWORD dwReserved, REFIID riid, VOID** ppObject) -+HRESULT WINAPI ADsOpenObject(LPCWSTR path, LPCWSTR user, LPCWSTR password, DWORD reserved, REFIID riid, void **obj) - { -- FIXME("(%s,%s,%u,%s,%p)!stub\n", debugstr_w(lpszPathName), -- debugstr_w(lpszUserName), dwReserved, debugstr_guid(riid), ppObject); -- return E_NOTIMPL; -+ HRESULT hr; -+ HKEY hkey, hprov; -+ WCHAR provider[MAX_PATH], progid[MAX_PATH]; -+ DWORD idx = 0; -+ -+ TRACE("(%s,%s,%u,%s,%p)\n", debugstr_w(path), debugstr_w(user), reserved, debugstr_guid(riid), obj); -+ -+ if (!path || !riid || !obj) -+ return E_INVALIDARG; -+ -+ if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\ADs\\Providers", 0, KEY_READ, &hkey)) -+ return E_ADS_BAD_PATHNAME; -+ -+ hr = E_ADS_BAD_PATHNAME; -+ -+ for (;;) -+ { -+ if (RegEnumKeyW(hkey, idx++, provider, ARRAY_SIZE(provider))) -+ break; -+ -+ TRACE("provider %s\n", debugstr_w(provider)); -+ -+ if (!wcsnicmp(path, provider, wcslen(provider)) && path[wcslen(provider)] == ':') -+ { -+ LONG size; -+ -+ if (RegOpenKeyExW(hkey, provider, 0, KEY_READ, &hprov)) -+ break; -+ -+ size = ARRAY_SIZE(progid); -+ if (!RegQueryValueW(hprov, NULL, progid, &size)) -+ { -+ CLSID clsid; -+ -+ if (CLSIDFromProgID(progid, &clsid) == S_OK) -+ { -+ IADsOpenDSObject *adsopen; -+ IDispatch *disp; -+ -+ TRACE("ns %s => clsid %s\n", debugstr_w(progid), wine_dbgstr_guid(&clsid)); -+ if (CoCreateInstance(&clsid, 0, CLSCTX_INPROC_SERVER, &IID_IADsOpenDSObject, (void **)&adsopen) == S_OK) -+ { -+ BSTR bpath, buser, bpassword; -+ -+ bpath = SysAllocString(path); -+ buser = SysAllocString(user); -+ bpassword = SysAllocString(password); -+ -+ hr = IADsOpenDSObject_OpenDSObject(adsopen, bpath, buser, bpassword, reserved, &disp); -+ if (hr == S_OK) -+ { -+ hr = IDispatch_QueryInterface(disp, riid, obj); -+ IDispatch_Release(disp); -+ } -+ -+ SysFreeString(bpath); -+ SysFreeString(buser); -+ SysFreeString(bpassword); -+ -+ IADsOpenDSObject_Release(adsopen); -+ } -+ } -+ } -+ -+ RegCloseKey(hprov); -+ break; -+ } -+ } -+ -+ RegCloseKey(hkey); -+ -+ return hr; - } - - /***************************************************** -diff --git a/include/iads.idl b/include/iads.idl -index 6931b6f734..add52571c7 100644 ---- a/include/iads.idl -+++ b/include/iads.idl -@@ -794,6 +794,20 @@ interface IDirectorySearch : IUnknown - HRESULT CloseSearchHandle([in] ADS_SEARCH_HANDLE hSearchResult); - } - -+/***************************************************************************** -+ * IID_IADsOpenDSObject interface -+ */ -+[ -+ odl, -+ uuid(ddf2891e-0f9c-11d0-8ad4-00c04fd8d503), -+ dual, -+ oleautomation -+] -+interface IADsOpenDSObject : IDispatch -+{ -+ HRESULT OpenDSObject([in] BSTR path, [in] BSTR user, [in] BSTR password, [in] long reserved, [out,retval] IDispatch **obj); -+} -+ - /***************************************************************************** - * IADsADSystemInfo interface - */ --- -2.20.1 - diff --git a/patches/mshtml-HTMLLocation_put_hash/0001-mshtml-Add-IHTMLLocation-hash-property-s-getter-impl.patch b/patches/mshtml-HTMLLocation_put_hash/0001-mshtml-Add-IHTMLLocation-hash-property-s-getter-impl.patch index d100b739..73ce85f5 100644 --- a/patches/mshtml-HTMLLocation_put_hash/0001-mshtml-Add-IHTMLLocation-hash-property-s-getter-impl.patch +++ b/patches/mshtml-HTMLLocation_put_hash/0001-mshtml-Add-IHTMLLocation-hash-property-s-getter-impl.patch @@ -1,18 +1,19 @@ -From ac412bfe66c287d88409abc153c615c014907607 Mon Sep 17 00:00:00 2001 +From 214c0a64d5f0f3733c3e370f2a75329153617b2f Mon Sep 17 00:00:00 2001 From: Zhenbo Li Date: Tue, 1 Jul 2014 19:45:43 +0800 -Subject: mshtml: Add IHTMLLocation::hash property's getter implementation. +Subject: [PATCH] mshtml: Add IHTMLLocation::hash property's getter + implementation. --- - dlls/mshtml/htmllocation.c | 11 ++++++++-- - dlls/mshtml/tests/htmldoc.c | 53 ++++++++++++++++++++++++++++++++++++++++++++- + 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 6411eb7..176468f 100644 +index 7d102044c..a6d689397 100644 --- a/dlls/mshtml/htmllocation.c +++ b/dlls/mshtml/htmllocation.c -@@ -516,8 +516,15 @@ static HRESULT WINAPI HTMLLocation_get_search(IHTMLLocation *iface, BSTR *p) +@@ -526,8 +526,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); @@ -31,22 +32,22 @@ index 6411eb7..176468f 100644 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 635302c..409a5da 100644 +index e473ee0f2..242ebbeee 100644 --- a/dlls/mshtml/tests/htmldoc.c +++ b/dlls/mshtml/tests/htmldoc.c -@@ -5932,6 +5932,56 @@ static void test_Persist(IHTMLDocument2 *doc, IMoniker *mon) +@@ -5963,6 +5963,56 @@ static void test_Persist(IHTMLDocument2 *doc, IMoniker *mon) } } -+static void test_put_hash(IHTMLDocument2 *doc, const char *new_hash) ++static void test_put_hash(IHTMLDocument2 *doc, const WCHAR *new_hash) +{ -+ static char nav_url_buff[256]; ++ static WCHAR nav_url_buff[256]; + IHTMLLocation *location; + BSTR str; -+ char *psharp; ++ WCHAR *psharp; + HRESULT hres; + -+ trace("put_hash, url = %s, new hash = %s\n", nav_url, new_hash); ++ 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); @@ -60,14 +61,14 @@ index 635302c..409a5da 100644 + SET_EXPECT(FireNavigateComplete2); + + /* Edit nav_url */ -+ strcpy(nav_url_buff, nav_url); -+ psharp = strchr(nav_url_buff, '#'); ++ wcscpy(nav_url_buff, nav_url); ++ psharp = wcschr(nav_url_buff, '#'); + if (psharp) + *psharp = '\0'; -+ strcat(nav_url_buff, new_hash); ++ wcscat(nav_url_buff, new_hash); + nav_url = nav_url_buff; + -+ str = a2bstr(new_hash); ++ str = SysAllocString(new_hash); + hres = IHTMLLocation_put_hash(location, str); + ok (hres == S_OK, "put_hash failed: %08x\n", hres); + SysFreeString(str); @@ -82,32 +83,32 @@ index 635302c..409a5da 100644 + /* Check the result */ + hres = IHTMLLocation_get_hash(location, &str); + ok(hres == S_OK, "get_hash failed: %08x\n", hres); -+ ok(!strcmp_wa(str, new_hash), "expected %s, got %s\n", new_hash, wine_dbgstr_w(str)); ++ 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 char *href, const char *new_nav_url, BOOL is_js, + 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) { -@@ -6116,7 +6166,7 @@ static void test_load_history(IHTMLDocument2 *doc) +@@ -6148,7 +6198,7 @@ static void test_load_history(IHTMLDocument2 *doc) ok(hres == S_OK, "Could not get IPersistHistory iface: %08x\n", hres); prev_url = nav_url; -- nav_url = "http://test.winehq.org/tests/winehq_snapshot/#test"; -+ nav_url = "http://test.winehq.org/tests/winehq_snapshot/#hash_test"; - nav_serv_url = "http://test.winehq.org/tests/winehq_snapshot/"; +- 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); -@@ -7721,6 +7771,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp) - nav_url = nav_serv_url = "http://test.winehq.org/tests/winehq_snapshot/"; /* for valid prev nav_url */ +@@ -7915,6 +7965,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, "#test", "http://test.winehq.org/tests/winehq_snapshot/#test", FALSE, TRUE, 0); -+ test_put_hash(doc, "#hash_test"); + 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.5.1 +2.25.0 diff --git a/patches/ntdll-DOS_Attributes/0001-ntdll-Implement-retrieving-DOS-attributes-in-NtQuery.patch b/patches/ntdll-DOS_Attributes/0001-ntdll-Implement-retrieving-DOS-attributes-in-NtQuery.patch index eed05cc6..83c226a1 100644 --- a/patches/ntdll-DOS_Attributes/0001-ntdll-Implement-retrieving-DOS-attributes-in-NtQuery.patch +++ b/patches/ntdll-DOS_Attributes/0001-ntdll-Implement-retrieving-DOS-attributes-in-NtQuery.patch @@ -1,4 +1,4 @@ -From f9369606cc5094d85f35a5d27f0bcaab4ebd7d68 Mon Sep 17 00:00:00 2001 +From 96702e031b7b541dab331e1cdaa965e0c8eb0cfe Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Tue, 19 Aug 2014 22:10:49 -0600 Subject: [PATCH] ntdll: Implement retrieving DOS attributes in @@ -14,7 +14,7 @@ Subject: [PATCH] ntdll: Implement retrieving DOS attributes in create mode 100644 libs/port/xattr.c diff --git a/configure.ac b/configure.ac -index cc77413d2..a4742777b 100644 +index 670056a86..437fe32af 100644 --- a/configure.ac +++ b/configure.ac @@ -86,6 +86,7 @@ AC_ARG_WITH(unwind, AS_HELP_STRING([--without-unwind],[do not use the libunwi @@ -44,7 +44,7 @@ index cc77413d2..a4742777b 100644 AC_SUBST(DLLFLAGS,"-D_REENTRANT") diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index cce5811c9..046a05859 100644 +index 6900b9c85..bdf7faedb 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -127,6 +127,22 @@ static const WCHAR ntfsW[] = {'N','T','F','S'}; @@ -90,13 +90,13 @@ index a7ddd4a05..62d8112a9 100644 #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) diff --git a/libs/port/Makefile.in b/libs/port/Makefile.in -index 33445fa76..021c36b34 100644 +index f6fbc2c26..40006a690 100644 --- a/libs/port/Makefile.in +++ b/libs/port/Makefile.in -@@ -102,4 +102,5 @@ C_SRCS = \ +@@ -26,4 +26,5 @@ C_SRCS = \ + stubs.c \ symlink.c \ usleep.c \ - wctomb.c \ - wctype.c + wctype.c \ + xattr.c diff --git a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch index 6c14d9e9..49af5fc5 100644 --- a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch +++ b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch @@ -1,4 +1,4 @@ -From 627cc81a90af23437264ec65017725911cc6b20f Mon Sep 17 00:00:00 2001 +From 4e37abb696f99ea4727a4fb6bb31f5543f2a7b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 3 Apr 2017 05:30:27 +0200 Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. @@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. 3 files changed, 145 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c -index 3a507622070..4bc043e161d 100644 +index 35c6b3c09..17d742daa 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c @@ -30,6 +30,7 @@ @@ -21,8 +21,8 @@ index 3a507622070..4bc043e161d 100644 #include "wine/test.h" #include "delayloadhandler.h" -@@ -4047,6 +4048,79 @@ static void test_dll_file( const char *name ) - #undef OK_FIELD +@@ -3934,6 +3935,79 @@ static void test_LoadPackagedLibrary(void) + h, GetLastError()); } +static inline WCHAR toupperW(WCHAR c) @@ -101,9 +101,9 @@ index 3a507622070..4bc043e161d 100644 START_TEST(loader) { int argc; -@@ -4118,10 +4192,12 @@ START_TEST(loader) - test_ExitProcess(); +@@ -4006,10 +4080,12 @@ START_TEST(loader) test_InMemoryOrderModuleList(); + test_LoadPackagedLibrary(); test_wow64_redirection(); + test_HashLinks(); test_dll_file( "ntdll.dll" ); @@ -115,10 +115,10 @@ index 3a507622070..4bc043e161d 100644 test_Loader(); } diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index fc44dcfe3e5..4cf566d311e 100644 +index 85eb29768..644f599a7 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -121,6 +121,9 @@ static const char * const reason_names[] = +@@ -115,6 +115,9 @@ static const char * const reason_names[] = static const WCHAR dllW[] = {'.','d','l','l',0}; @@ -128,7 +128,7 @@ index fc44dcfe3e5..4cf566d311e 100644 /* internal representation of 32bit modules. per process. */ typedef struct _wine_modref { -@@ -464,6 +467,52 @@ static void call_ldr_notifications( ULONG reason, LDR_MODULE *module ) +@@ -458,6 +461,52 @@ static void call_ldr_notifications( ULONG reason, LDR_MODULE *module ) } } @@ -181,7 +181,7 @@ index fc44dcfe3e5..4cf566d311e 100644 /************************************************************************* * get_modref * -@@ -1211,7 +1260,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name +@@ -1205,7 +1254,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name &wm->ldr.InLoadOrderModuleList); InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderModuleList); @@ -194,7 +194,7 @@ index fc44dcfe3e5..4cf566d311e 100644 if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT)) { -@@ -1956,6 +2010,7 @@ static void load_builtin_callback( void *module, const char *filename ) +@@ -1860,6 +1914,7 @@ static void load_builtin_callback( void *module, const char *filename ) /* the module has only be inserted in the load & memory order lists */ RemoveEntryList(&wm->ldr.InLoadOrderModuleList); RemoveEntryList(&wm->ldr.InMemoryOrderModuleList); @@ -202,7 +202,7 @@ index fc44dcfe3e5..4cf566d311e 100644 /* FIXME: free the modref */ builtin_load_info->status = STATUS_DLL_NOT_FOUND; return; -@@ -2479,6 +2534,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, const UNICODE_STRING *nt_nam +@@ -2383,6 +2438,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, const UNICODE_STRING *nt_nam /* the module has only be inserted in the load & memory order lists */ RemoveEntryList(&wm->ldr.InLoadOrderModuleList); RemoveEntryList(&wm->ldr.InMemoryOrderModuleList); @@ -210,7 +210,7 @@ index fc44dcfe3e5..4cf566d311e 100644 /* FIXME: there are several more dangling references * left. Including dlls loaded by this dll before the -@@ -3661,6 +3717,7 @@ static void free_modref( WINE_MODREF *wm ) +@@ -3569,6 +3625,7 @@ static void free_modref( WINE_MODREF *wm ) { RemoveEntryList(&wm->ldr.InLoadOrderModuleList); RemoveEntryList(&wm->ldr.InMemoryOrderModuleList); @@ -218,7 +218,7 @@ index fc44dcfe3e5..4cf566d311e 100644 if (wm->ldr.InInitializationOrderModuleList.Flink) RemoveEntryList(&wm->ldr.InInitializationOrderModuleList); -@@ -4397,6 +4454,7 @@ void __wine_process_init(void) +@@ -4246,6 +4303,7 @@ void __wine_process_init(void) SIZE_T info_size; TEB *teb = thread_init(); PEB *peb = teb->Peb; @@ -226,7 +226,7 @@ index fc44dcfe3e5..4cf566d311e 100644 /* setup the server connection */ server_init_process(); -@@ -4417,6 +4475,10 @@ void __wine_process_init(void) +@@ -4267,6 +4325,10 @@ void __wine_process_init(void) load_global_options(); version_init(); @@ -237,7 +237,7 @@ index fc44dcfe3e5..4cf566d311e 100644 /* setup the load callback and create ntdll modref */ wine_dll_set_callback( load_builtin_callback ); -@@ -4489,5 +4551,8 @@ void __wine_process_init(void) +@@ -4339,5 +4401,8 @@ void __wine_process_init(void) teb->Tib.StackLimit = stack.StackLimit; teb->DeallocationStack = stack.DeallocationStack; @@ -247,10 +247,10 @@ index fc44dcfe3e5..4cf566d311e 100644 server_init_process_done(); } diff --git a/include/winternl.h b/include/winternl.h -index df1418477ad..2d7c86c389c 100644 +index 02a55c1e2..837a08eb7 100644 --- a/include/winternl.h +++ b/include/winternl.h -@@ -2242,8 +2242,8 @@ typedef struct _LDR_MODULE +@@ -2266,8 +2266,8 @@ typedef struct _LDR_MODULE ULONG Flags; SHORT LoadCount; SHORT TlsIndex; @@ -260,7 +260,7 @@ index df1418477ad..2d7c86c389c 100644 ULONG TimeDateStamp; HANDLE ActivationContext; PVOID PatchInformation; -@@ -2253,6 +2253,9 @@ typedef struct _LDR_MODULE +@@ -2277,6 +2277,9 @@ typedef struct _LDR_MODULE PVOID ContextInformation; ULONG_PTR OriginalBase; LARGE_INTEGER LoadTime; @@ -271,5 +271,5 @@ index df1418477ad..2d7c86c389c 100644 typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA -- -2.17.1 +2.25.0 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index cbab1312..ffccc140 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "d1373e8aae1b15b96e847488e4b6617789f8fb62" + echo "3d57cc2863f2f9a5ace40d29317b3ff4357fd119" } # Show version information @@ -2087,19 +2087,14 @@ fi # | * [#40649] activeds: Implement ADsOpenObject. # | # | Modified files: -# | * dlls/activeds/Makefile.in, dlls/activeds/activeds_main.c, dlls/adsldp/Makefile.in, dlls/adsldp/adsldp.c, -# | dlls/adsldp/adsldp.idl, dlls/adsldp/adsldp.rgs, dlls/adsldp/rsrc.rc, dlls/adsldp/tests/Makefile.in, -# | dlls/adsldp/tests/ldap.c, dlls/adsldp/tests/sysinfo.c, include/Makefile.in, include/adserr.h, include/iads.idl +# | * dlls/adsldp/Makefile.in, dlls/adsldp/adsldp.c, dlls/adsldp/adsldp.idl, dlls/adsldp/adsldp.rgs, dlls/adsldp/rsrc.rc, +# | dlls/adsldp/tests/Makefile.in, dlls/adsldp/tests/ldap.c, dlls/adsldp/tests/sysinfo.c # | if test "$enable_activeds_ADsOpenObject" -eq 1; then - patch_apply activeds-ADsOpenObject/0001-include-Add-adserr.h.patch - patch_apply activeds-ADsOpenObject/0002-activeds-Implement-ADsOpenObject.patch patch_apply activeds-ADsOpenObject/0003-adsldp-Add-LDAPNamespace-stubs.patch patch_apply activeds-ADsOpenObject/0004-adsldp-Add-IADsOpenDSObject-stubs.patch patch_apply activeds-ADsOpenObject/0005-adsldp-tests-Add-some-tests-for-LDAPNamespace.patch ( - printf '%s\n' '+ { "Dmitry Timoshkov", "include: Add adserr.h.", 1 },'; - printf '%s\n' '+ { "Dmitry Timoshkov", "activeds: Implement ADsOpenObject.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "adsldp: Add LDAPNamespace stubs.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "adsldp: Add IADsOpenDSObject stubs.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "adsldp/tests: Add some tests for LDAPNamespace.", 1 },';