0002-add-w_expand_env32-and-w_expand_env64-and-using-them.patch 4.37 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
From 815a01132de8fbb2b66f68a29e0aa2f024b0541c Mon Sep 17 00:00:00 2001
From: Vitaly Lipatov <lav@etersoft.ru>
Date: Tue, 20 Feb 2024 12:12:31 +0300
Subject: [PATCH 2/3] add w_expand_env32 and w_expand_env64 and using them to
 get correct paths
To: wine-devel <wine-devel@winehq.org>

---
 src/winetricks | 38 ++++++++++++++++++++++++--------------
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/src/winetricks b/src/winetricks
index 86a2570..7db190d 100755
--- a/src/winetricks
+++ b/src/winetricks
@@ -1064,6 +1064,16 @@ w_expand_env()
     winetricks_early_wine_arch cmd.exe /c echo "%$1%"
 }
 
+w_expand_env32()
+{
+    winetricks_early_wine "${W_SYSTEM32_DLLS_WIN}\\cmd.exe" /c echo "%$1%"
+}
+
+w_expand_env64()
+{
+    WINE=${WINE64} winetricks_early_wine "${W_SYSTEM64_DLLS_WIN64}\\cmd.exe" /c echo "%$1%"
+}
+
 # Get the latest tagged release from github.com API
 w_get_github_latest_release()
 {
@@ -5063,9 +5073,6 @@ winetricks_set_wineprefix()
         WINE_MULTI="${WINE}"
         W_ARCH=win64
 
-        W_PROGRAMS_WIN="$(w_expand_env ProgramFiles)"
-        W_PROGRAMS_UNIX="$(w_pathconv -u "${W_PROGRAMS_WIN}")"
-
         # Common variable for 32-bit dlls on win32/win64:
         W_SYSTEM32_DLLS="${W_WINDIR_UNIX}/syswow64"
         W_SYSTEM32_DLLS_WIN="C:\\windows\\syswow64"
@@ -5074,18 +5081,21 @@ winetricks_set_wineprefix()
         W_SYSTEM64_DLLS_WIN32="C:\\windows\\sysnative" # path to access 64-bit dlls from 32-bit apps
         W_SYSTEM64_DLLS_WIN64="C:\\windows\\system32"  # path to access 64-bit dlls from 64-bit apps
 
+        W_PROGRAMS_WIN="$(w_expand_env64 ProgramFiles)"
+        W_PROGRAMS_UNIX="$(w_pathconv -u "${W_PROGRAMS_WIN}")"
+
         # There's also ProgramW6432, which =%ProgramFiles%(but only available when running under a 64 bit OS)
         # See https://ss64.com/nt/syntax-variables.html
-        W_PROGRAMW6432_WIN="$(w_expand_env ProgramW6432)"
+        W_PROGRAMW6432_WIN="$(w_expand_env64 ProgramW6432)"
         W_PROGRAMW6432_UNIX="$(w_pathconv -u "${W_PROGRAMW6432_WIN}")"
 
         # 64-bit Windows has a second directory for program files
-        W_PROGRAMS_X86_WIN="${W_PROGRAMS_WIN} (x86)"
-        W_PROGRAMS_X86_UNIX="${W_PROGRAMS_UNIX} (x86)"
+        W_PROGRAMS_X86_WIN="$(w_expand_env32 ProgramFiles)"
+        W_PROGRAMS_X86_UNIX="$(w_pathconv -u "${W_PROGRAMS_X86_WIN}")"
 
-        W_COMMONFILES_X86_WIN="$(w_expand_env CommonProgramFiles\(x86\))"
+        W_COMMONFILES_X86_WIN="$(w_expand_env64 CommonProgramFiles\(x86\))"
         W_COMMONFILES_X86="$(w_pathconv -u "${W_COMMONFILES_X86_WIN}")"
-        W_COMMONFILES_WIN="$(w_expand_env CommonProgramW6432)"
+        W_COMMONFILES_WIN="$(w_expand_env64 CommonProgramW6432)"
         W_COMMONFILES="$(w_pathconv -u "${W_COMMONFILES_WIN}")"
 
         # 64-bit prefixes still have plenty of issues/a lot of verbs only install 32-bit libraries
@@ -5130,9 +5140,6 @@ winetricks_set_wineprefix()
         WINE_MULTI="${WINE}"
         W_ARCH=win32
 
-        W_PROGRAMS_WIN="$(w_expand_env ProgramFiles)"
-        W_PROGRAMS_UNIX="$(w_pathconv -u "${W_PROGRAMS_WIN}")"
-
         # Common variable for 32-bit dlls on win32/win64:
         W_SYSTEM32_DLLS="${W_WINDIR_UNIX}/system32"
         W_SYSTEM32_DLLS_WIN="C:\\windows\\system32"
@@ -5143,19 +5150,22 @@ winetricks_set_wineprefix()
         W_SYSTEM64_DLLS_WIN32="C:\\does-not-exist-on-win32" # path to access 64-bit dlls from 32-bit apps
         W_SYSTEM64_DLLS_WIN64="C:\\does-not-exist-on-win32"  # path to access 64-bit dlls from 64-bit apps
 
+        W_PROGRAMS_WIN="$(w_expand_env32 ProgramFiles)"
+        W_PROGRAMS_UNIX="$(w_pathconv -u "${W_PROGRAMS_WIN}")"
+
         W_PROGRAMS_X86_WIN="${W_PROGRAMS_WIN}"
         W_PROGRAMS_X86_UNIX="${W_PROGRAMS_UNIX}"
 
-        W_COMMONFILES_X86_WIN="$(w_expand_env CommonProgramFiles)"
+        W_COMMONFILES_X86_WIN="$(w_expand_env32 CommonProgramFiles)"
         W_COMMONFILES_X86="$(w_pathconv -u "${W_COMMONFILES_X86_WIN}")"
-        W_COMMONFILES_WIN="$(w_expand_env CommonProgramFiles)"
+        W_COMMONFILES_WIN="$(w_expand_env32 CommonProgramFiles)"
         W_COMMONFILES="$(w_pathconv -u "${W_COMMONFILES_WIN}")"
     fi
 
     ## Arch independent variables:
 
     # Note: using AppData since it's arch independent
-    W_APPDATA_WIN="$(w_expand_env AppData)"
+    W_APPDATA_WIN="$(w_expand_env32 AppData)"
     W_APPDATA_UNIX="$(w_pathconv -u "${W_APPDATA_WIN}")"
 
     case "${W_APPDATA_WIN}" in
-- 
2.42.1