diff --git a/Docs/src/attributes.but b/Docs/src/attributes.but index 122bbad2..4987cff7 100644 --- a/Docs/src/attributes.but +++ b/Docs/src/attributes.but @@ -172,7 +172,7 @@ Valid values for flag are "smooth" (smooth the progress bar) or "colored" (color \c install_type_name | /NOCUSTOM | /CUSTOMSTRING=str | /COMPONENTSONLYONCUSTOM -Adds an install type to the install type list, or disables the custom install type. There can be as many as 32 types, each one specifying the name of the install. Instead of an "hard-coded" name you can use User Variables which are processed at Runtime. This allows you to change InstType name dynamically. Another way of changing the InstType name during runtime is the \R{sinsttypesettext}{InstTypeSetText} command. The difference is that with InstTypeSetText you are saving your precious user variables. The first type is the default (generally 'Typical'). Each type is numbered, starting at 1. See SectionIn for information on how those numbers are used. If the /NOCUSTOM switch is specified, then the "custom" install type is disabled, and the user has to choose one of the pre-defined install types. Alternatively, if the /CUSTOMSTRING switch is specified, the parameter will override the "Custom" install type text. Alternatively, if the /COMPONENTSONLYONCUSTOM flag is specified, the component list will only be show +Adds an install type to the install type list, or disables the custom install type. There can be as many as 32 types, each one specifying the name of the install type. If the name is prefixed with 'un.' it is an uninstaller install type. Instead of an "hard-coded" name you can use user variables which are processed at runtime. This allows you to change InstType name dynamically. Another way of changing the InstType name during runtime is the \R{sinsttypesettext}{InstTypeSetText} command. The difference is that with InstTypeSetText you are saving your precious user variables. The first type is the default (generally 'Typical'). Each type is numbered, starting at 1. See SectionIn for information on how those numbers are used. If the /NOCUSTOM switch is specified, then the "custom" install type is disabled, and the user has to choose one of the pre-defined install types. Alternatively, if the /CUSTOMSTRING switch is specified, the parameter will override the "Custom" install type text. Alternatively, if the /COMPONENTSONLYONCUSTOM flag is specified, the component list will only be show n if the "Custom" install type is selected. \S2{alicensebkcolor} LicenseBkColor diff --git a/Docs/src/sections.but b/Docs/src/sections.but index 99a402fd..49685ccc 100644 --- a/Docs/src/sections.but +++ b/Docs/src/sections.but @@ -4,9 +4,9 @@ Each NSIS installer contains one or more Sections. Each These sections are creat \b Each section contains zero or more instructions. -\b Sections are executed in order by the resulting installer, and if ComponentText is set, the user will have the option of disabling/enabling each section. +\b Sections are executed in order by the resulting installer, and if ComponentText is set, the user will have the option of disabling/enabling each visible section. -\b If a section's name is 'Uninstall', then it is a special Uninstall Section. +\b If a section's name is 'Uninstall' or is prefixed with 'un.', then it is a an uninstaller section. \S1{ssectioncommands} Section Commands @@ -20,7 +20,7 @@ Tells the installer that the current section needs an additional "size_kb" kilob \c [/o] [([!]|[-])section_name] [section index output] -Begins and opens a new section. If section_name is empty, omitted, or begins with a -, then it is a hidden section and the user will not have the option of disabling it. If the section name is 'Uninstall', then it is a special Uninstall Section. If section index output is specified, the parameter will be !defined with the section index (that can be used for \R{sectionsettext}{SectionSetText} etc). If the section name begins with a !, the section will be displayed as bold. If the Switch /o is specified than the Section is unselected by default. +Begins and opens a new section. If section_name is empty, omitted, or begins with a -, then it is a hidden section and the user will not have the option of disabling it. If the section name is 'Uninstall' or is prefixed with 'un.', then it is a an uninstaller section. If section index output is specified, the parameter will be !defined with the section index (that can be used for \R{sectionsettext}{SectionSetText} etc). If the section name begins with a !, the section will be displayed as bold. If the /o switch is specified, the section will be unselected by default. \S2{ssectionend} SectionEnd @@ -34,9 +34,9 @@ This command specifies which install types (see \R{ainsttype}{InstType}) the cur \S2{ssubsection} SubSection -\c [/e] Caption [section index output] +\c [/e] Caption [subsection_name index output] -This command inserts a subsection. The subsection must be closed with SubSectionEnd, and should contain 1 or more Sections. If the subsection name begins with a !, the subsection will be displayed as bold. If /e is present, the sub sections of the sub section will be expanded by default. If section index output is specified, the parameter will be !defined with the section index (that can be used for SectionSetText etc). +This command inserts a subsection. The subsection must be closed with SubSectionEnd, and should contain 1 or more Sections. If the subsection name begins with a !, the subsection will be displayed as bold. If /e is present, the sub sections of the sub section will be expanded by default. If section index output is specified, the parameter will be !defined with the section index (that can be used for SectionSetText etc). If the name is prefixed with 'un.' the subsection is an uninstaller subsection. \S2{ssubsectionend} SubSectionEnd diff --git a/Docs/src/tutorial.but b/Docs/src/tutorial.but index 906d4f22..421e1d68 100644 --- a/Docs/src/tutorial.but +++ b/Docs/src/tutorial.but @@ -52,6 +52,14 @@ An non-silent installer has a set of wizard pages to let the user configure the In a common installer there are several things the user can install. For example in the NSIS distribution installer you can choose to install the source code, additional plug-ins, examples and more. Each of these components has its own piece of code. If the user selects to install this component, then the installer will execute that code. In the script, that code is in sections. Each visible section is a component for the user to choose from. We will not discuss invisible sections in this tutorial. It is possible to build your installer with only one section, but if you want to use the components page and let the user choose what to install you'll have to use more than one section. +Uninstallers can also have multiple sections. Uninstaller section names are prefixed with 'un.'. For example: + +\c Section "Installer Section" +\c SectionEnd +\c +\c Section "un.Uninstaller Section" +\c SectionEnd + The instructions that can be used in sections are very different from the installer attributes instructions, they are executed at runtime on the user's computer. Those instructions can extract files, read from and write to the registry, INI files or normal files, create directories, create shortcuts and a lot more. You can find out more in \R{instr}{Instructions}. The most basic instructions are \R{setoutpath}{SetOutPath} which tells the installer where to extract files and \R{file}{File} which extracts files.