pidgin: 7e9f703c: Work around the buggy Aspell dictionary ...
datallah at pidgin.im
datallah at pidgin.im
Mon Feb 2 21:50:30 EST 2009
-----------------------------------------------------------------
Revision: 7e9f703c79d2df50e7d864dd84bb88ef8c1b60ec
Ancestor: 1a658bb7a0436b518d65b9b95116915a5511a7d3
Author: datallah at pidgin.im
Date: 2009-02-03T02:42:54
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/7e9f703c79d2df50e7d864dd84bb88ef8c1b60ec
Modified files:
pidgin/win32/nsis/pidgin-installer.nsi
ChangeLog:
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
-------------- next part --------------
============================================================
--- pidgin/win32/nsis/pidgin-installer.nsi aefec4527ea6fa22de458d551072d7c6c905c9ab
+++ pidgin/win32/nsis/pidgin-installer.nsi ada45a0860e17fabb75e8172eb002a5877505359
@@ -1247,7 +1247,10 @@ Function .onInit
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:
; Close the Handle (needed if we're retrying)
@@ -1258,7 +1261,14 @@ Function .onInit
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 @@ Function .onInit
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 @@ Function .onInit
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 @@ Function .onInit
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 @@ Function .onInit
instdir_done:
;LogSet on
+ Pop $R3
Pop $R2
Pop $R1
Pop $R0
@@ -1694,6 +1702,7 @@ Function InstallAspellDictionary
Push $R1
Push $R2
Push $R3
+ Push $R4
check:
ClearErrors
@@ -1714,7 +1723,12 @@ Function InstallAspellDictionary
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 @@ Function InstallAspellDictionary
StrCpy $R0 ''
done:
+ Pop $R4
Pop $R3
Pop $R2
Pop $R1
More information about the Commits
mailing list