\b A lot of changes were made to the behavior of sections/components and related instructions. The changes were thoroughly tested, but may still cause minor incompatibilities with old scripts. Please let us know if your script no longer functions as expected with these changes.
\S1{v2.05-cl} Changelog
\S2{} New/Changed Commands
\b Renamed SubSection and SubSectionEnd to \R{ssectiongroup}{SectionGroup} and \R{ssectiongroupend}{SectionGroupEnd}
\b \R{sectionsetflags}{SectionSetFlags}, when used on a section group, toggles its children too
\b \R{sectionsettext}{SectionSetText} works better with variables (parses immediately and treats an empty variable is an empty string)
\b \R{ssetcurinsttype}{SetCurInstType} works without the components page
\S2{} Minor Changes
\b Added Breton translation
\b \L{../Contrib/AdvSplash/advsplash.txt}{AdvSplash}: Fixed double delay time in some cases
\b Documentation fixes and enhancements (including \W{http://sourceforge.net/tracker/index.php?func=detail&aid=1098454&group_id=22049&atid=373087}{patch #1098454})
\b Fixed case insensitive name comparison with \R{file}{File} /x, when not using wildcards
\b Fixed extraction status ending prior to 100%
\b Fixed negative values of available space in the directory page (\W{http://sourceforge.net/tracker/index.php?func=detail&aid=1114876&group_id=22049&atid=373085}{bug #1114876})
\b Fixed system.nsi example crash (\W{http://sourceforge.net/tracker/index.php?func=detail&aid=1102255&group_id=22049&atid=373085}{bug #1102255})
\b Fixed unused label warnings with \R{library}{Library macros}
\b Improved some error messages
\b \L{../Contrib/InstallOptions/Readme.html}{InstallOptions 2.42}: Added an image displaying example, added TRANSPARENT flag for BITMAP fields (\W{http://sourceforge.net/tracker/?group_id=22049&atid=373088&func=detail&aid=1079715}{RFE #1079715} - funded by Chris Morgan)
\b Invisible sections weren't always affected by a change of the installation type (\W{http://sourceforge.net/tracker/index.php?func=detail&aid=1045722&group_id=22049&atid=373085}{bug #1045722})
\b Language file fixes
\b Made pages refresh after an aborted leave function
\b Partially selected section groups can now be toggled
\b If you're using \c{File /r folder} in your script, it's recommended you replace it with \c{File /r folder\\*} for faster compilation and so no other folders named \e{folder} will be included
\b \L{../Contrib/Modern UI/Readme.html}{Modern UI 1.72}: Fixed state of Cancel button on Finish page when used in installer and uninstaller, added a string for NSIS_CONFIG_COMPONENTPAGE_ALTERNATIVE
\b Added lots of small usage examples to the documentation
\b Made \R{jumps}{relative jumps} work with instructions that add multiple entries
\b Made the datablock optimizer much faster
\b Made the installer deny reboots while running (\W{http://msdn.microsoft.com/library/en-us/sysinfo/base/wm_queryendsession.asp}{WM_QUERYENDSESSION})
\b Made the \R{reboot}{Reboot} command first quit and then reboot so everything is always cleaned-up
\S2{} New/Changed Commands
\b Added << and >> to \R{intop}{IntOp}
\b Added \R{geterrorlevel}{GetErrorLevel} and \R{seterrorlevel}{SetErrorLevel}
\b Fixed \R{copyfiles}{CopyFiles} usage checking problem
\b Made \R{reboot}{Reboot} call \R{onrebootfailed}{.onRebootFailed} and quit on failure instead of setting the error flag
\S2{} Minor Changes
\b Added Albanian language files
\b Added NSIS_CONFIG_COMPONENTPAGE_ALTERNATIVE configuration option which makes components only be toggled when the user clicks on the checkbox and makes .onMouseOverSection only be called when the user selects a component
\b Added some CppUnit tests
\b Both _=? and /D= now require a space before them so they can safely remove the space from $CMDLINE
\b Fixed a bug that caused the uninstaller CRC-check to fail if \R{packhdr}{!packhdr} created a non-512-bytes-aligned exehead
\b Fixed a compiler crash caused by using \R{getcurrentaddress}{GetCurrentAddress}
\b Fixed errors when using '\R{file}{File} /r .' on Windows
\b Fixed gcc 3.4 compile errors
\b Fixed inconsistencies between error levels and the \R{errorlevels}{documentation}
\b Fixed some minor memory leaks
\b Language file fixes
\b Makefile improvements
\b \L{../Contrib/Modern UI/Readme.html}{Modern UI 1.71}: Made the selected language only be saved if the installation was successful
\b Some code refactoring
\b \L{../Include/StrFunc.txt}{StrFunc}: Rewrote StrSort and fixed StrStrAdv. See the \L{../Include/StrFunc.txt}{readme} for a complete changelog
\S2{} Utilities and Plug-ins
\b \L{../Contrib/Banner/Readme.txt}{Banner}: Fixed some cases where the banner would not show on the foreground
\b \L{../Examples/LogicLib.nsi}{LogicLib} 2.5: Added AndIf, AndUnless, OrIf, OrUnless. Avoids unused variable warnings by requiring !defines before using certain features.
\b \L{../Include/StrFunc.txt}{StrFunc}: Added support for uninstaller, some fixes and improvements. See the \L{../Include/StrFunc.txt}{readme} for a complete changelog
\b Fixed a bug which made plug-ins that didn't have lower case extension not be found
\b Fixed a bug that caused directories with drives that had their current directory set to an invalid directory to not be accepted in the directory selection page
\b makensis shows meaningful errors for compression errors instead of just magic numbers
\b Fixed a bug with \R{aallowrootdirinstall}{AllowRootDirInstall} used along with \R{ainstalldirregkey}{InstallDirRegKey} that caused the directory in the registry to be ignored
\b \L{../Contrib/InstallOptions/Readme.html}{InstallOptions 2.41}: Bitmaps are now automatically centered, fixed a bug which prevented enabling the next button from the leave function of InstallOptions pages, fixed a rare freeze
\b New include files for easier scripting: \L{../Examples/LogicLib.nsi}{LogicLib}, \L{../Include/StrFunc.txt}{StrFunc} and \L{../Include/Sections.nsh}{Sections}
\b New and improved utilities: \L{../Contrib/Makensisw/Readme.txt}{MakeNSISw}, NSIS Menu (NSIS.exe), NSIS Update (Bin\\NSIS Update.exe) and zip2exe (Bin\\zip2exe.exe)
\b Fixed some bugs with LZMA/bzip2 and non-solid compression
\b Fixed a bug that caused escaping not to be ignored on extended !define lines
\b Language files updates and fixes
\b Fixed installer crash when certain language strings were not referenced in all languages
\b Some new and improved graphics
\b Made CreateShortcut case insensitive when parsing hot key
\b Some documentation improvements and fix-ups
\b \L{../Contrib/Modern UI/Readme.html}{Modern UI 1.69}: Made all uninstaller pages work without installer pages and fixed top text on uninstaller license page
\b Set focus to the main control in each page to ease keyboard control (plug-ins too)
\b LangStrings and user variables limit is now 16383 and is enforced
\b Fixed control colors set using SetCtlColors not changing when the system colors were changed
\b Log window now responds to the context menu key
\b Fixed a bug which caused beeping when the space key is hit on the components tree
\b Added code to prevent weird usage of WM_COMMAND which can cause weird behavior
\b Fixed compile errors when NSIS_CONFIG_COMPONENTPAGE, NSIS_CONFIG_PLUGIN_SUPPORT or NSIS_SUPPORT_HWNDS are not defined
\b More language files updated to the latest version
\b Fixed CHM's script errors
\b Documentation improvements
\S2{} Utilities and Plug-ins
\b \L{../Contrib/InstallOptions/Readme.html}{InstallOptions 2.4}: NOTIFY for link, drop list and list box; UI fixes and improvements. See IO's \L{../Contrib/InstallOptions/Changelog.txt}{change log} for a complete list
\b \L{../Contrib/Makensisw/Readme.txt}{MakeNSISW}: Improved user interface, added support for named symbol sets and fixed best compressor selector
\b \L{../Contrib/Modern UI/Readme.html}{Modern UI 1.68}: New settings for extra space for title and text on Welcome page and Finish page, improved handling of verbose settings, language file string for uninstaller reboot information, more
\b Shell folders are now detected using shell API functions and not the registry. This is the recommended method by Microsoft. New constants have been added in the process ($FONTS, $SENDTO and more...). See \k{varconstant} for more details.
\b Added \L{../Examples/LogicLib.nsi}{LogicLib} to distribution (easier conditional execution etc.)
\b Added \R{adirverify}{DirVerify} and \R{getinstdirerror}{GetInstDirError} to allow custom error checking when the installation directory is invalid or the drive does not have enough space
\b \L{../Contrib/InstallOptions/Readme.html}{InstallOptions 2.3}: Added new control type "Button", added new flag "NOTIFY", added new flag "NOWORDWRAP" for multi-line text boxes, reduced size down to 12K
\b \L{../Contrib/Makensisw/Readme.txt}{MakeNSISW}: More options to set the compression method
\b Zip2Exe 0.31: Fixed compression setting, LZMA compression support
\b The /LANG parameter is no longer available for any text setting instructions. You must use a \R{langstring}{LangString} if you want to make a certain text multilingual. This means you can also set one text for all languages. To make the license data multilingual you should use \R{licenselangstring}{LicenseLangString}.
\b \L{../Contrib/Modern UI/Readme.html}{Modern UI 1.67}: Because of the new syntax for pages, renaming of settings and variable names etc., you have to make some changes to your scripts, see the \L{../Contrib/Modern UI/Readme.html}{Modern UI Readme} for details.
\b \R{page}{Custom Pages} now have a leave function. As this parameter is placed before the caption you have to add another "" empty string for the title to work.
\b \R{onselchange}{.onSelChange} is no longer called when the components page is created.
\b The icons folder has been renamed to Graphics and was reorganized. If you were using any files from Contrib\\Icons in your script, you should update it to point to the new image or icon path.
\b UpgradeDLL has been changed, it's \e{highly recommend} that you include the new version in your script using \c{!include "UpgradeDLL.nsh"} instead of the old one.
\b \L{../Contrib/Modern UI/Readme.html}{Modern UI 1.67}: New system & syntax for pages, settings (support for multiple pages of the same type, page specific settings, more customization options etc.), Welcome/Finish pages for uninstaller, \R{alicenseforceselection}{LicenseForceSelection} support, new options for Finish page / language selection dialog, fixes, more
\b RO sections can now be in \R{ainsttype}{InstTypes} too (defaults to old behavior)
\b Increased limit of InstTypes to 32
\b Improved macros & functions: UpgradeDLL, GetParent, GetParameters. Using the new versions is recommended.
\b Fixed SetOutPath not setting current directory if the directory didn't exist before
\b Components tree: fixed problems with sub-sections with RO sections as children, SF_EXPAND now refreshes the components tree and added SF_PSELECTED for partially selected sub-sections
\b Improved \R{aaddbrandingimage}{AddBrandingImage}: doesn't depend on the UI, can set image on the bottom and on the right, support for custom padding value
\b Better installation directory verification
\b Fixed all known problems with temporary files and directories
\b \L{../Contrib/InstallOptions/Readme.html}{InstallOptions 2.2}: added LINK control, added EXTENDEDSELECT flag for list boxes which replaces MULTISELECT that now acts exactly as the real style flag ([double] click turns on or off selection), fixes
\b define_if_last in Page command also works when a define has not been specified for all Page commands.\\<br\\>This fixes the problem with the Modern UI "Click Next" / "Click Install" texts.