Explicitly save the language when using the silent installer (if it is explicitly set). NSIS doesn\'t do this for us. Fixes #8658.

Wed, 26 Aug 2009 03:59:49 +0000

author
Daniel Atallah <datallah@pidgin.im>
date
Wed, 26 Aug 2009 03:59:49 +0000
changeset 28381
449a0d08f21d
parent 28380
9c8c4319b5e9
child 28383
9dabcae067c0

Explicitly save the language when using the silent installer (if it is explicitly set). NSIS doesn\'t do this for us. Fixes #8658.

pidgin/win32/nsis/pidgin-installer.nsi file | annotate | diff | comparison | revisions
--- a/pidgin/win32/nsis/pidgin-installer.nsi	Wed Aug 26 01:09:33 2009 +0000
+++ b/pidgin/win32/nsis/pidgin-installer.nsi	Wed Aug 26 03:59:49 2009 +0000
@@ -12,6 +12,7 @@
 Var ISSILENT
 Var STARTUP_RUN_KEY
 Var SPELLCHECK_SEL
+Var LANGUAGE_SET
 
 ;--------------------------------
 ;Configuration
@@ -74,7 +75,7 @@
 !define PERL_REG_KEY				"SOFTWARE\Perl"
 !define PERL_DLL				"perl510.dll"
 !define GTK_DEFAULT_INSTALL_PATH		"$COMMONFILES\GTK\2.0"
-!define GTK_RUNTIME_INSTALLER			"..\..\..\..\gtk_installer\gtk-runtime*.exe"
+!define GTK_RUNTIME_INSTALLER			"..\..\..\..\gtk_installer\gtk-runtime-${GTK_INSTALL_VERSION}*.exe"
 
 !define ASPELL_REG_KEY				"SOFTWARE\Aspell"
 !define DOWNLOADER_URL				"http://pidgin.im/win32/download_redir.php"
@@ -1341,10 +1342,12 @@
   IfSilent 0 +2
     StrCpy $ISSILENT "/NOUI"
 
+  StrCpy $LANGUAGE_SET "0"
   ClearErrors
   ${GetOptions} "$R3" "/L=" $R1
   IfErrors +3
   StrCpy $LANGUAGE $R1
+  StrCpy $LANGUAGE_SET "1"
   Goto skip_lang
 
   ; Select Language
@@ -1407,6 +1410,17 @@
   Pop $R0
 FunctionEnd
 
+Function .onInstSuccess
+  ; NSIS doesn't appear to save the language when in Silent Mode, so we do so manually
+  IfSilent 0 done
+
+  StrCmp $LANGUAGE_SET "0" done
+
+  WriteRegStr "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" $LANGUAGE
+
+  done:
+FunctionEnd
+
 Function un.onInit
   Call un.RunCheck
   StrCpy $name "Pidgin ${PIDGIN_VERSION}"

mercurial