Files
rtems/contrib/mingw/strstr.nsi
Chris Johns 598aab1fe5 2007-08-20 Chris Johns <chisj@rtems.org>
* filewrite.nsi, getparameters.nsi, instance-check.nsi,
        mingw-path.nsi, sm-dummy.nsi, strslash.nsi, strstr.nsi,
        options.nsi: Added the shared between the 2 installer scripts.

        * msys-path.nsi: Fixed the last LF bug.

        * rtems-autotools.nsi, rtems-tools.nsi: Fixed the instance check,
        added a start menu, remove pages from target installers.

        * rtems.ini: Fixed the URL links. Added support link.

        * rtems_logo.bmp: Trimmed a little more to get a better image.

        * ba-wrap.sh: Stop on a error.

        * build-exes.sh: Use the option parameter variables. Change the
        order the section appear in the installer.
2007-08-20 02:12:48 +00:00

64 lines
1.3 KiB
NSIS

!define StrStr "!insertmacro StrStr"
!macro StrStr ResultVar String SubString
Push `${String}`
Push `${SubString}`
Call StrStr
Pop `${ResultVar}`
!macroend
Function StrStr
/*After this point:
------------------------------------------
$R0 = SubString (input)
$R1 = String (input)
$R2 = SubStringLen (temp)
$R3 = StrLen (temp)
$R4 = StartCharPos (temp)
$R5 = TempStr (temp)*/
;Get input from user
Exch $R0
Exch
Exch $R1
Push $R2
Push $R3
Push $R4
Push $R5
;Get "String" and "SubString" length
StrLen $R2 $R0
StrLen $R3 $R1
;Start "StartCharPos" counter
StrCpy $R4 0
;Loop until "SubString" is found or "String" reaches its end
loop:
;Remove everything before and after the searched part ("TempStr")
StrCpy $R5 $R1 $R2 $R4
;Compare "TempStr" with "SubString"
StrCmp $R5 $R0 done
;If not "SubString", this could be "String"'s end
IntCmp $R4 $R3 done 0 done
;If not, continue the loop
IntOp $R4 $R4 + 1
Goto loop
done:
/*After this point:
------------------------------------------
$R0 = ResultVar (output)*/
;Remove part before "SubString" on "String" (if there has one)
StrCpy $R0 $R1 `` $R4
;Return output to user
Pop $R5
Pop $R4
Pop $R3
Pop $R2
Pop $R1
Exch $R0
FunctionEnd