Mercurial > pidgin
changeset 25408:e316de5f75a3
Work around the buggy Aspell dictionary installers by cleaning up after them.
Also, add a /NOPIDGINRUNCHECK=1 flag to override the running process check.
(useful for testing).
Fixes #8099
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Tue, 03 Feb 2009 02:42:54 +0000 |
parents | 651cdeab9b99 |
children | 99e4b9d4ebc6 |
files | pidgin/win32/nsis/pidgin-installer.nsi |
diffstat | 1 files changed, 24 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/win32/nsis/pidgin-installer.nsi Mon Feb 02 16:13:11 2009 +0000 +++ b/pidgin/win32/nsis/pidgin-installer.nsi Tue Feb 03 02:42:54 2009 +0000 @@ -1247,6 +1247,9 @@ Push $R0 Push $R1 Push $R2 + Push $R3 ; This is only used for the Parameters throughout the function + + ${GetParameters} $R3 IntOp $R1 0 + 0 retry_runcheck: @@ -1258,7 +1261,14 @@ IntCmp $R0 0 +3 ;This could check for ERROR_ALREADY_EXISTS(183), but lets just assume MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION $(INSTALLER_IS_RUNNING) /SD IDCANCEL IDRETRY retry_runcheck Abort + + ; Allow installer to run even if pidgin is running via "/NOPIDGINRUNCHECK=1" + ; This is useful for testing + ClearErrors + ${GetOptions} "$R3" "/NOPIDGINRUNCHECK=" $R1 + IfErrors 0 +2 Call RunCheck + StrCpy $name "Pidgin ${PIDGIN_VERSION}" StrCpy $SPELLCHECK_SEL "" @@ -1312,16 +1322,13 @@ SetShellVarContext "current" StrCpy $ISSILENT "/S" - - ; GTK installer has two silent states.. one with Message boxes, one without + ; GTK installer has two silent states - one with Message boxes, one without ; If pidgin installer was run silently, we want to supress gtk installer msg boxes. - IfSilent 0 set_gtk_normal - StrCpy $ISSILENT "/NOUI" - set_gtk_normal: + IfSilent 0 +2 + StrCpy $ISSILENT "/NOUI" - ${GetParameters} $R0 ClearErrors - ${GetOptions} "$R0" "/L=" $R1 + ${GetOptions} "$R3" "/L=" $R1 IfErrors +3 StrCpy $LANGUAGE $R1 Goto skip_lang @@ -1332,7 +1339,7 @@ skip_lang: ClearErrors - ${GetOptions} "$R0" "/DS=" $R1 + ${GetOptions} "$R3" "/DS=" $R1 IfErrors +8 SectionGetFlags ${SecDesktopShortcut} $R2 StrCmp "1" $R1 0 +2 @@ -1343,7 +1350,7 @@ SectionSetFlags ${SecDesktopShortcut} $R2 ClearErrors - ${GetOptions} "$R0" "/SMS=" $R1 + ${GetOptions} "$R3" "/SMS=" $R1 IfErrors +8 SectionGetFlags ${SecStartMenuShortcut} $R2 StrCmp "1" $R1 0 +2 @@ -1380,6 +1387,7 @@ instdir_done: ;LogSet on + Pop $R3 Pop $R2 Pop $R1 Pop $R0 @@ -1694,6 +1702,7 @@ Push $R1 Push $R2 Push $R3 + Push $R4 check: ClearErrors @@ -1714,7 +1723,12 @@ StrCmp $R3 "success" +3 StrCpy $R0 $R3 Goto done + ; Use a specific temporary $OUTDIR for each dictionary because the installer doesn't clean up after itself + StrCpy $R4 "$OUTDIR" + SetOutPath "$TEMP\aspell_dict-$R0" ExecWait '"$R1"' + SetOutPath "$R4" + RMDir /r "$TEMP\aspell_dict-$R0" Delete $R1 Goto check ; Check that it is now installed correctly @@ -1723,6 +1737,7 @@ StrCpy $R0 '' done: + Pop $R4 Pop $R3 Pop $R2 Pop $R1