mirror of
https://github.com/PCSX2/pcsx2.git
synced 2025-04-02 10:52:54 -04:00
Null plugins are sad and lonely, put them with the others later Minor tweaks, force remove Plugins folder because it can prevent $INSTDIR from being deleted (assuming we're doing a standard uninstall) Rewrite version detection to search for 0.9.8 to 1.4.0 as well as future builds. Remove offending whitespace
48 lines
No EOL
1.4 KiB
NSIS
48 lines
No EOL
1.4 KiB
NSIS
; StrContains
|
|
; This function does a case sensitive searches for an occurrence of a substring in a string.
|
|
; It returns the substring if it is found.
|
|
; Otherwise it returns null("").
|
|
; Written by kenglish_hi
|
|
; Adapted from StrReplace written by dandaman32
|
|
|
|
|
|
Var STR_HAYSTACK
|
|
Var STR_NEEDLE
|
|
Var STR_CONTAINS_VAR_1
|
|
Var STR_CONTAINS_VAR_2
|
|
Var STR_CONTAINS_VAR_3
|
|
Var STR_CONTAINS_VAR_4
|
|
Var STR_RETURN_VAR
|
|
|
|
Function StrContains
|
|
Exch $STR_NEEDLE
|
|
Exch 1
|
|
Exch $STR_HAYSTACK
|
|
; Uncomment to debug
|
|
;MessageBox MB_OK 'STR_NEEDLE = $STR_NEEDLE STR_HAYSTACK = $STR_HAYSTACK '
|
|
StrCpy $STR_RETURN_VAR ""
|
|
StrCpy $STR_CONTAINS_VAR_1 -1
|
|
StrLen $STR_CONTAINS_VAR_2 $STR_NEEDLE
|
|
StrLen $STR_CONTAINS_VAR_4 $STR_HAYSTACK
|
|
loop:
|
|
IntOp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_1 + 1
|
|
StrCpy $STR_CONTAINS_VAR_3 $STR_HAYSTACK $STR_CONTAINS_VAR_2 $STR_CONTAINS_VAR_1
|
|
StrCmp $STR_CONTAINS_VAR_3 $STR_NEEDLE found
|
|
StrCmp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_4 done
|
|
Goto loop
|
|
found:
|
|
StrCpy $STR_RETURN_VAR $STR_NEEDLE
|
|
Goto done
|
|
done:
|
|
Pop $STR_NEEDLE ;Prevent "invalid opcode" errors and keep the
|
|
Exch $STR_RETURN_VAR
|
|
FunctionEnd
|
|
|
|
!macro _StrContainsConstructor OUT NEEDLE HAYSTACK
|
|
Push `${HAYSTACK}`
|
|
Push `${NEEDLE}`
|
|
Call StrContains
|
|
Pop `${OUT}`
|
|
!macroend
|
|
|
|
!define StrContains '!insertmacro "_StrContainsConstructor"' |