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