Added sections, functions, and labels. Now only instructions is left

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@970 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
rainwater 2002-09-10 12:05:31 +00:00
parent a2b932dbe8
commit beec5fe831
5 changed files with 76 additions and 3 deletions

View file

@ -1,4 +1,4 @@
bin\halibut.exe config.but intro.but usage.but script.but attributes.but compilerflags.but sections.but history.but license.but
bin\halibut.exe config.but intro.but usage.but script.but attributes.but compilerflags.but sections.but functions.but labels.but history.but license.but
@del *.hlp
@del *.cnt
@copy Contents.html index.html

9
Docs/src/functions.but Normal file
View file

@ -0,0 +1,9 @@
\H{functions} Functions
Functions are like similar to Sections in that they contain zero or more instructions. Functions are not called by the installer directly, instead they are called from Sections using the Call instruction (Note: there are some special Callback Functions that can be called by the installer directly).
\b Functions must be declared outside of Sections or other Functions.
\b Function names beginning with "." (e.g. ".Whatever") are generally reserved for callback functions.
\b Function names beginning with "un." are functions that will be generated in the Uninstaller. Hence, normal install Sections and functions cannot call uninstall functions, and the Uninstall Section and uninstall functions cannot call normal functions.

View file

@ -1,8 +1,35 @@
\A{history} Release History
\e{v2.0a8}
\e{v2.0b0}
\b Right mouse button "Copy to clipboard" context menu for the Details window
\b PluginDir is an attribute, not an instruction, corrected makensis.htm
\b Plugin syntax now requires dll name, e.g. dll::func not just func
\b Licence text receives initial focus (page up & down work immediately)
\b Return key still works with initial focus licence text change ;)
\b EDIT ME - made win9x move/delete on reboot support proper and function like on win2k (in that shit is deleted in order)
\b Now always loads RichEdit v2 if present (links work on Win9x)
\b DeleteRegKey now complains if given a third parameter (other than /ifempty)
\b Included makensisw 1.9
\b New InstallOptions
\b Added nsExec
\b Added UberSplash
\b A lot of new icons
\b New docs format (WOOHA!)
\b CTRL-C in Detail View now copies contents to clipboard
\e{v2.0a7}
@ -68,12 +95,14 @@
\b CallInstDLL /NOUNLOAD added (works on plugin calls too)
\e{v2.0a6}
\b Fixed two bugs with the plug-in mechanism
\b Fixed infinite loop bug
\e{v2.0a5}
\b Added UseOuterUIItem
@ -96,6 +125,7 @@
\b Included MagicLime.exe by snowchyld
\e{v2.0a4}
\b Added automatic detection, packing, unpacking and deletion of plugin dlls
@ -114,6 +144,7 @@
\b 'LogSet on' now builds a log file if not already created
\e{v2.0a2}
\b Added NSISDIR
@ -162,6 +193,7 @@
\b Faster compile time (WIN32_LEAN_AND_MEAN)
\e{v2.0a1}
\b Added expand node option to Section and SubSection
@ -174,6 +206,7 @@
\b Reorganized NSIS directory structure
\e{v2.0a0}
\b TreeView component list (care of Jeff Doozan)

8
Docs/src/labels.but Normal file
View file

@ -0,0 +1,8 @@
\H{labels} Labels
Labels are the targets of Goto instructions, or of the various branching instructions (such as IfErrors, MessageBox, IfFileExists, and StrCmp). Labels must be within a Section or a Function. Labels are local in scope, meaning they are only accessable from within the Section or Function that they reside in.
To declare a label, simply do:
\e{MyLabel:}
Labels cannot begin with a -, +, !, $, or 0-9. When specifying labels for the various instructions that require them, remember that both an empty string ("") and 0 both represent the next instruction (meaning no Goto will occur). Labels beginning with a period (.) are global, meaning you can jump to them from any function or section (though you cannot jump to an uninstall global label from the installer, and vice versa).

View file

@ -20,6 +20,29 @@ SectionIn \e{insttype_index [insttype_index] [RO]}
This command specifies which Install Types (see InstType) the current section defaults to the enabled state in. Multiple SectionIn commands can be specified (they are combined). If you specify RO as a parameter, then the section will be Read-Only, meaning it will always be set to install.
\S{ssectionend} SectionEnd
SectionEnd
This command closes the current open section.
\S{ssubsection} SubSection
SubSection \e{[/e] Caption}
This command inserts a subsection. The subsection must be close 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.
\S{ssubsectionend} SubSectionEnd
SubSectionEnd
Closes a subsection opened with SubSection.
\S{saddsize} AddSize
AddSize \e{size_kb}
Tells the installer that the current section needs an additional "size_kb" kilobytes of disk space. Only valid within a section (will have no effect outside of a section or in a function).