Skip to content
This repository has been archived by the owner on Oct 1, 2020. It is now read-only.

Commit

Permalink
Added patch to implement support for "Purist Mode" (override for all …
Browse files Browse the repository at this point in the history
…dlls).
  • Loading branch information
slackner committed Nov 10, 2015
1 parent 6a3ea0e commit eb20574
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 1 deletion.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------

**Bug fixes and features included in the next upcoming release [1]:**
**Bug fixes and features included in the next upcoming release [2]:**

* Implement support for "Purist Mode" (override for all dlls)
* Revert patch to prepare GL resources before calling context_apply_fbo_state ([Wine Bug #39536](https://bugs.winehq.org/show_bug.cgi?id=39536))


Expand Down
1 change: 1 addition & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
wine-staging (1.7.55) UNRELEASED; urgency=low
* Added patch to revert "Prepare GL resources before calling
context_apply_fbo_state".
* Added patch to implement support for "Purist Mode" (override for all dlls).
* Remove disabled shell32-Quoted_ShellExecute patchset (bug already fixed and
all tests pass).
* Remove disabled reg-Cleanup patchset (only cleanup and not actively
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
From a83bb75f363f799616d7b39cb4829c15638b0fff Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Mon, 9 Nov 2015 10:20:21 +0100
Subject: ntdll: Add dll override default rule for purist mode.

---
dlls/ntdll/loadorder.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/dlls/ntdll/loadorder.c b/dlls/ntdll/loadorder.c
index eaeba37..5068812 100644
--- a/dlls/ntdll/loadorder.c
+++ b/dlls/ntdll/loadorder.c
@@ -557,6 +557,7 @@ enum loadorder get_load_order( const WCHAR *app_name, const WCHAR *path )
enum loadorder ret = LO_INVALID;
HANDLE std_key, app_key = 0;
WCHAR *module, *basename;
+ WCHAR default_rule[] = {'*',0};

if (!init_done) init_load_order();
std_key = get_override_standard_key();
@@ -588,6 +589,10 @@ enum loadorder get_load_order( const WCHAR *app_name, const WCHAR *path )
goto done;
}

+ /* default rule '*' (used for purist mode) */
+ if ((ret = get_load_order_value( std_key, app_key, default_rule )) != LO_INVALID)
+ goto done;
+
/* and last the hard-coded default */
ret = LO_DEFAULT;
TRACE( "got hardcoded %s for %s\n", debugstr_loadorder(ret), debugstr_w(path) );
--
2.6.2

2 changes: 2 additions & 0 deletions patches/ntdll-Purist_Mode/definition
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Fixes: Implement support for "Purist Mode" (override for all dlls)
Depends: ntdll-DllRedirects
26 changes: 26 additions & 0 deletions patches/patchinstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ patch_enable_all ()
enable_ntdll_NtSetLdtEntries="$1"
enable_ntdll_Pipe_SpecialCharacters="$1"
enable_ntdll_ProcessQuotaLimits="$1"
enable_ntdll_Purist_Mode="$1"
enable_ntdll_RtlIpStringToAddress="$1"
enable_ntdll_Stack_Fault="$1"
enable_ntdll_Status_Mapping="$1"
Expand Down Expand Up @@ -698,6 +699,9 @@ patch_enable ()
ntdll-ProcessQuotaLimits)
enable_ntdll_ProcessQuotaLimits="$2"
;;
ntdll-Purist_Mode)
enable_ntdll_Purist_Mode="$2"
;;
ntdll-RtlIpStringToAddress)
enable_ntdll_RtlIpStringToAddress="$2"
;;
Expand Down Expand Up @@ -1872,6 +1876,13 @@ if test "$enable_ntdll_SystemRoot_Symlink" -eq 1; then
enable_ntdll_Syscall_Wrappers=1
fi

if test "$enable_ntdll_Purist_Mode" -eq 1; then
if test "$enable_ntdll_DllRedirects" -gt 1; then
abort "Patchset ntdll-DllRedirects disabled, but ntdll-Purist_Mode depends on that."
fi
enable_ntdll_DllRedirects=1
fi

if test "$enable_ntdll_NtQuerySection" -eq 1; then
if test "$enable_ntdll_Syscall_Wrappers" -gt 1; then
abort "Patchset ntdll-Syscall_Wrappers disabled, but ntdll-NtQuerySection depends on that."
Expand Down Expand Up @@ -4203,6 +4214,21 @@ if test "$enable_ntdll_ProcessQuotaLimits" -eq 1; then
) >> "$patchlist"
fi

# Patchset ntdll-Purist_Mode
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, ntdll-DllRedirects
# |
# | Modified files:
# | * dlls/ntdll/loadorder.c
# |
if test "$enable_ntdll_Purist_Mode" -eq 1; then
patch_apply ntdll-Purist_Mode/0001-ntdll-Add-dll-override-default-rule-for-purist-mode.patch
(
echo '+ { "Christian Costa", "ntdll: Add dll override default rule for purist mode.", 1 },';
) >> "$patchlist"
fi

# Patchset ntdll-RtlIpStringToAddress
# |
# | Modified files:
Expand Down

0 comments on commit eb20574

Please sign in to comment.