More careful about replacing dlls with the correct version.

This commit is contained in:
Storm Dragon
2026-04-23 00:42:45 -04:00
parent 0728a7eb01
commit a831d5f2d5
3 changed files with 34 additions and 36 deletions
@@ -214,6 +214,7 @@ replace_wine_nvda_dlls() {
local dllFile local dllFile
local dllName local dllName
local replacement local replacement
local fileInfo
[[ -d "${WINEPREFIX:-}" ]] || return 0 [[ -d "${WINEPREFIX:-}" ]] || return 0
@@ -225,21 +226,21 @@ replace_wine_nvda_dlls() {
dllName="${dllFile##*/}" dllName="${dllFile##*/}"
replacement="" replacement=""
case "${dllName,,}" in fileInfo="$(file "$dllFile" 2> /dev/null || true)"
nvdacontrollerclient32.dll) if grep -q 'PE32+' <<< "$fileInfo"; then
replacement="${accessibilityDir}/nvdaControllerClient32.dll" replacement="${accessibilityDir}/nvdaControllerClient64.dll"
;; elif grep -q 'PE32' <<< "$fileInfo"; then
nvdacontrollerclient64.dll) replacement="${accessibilityDir}/nvdaControllerClient32.dll"
replacement="${accessibilityDir}/nvdaControllerClient64.dll" else
;; case "${dllName,,}" in
nvdacontrollerclient.dll) nvdacontrollerclient32.dll)
if file "$dllFile" | grep -q 'PE32+'; then
replacement="${accessibilityDir}/nvdaControllerClient64.dll"
elif file "$dllFile" | grep -q 'PE32'; then
replacement="${accessibilityDir}/nvdaControllerClient32.dll" replacement="${accessibilityDir}/nvdaControllerClient32.dll"
fi ;;
;; nvdacontrollerclient64.dll)
esac replacement="${accessibilityDir}/nvdaControllerClient64.dll"
;;
esac
fi
if [[ -n "$replacement" && -f "$replacement" ]]; then if [[ -n "$replacement" && -f "$replacement" ]]; then
cp -f "$replacement" "$dllFile" cp -f "$replacement" "$dllFile"
@@ -37,15 +37,13 @@ prune_old_logs() {
} }
setup_logging() { setup_logging() {
local timestamp
local safeName local safeName
mkdir -p "$logDir" mkdir -p "$logDir"
prune_old_logs prune_old_logs
timestamp="$(date '+%Y%m%d-%H%M%S')"
safeName="$(safe_log_name "$gameName")" safeName="$(safe_log_name "$gameName")"
logFile="${logDir}/${safeName}-${timestamp}.log" logFile="${logDir}/${safeName}.log"
exec > >(tee -a "$logFile") 2>&1 exec > >(tee "$logFile") 2>&1
printf 'Installing %s [%s]\n' "$gameName" "$(date)" printf 'Installing %s [%s]\n' "$gameName" "$(date)"
printf 'Installer path: %s\n' "$installerPath" printf 'Installer path: %s\n' "$installerPath"
} }
@@ -22,14 +22,12 @@ prune_old_launch_logs() {
setup_launch_logging() { setup_launch_logging() {
local launchName="$1" local launchName="$1"
local timestamp
local safeName local safeName
prune_old_launch_logs prune_old_launch_logs
timestamp="$(date '+%Y%m%d-%H%M%S')"
safeName="$(safe_log_name "$launchName")" safeName="$(safe_log_name "$launchName")"
launchLogFile="${launchLogDir}/${safeName}-${timestamp}.log" launchLogFile="${launchLogDir}/${safeName}.log"
exec > >(tee -a "$launchLogFile") 2>&1 exec > >(tee "$launchLogFile") 2>&1
printf 'Launching %s [%s]\n' "$launchName" "$(date)" printf 'Launching %s [%s]\n' "$launchName" "$(date)"
} }
@@ -158,6 +156,7 @@ update_wine_nvda_dlls() {
local dllFile local dllFile
local dllName local dllName
local replacement local replacement
local fileInfo
[[ -f "${accessibilityDir}/nvdaControllerClient32.dll" ]] || return 0 [[ -f "${accessibilityDir}/nvdaControllerClient32.dll" ]] || return 0
[[ -f "${accessibilityDir}/nvdaControllerClient64.dll" ]] || return 0 [[ -f "${accessibilityDir}/nvdaControllerClient64.dll" ]] || return 0
@@ -169,21 +168,21 @@ update_wine_nvda_dlls() {
dllName="${dllFile##*/}" dllName="${dllFile##*/}"
replacement="" replacement=""
case "${dllName,,}" in fileInfo="$(file "$dllFile" 2> /dev/null || true)"
nvdacontrollerclient32.dll) if grep -q 'PE32+' <<< "$fileInfo"; then
replacement="${accessibilityDir}/nvdaControllerClient32.dll" replacement="${accessibilityDir}/nvdaControllerClient64.dll"
;; elif grep -q 'PE32' <<< "$fileInfo"; then
nvdacontrollerclient64.dll) replacement="${accessibilityDir}/nvdaControllerClient32.dll"
replacement="${accessibilityDir}/nvdaControllerClient64.dll" else
;; case "${dllName,,}" in
nvdacontrollerclient.dll) nvdacontrollerclient32.dll)
if file "$dllFile" | grep -q 'PE32+'; then
replacement="${accessibilityDir}/nvdaControllerClient64.dll"
elif file "$dllFile" | grep -q 'PE32'; then
replacement="${accessibilityDir}/nvdaControllerClient32.dll" replacement="${accessibilityDir}/nvdaControllerClient32.dll"
fi ;;
;; nvdacontrollerclient64.dll)
esac replacement="${accessibilityDir}/nvdaControllerClient64.dll"
;;
esac
fi
if [[ -n "$replacement" && -f "$replacement" ]]; then if [[ -n "$replacement" && -f "$replacement" ]]; then
printf 'Updating %s with nvdaControllerClient\n' "$dllFile" printf 'Updating %s with nvdaControllerClient\n' "$dllFile"