I have a custom IO page, and am reading registry values when the user clicks back or next.
After reading the registry values, I am comparing them to "1".
Just those two pieces of code seems to crash the whole installer when I click back or next.
My function is like this:
If I blank out the strcmp's then it works fine.
Function MainDialog
## Add header text and colour
!insertmacro HEADER_TEXT "Detected Updates" "Updates that have not yet been installed"
## Show dialog
pagetop:
InstallOptions::dialog "$TEMP\ddayupdates\dialog.du"
Pop $R0
StrCmp $R0 back settings
StrCmp $R0 cancel pagecancel
StrCmp $R0 success pagesuccess
StrCmp $R0 error pagecancel
## Open settings dialog
settings:
ReadRegStr $R0 HKLM "SOFTWARE\D-Day Updater" "SETTINGS"
;StrCmp $R0 0 0 pagetop
Exec "$TEMP\ddayupdates\du_settings.exe"
Goto pagetop
pagesuccess:
ReadRegStr $R0 HKLM "SOFTWARE\D-Day Updater" "SETTINGS"
;StrCmp $R0 0 0 pagetop
ReadINIStr $R0 "$TEMP\ddayupdates\dialog.du" "Field 3" "Type"
StrCmp $R0 "Text" 0 pagecancel
MessageBox MB_OK|MB_ICONEXCLAMATION "There are no new detected \
updates.$\r$\nYou are up-to-date!" IDOK pagetop
pagecancel:
WriteRegStr HKLM "SOFTWARE\D-Day Updater" "SETTINGS" "0"
FunctionEnd
Changing strcmp to intcmp also crashes the installer.
I have even put another IO page before it, and that also crashes on leave (even though it does not have any StrCmp's in it).
I have placed a message box before the Pop $R0 (after leaving the IO page) and that never shows either.
I seem to remember this happening randomly for me a while ago, but now it happens all the time (even after reboot)
I am also using Kichik's modified MakeNSIS exe with longer max strlen, but have not downloaded any latest cvs files (so no nsis base files have changed since the installer worked).
-Stu