Merge branch 'insp3' into master.

This commit is contained in:
Sadie Powell 2024-05-28 22:17:04 +01:00
commit 4fc8ffa0c0

View File

@ -470,21 +470,21 @@ FunctionEnd
!insertmacro StrStr "un." !insertmacro StrStr "un."
Function Trim ; Added by Pelaca Function Trim ; Added by Pelaca
Exch $R1 Exch $R1
Push $R2 Push $R2
Loop: Loop:
StrCpy $R2 "$R1" 1 -1 StrCpy $R2 "$R1" 1 -1
StrCmp "$R2" " " RTrim StrCmp "$R2" " " RTrim
StrCmp "$R2" "$\n" RTrim StrCmp "$R2" "$\n" RTrim
StrCmp "$R2" "$\r" RTrim StrCmp "$R2" "$\r" RTrim
StrCmp "$R2" ";" RTrim StrCmp "$R2" ";" RTrim
GoTo Done GoTo Done
RTrim: RTrim:
StrCpy $R1 "$R1" -1 StrCpy $R1 "$R1" -1
Goto Loop Goto Loop
Done: Done:
Pop $R2 Pop $R2
Exch $R1 Exch $R1
FunctionEnd FunctionEnd
Function ConditionalAddToRegistry Function ConditionalAddToRegistry
@ -937,11 +937,20 @@ Function .onInit
;Run the uninstaller ;Run the uninstaller
uninst: uninst:
ClearErrors ClearErrors
StrCpy $2 $0 1 # $0 should _always_ be quoted, however older versions of CMake did not
StrCmp '"' $2 0 +3 ; checks if string is quoted (CPack before v3.20.6 did not quote it) # do this. We'll conditionally remove the begin/end quotes.
ExecWait '$0 /S' # Remove first char if quote
Goto +2 StrCpy $2 $0 1 0 # copy first char
ExecWait '"$0" /S' StrCmp $2 "$\"" 0 +2 # if char is quote
StrCpy $0 $0 "" 1 # remove first char
# Remove last char if quote
StrCpy $2 $0 1 -1 # copy last char
StrCmp $2 "$\"" 0 +2 # if char is quote
StrCpy $0 $0 -1 # remove last char
StrLen $2 "\@CPACK_NSIS_UNINSTALL_NAME@.exe"
StrCpy $3 $0 -$2 # remove "\@CPACK_NSIS_UNINSTALL_NAME@.exe" from UninstallString to get path
ExecWait '"$0" /S _?=$3' ;Do not copy the uninstaller to a temp file
IfErrors uninst_failed inst IfErrors uninst_failed inst
uninst_failed: uninst_failed:
@ -978,7 +987,7 @@ inst:
;MessageBox MB_OK 'User "$0" is in the Admin group' ;MessageBox MB_OK 'User "$0" is in the Admin group'
StrCpy $SV_ALLUSERS "AllUsers" StrCpy $SV_ALLUSERS "AllUsers"
Goto done Goto done
StrCmp $1 "Power" 0 +4 StrCmp $1 "Power" 0 +3
SetShellVarContext all SetShellVarContext all
;MessageBox MB_OK 'User "$0" is in the Power Users group' ;MessageBox MB_OK 'User "$0" is in the Power Users group'
StrCpy $SV_ALLUSERS "AllUsers" StrCpy $SV_ALLUSERS "AllUsers"