summaryrefslogtreecommitdiff
path: root/Docs/src
diff options
context:
space:
mode:
authorThomas Gaugler <thomas@dadie.net>2020-01-13 20:44:30 +0100
committerThomas Gaugler <thomas@dadie.net>2020-01-13 20:44:30 +0100
commitbf24c4ae3b0ee94966544755e136d9666cb1e4c8 (patch)
tree967c5f81df6d10ac32f726ba535d1ce71894f5cc /Docs/src
parentac85482c7a30e46f0a366bd30e292e2afea78dab (diff)
New upstream version 3.05
Diffstat (limited to 'Docs/src')
-rwxr-xr-xDocs/src/SConscript6
-rwxr-xr-xDocs/src/attributes.but48
-rwxr-xr-xDocs/src/config.but2
-rwxr-xr-xDocs/src/generalpurpose.but3
-rwxr-xr-xDocs/src/history.but52
-rwxr-xr-xDocs/src/int.but6
-rwxr-xr-xDocs/src/misc.but2
-rwxr-xr-xDocs/src/sections.but26
-rwxr-xr-xDocs/src/ui.but11
9 files changed, 134 insertions, 22 deletions
diff --git a/Docs/src/SConscript b/Docs/src/SConscript
index e0241c9..6cbf996 100755
--- a/Docs/src/SConscript
+++ b/Docs/src/SConscript
@@ -50,8 +50,8 @@ chapters = 5
appendices = 9
htmls = Split('IndexPage.html Contents.html') \
- + map(lambda ch: 'Chapter' + str(ch + 1) + '.html', range(chapters)) \
- + map(lambda ap: 'Appendix' + chr(ord('A') + ap) + '.html', range(appendices))
+ + list(map(lambda ch: 'Chapter' + str(ch + 1) + '.html', range(chapters))) \
+ + list(map(lambda ap: 'Appendix' + chr(ord('A') + ap) + '.html', range(appendices)))
docsdefault_install_basepath = 'Docs'
@@ -137,7 +137,7 @@ def docs_fixer(target, source, env):
data = open(html.path,'rb').read()
for pat, repl in fixes.items():
- data = re.sub(env.subst(pat), env.subst(repl), data)
+ data = re.sub(env.subst(pat).encode(), env.subst(repl).encode(), data)
open(html.path, 'wb').write(data)
diff --git a/Docs/src/attributes.but b/Docs/src/attributes.but
index b100e9b..e5566d4 100755
--- a/Docs/src/attributes.but
+++ b/Docs/src/attributes.but
@@ -230,12 +230,14 @@ Valid values for flag are "smooth" (smooth the progress bar) or "colored" (color
\S2{ainsttype} InstType
-\c install_type_name | /NOCUSTOM | /CUSTOMSTRING=str | /COMPONENTSONLYONCUSTOM
+\c install_type_name [index_output] | /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 type. If the name is prefixed with 'un.' it is an uninstaller install type. The name can contain variables which will be processed at runtime before the components page shows. Another way of changing the \R{ainsttype}{InstType} name during runtime is the \R{sinsttypesettext}{InstTypeSetText} command. The difference is that with \R{sinsttypesettext}{InstTypeSetText} you are saving your precious user variables. The first type is the default (generally 'Typical'). 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 shown if the "Custom" install type is selected.
+Adds an install type to the install type list, or disables the custom install type. There can be as many as \#{NSIS_MAX_INST_TYPES}32 types, each one specifying the name of the install type. If the name is prefixed with 'un.' it is an uninstaller install type. The name can contain variables which will be processed at runtime before the components page shows. Another way of changing the \R{ainsttype}{InstType} name during runtime is the \R{sinsttypesettext}{InstTypeSetText} command. The difference is that with \R{sinsttypesettext}{InstTypeSetText} you are saving your precious user variables. The first type is the default (generally 'Typical' or 'Full'). 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 shown if the "Custom" install type is selected.
Accepts variables for type names. If variables are used, they must be initialized before the components page is created.
+\R{ssectioninsttype}{SectionInstType} is used to bind \cw{Section}s to install types.
+
\S2{alicensebkcolor} LicenseBkColor
\c color | \\<b\\>/gray\\</b\\> | /windows
@@ -285,7 +287,7 @@ Accepts variables. If variables are used, they must be initialized before the li
\c \\<b\\>notset\\</b\\>|true|false
-\# Note: PerMonitor is not documented because it is not fully supported yet, we need to handle WM_DPICHANGED
+\# Note: true==System. PerMonitor is not documented because it is not fully supported yet, we need to handle WM_DPICHANGED.
\# Example: ManifestDPIAware System ; System DPI on Vista/7/8/8.1/10(<10.1607(AU))
\# Example: ManifestDPIAwareness "PerMonitorV2,System" ; PMv2 on 10.1703(CU)+, System on 10.1607(AU)
@@ -293,6 +295,24 @@ Declare that the installer is DPI-aware. A DPI-aware application is not scaled b
See \W{http://msdn.microsoft.com/en-us/library/dd464660}{MSDN} for more information about DPI-aware applications.
+\# \S2{amanifestdpiawareness} ManifestDPIAwareness
+\#
+\# \c \\<b\\>notset\\</b\\>|comma_separated_string
+
+\S2{amanifestlongpathaware} ManifestLongPathAware
+
+\c \\<b\\>notset\\</b\\>|true|false
+
+Declare that the installer can handle paths longer than MAX_PATH. Only supported on Windows 10 Anniversary Update and later.
+
+\NsisWarnBlockContainerBegin
+\\<b\\>Note: \\</b\\> Instructions like CopyFiles and CreateShortcut do not support long paths!
+\NsisWarnBlockContainerEnd
+
+\NsisWarnBlockContainerBegin
+\\<b\\>Note: \\</b\\> Has no effect if the "Enable Win32 long paths" policy is not enabled.
+\NsisWarnBlockContainerEnd
+
\S2{amanifestsupportedos} ManifestSupportedOS
\c none|all|WinVista|\\<b\\>Win7|Win8|Win8.1|Win10\\</b\\>|{GUID} [...]
@@ -301,6 +321,10 @@ Declare that the installer is compatible with the specified Windows version(s).
Windows 8.1 and later will fake its version number if you don't declare support for that particular version. You can read more about the other changes in behavior on \W{http://msdn.microsoft.com/en-us/library/windows/desktop/hh848036}{MSDN}.
+\# \S2{amanifestmaxversiontested} ManifestMaxVersionTested
+\#
+\# \c maj.min.bld.rev
+
\S2{amiscbuttontext} MiscButtonText
\c [back_button_text [next_button_text] [cancel_button_text] [close_button_text]]
@@ -327,6 +351,24 @@ Accepts variables. If variables are used, they must be initialized in \R{oninit}
Specifies the output file that the MakeNSIS should write the installer to. This is just the file that MakeNSIS writes, it doesn't affect the contents of the installer.
+\S2{apeaddresource} PEAddResource
+
+\c [/OVERWRITE|/REPLACE] file restype resname [reslang]
+
+Adds \cw{file} as a resource to the installer and uninstaller. \cw{restype} specifies the resource type and can be any string or # followed by a standard type or number. \cw{resname} must be # followed by a number. \cw{reslang} is optional and specifies the language id of the resource. Replacing standard NSIS resources is not supported, you should use \R{aicon}{Icon} and \R{achangeui}{ChangeUI} instead.
+
+\c PEAddResource "myimage.bmp" "#2" "#1337"
+\c PEAddResource "mybonus.ico" "#Icon" "#200"
+\c PEAddResource "myimage.png" "PNG" "#1234"
+
+\S2{aperemoveresource} PERemoveResource
+
+\c [/NOERRORS] restype resname reslang|ALL
+
+Removes a resource added with \cw{PEAddResource}.
+
+\c PERemoveResource "#Icon" "#200" ALL
+
\S2{arequestexecutionlevel} RequestExecutionLevel
\c none|user|highest|\\<b\\>admin\\</b\\>
diff --git a/Docs/src/config.but b/Docs/src/config.but
index e3aa732..1099517 100755
--- a/Docs/src/config.but
+++ b/Docs/src/config.but
@@ -2,7 +2,7 @@
\#{* Common config shared by all output formats *}
\#{**********************************************}
-\define{NsisCopyright} Copyright (C) 1999-2018 Contributors
+\define{NsisCopyright} Copyright (C) 1999-2019 Contributors
\copyright \NsisCopyright
diff --git a/Docs/src/generalpurpose.but b/Docs/src/generalpurpose.but
index bbe73d4..e0ddb14 100755
--- a/Docs/src/generalpurpose.but
+++ b/Docs/src/generalpurpose.but
@@ -38,9 +38,10 @@ You should always specify an absolute path.
\c [/NoWorkingDir] link.lnk target.file [parameters [icon.file [icon_index_number [start_options [keyboard_shortcut [description]]]]]]
Creates a shortcut 'link.lnk' that links to 'target.file', with optional parameters 'parameters'.
+You must specify an absolute path to the .lnk file.
The icon used for the shortcut is 'icon.file,icon_index_number'; for default icon settings use empty strings for both icon.file and icon_index_number.
start_options should be one of: \e{SW_SHOWNORMAL}, \e{SW_SHOWMAXIMIZED}, \e{SW_SHOWMINIMIZED}, or an empty string.
-keyboard_shortcut should be in the form of 'flag|c' where flag can be a combination (using |) of: \e{ALT}, \e{CONTROL}, \e{EXT}, or \e{SHIFT}. c is the character to use (a-z, A-Z, 0-9, F1-F24, etc). Note that no spaces are allowed in this string. A good example is "ALT|CONTROL|F8". $OUTDIR is used as the working directory. You can change it by using \R{setoutpath}{SetOutPath} before creating the Shortcut or use /NoWorkingDir if you don't need to set the working directory.
+keyboard_shortcut should be in the form of 'flag|c' where flag can be a combination (using |) of: \e{ALT}, \e{CONTROL}, \e{EXT}, or \e{SHIFT}. c is the character to use (a-z, A-Z, 0-9, F1-F24, etc). Note that no spaces are allowed in this string. A good example is "ALT|CONTROL|F8". $OUTDIR is stored as the shortcut's working directory property. You can change it by using \R{setoutpath}{SetOutPath} before creating the shortcut or use /NoWorkingDir if you don't need to set the working directory property.
description should be the description of the shortcut, or comment as it is called under XP.
The error flag is set if the shortcut cannot be created (i.e. either of the paths (link or target) does not exist, or some other error).
diff --git a/Docs/src/history.but b/Docs/src/history.but
index 23c8598..5095db3 100755
--- a/Docs/src/history.but
+++ b/Docs/src/history.but
@@ -1,5 +1,51 @@
\A{history} Changelog and Release Notes
+\H{v3.05} 3.05
+
+Released on December 15th, 2019
+
+\S1{v3.05-rl} Release Notes
+
+ANSI targets are deprecated, consider moving to Unicode.
+
+\S1{v3.05-cl} Changelog
+
+\S2{} Major Changes
+
+\b Added \R{apeaddresource}{PEAddResource} and \R{aperemoveresource}{PERemoveResource}
+
+\b Added \R{loadandsetimage}{LoadAndSetImage}
+
+\b Allow quoted library path in System::Call (\W{http://sf.net/p/nsis/bugs/546}{bug #546} and \W{http://sf.net/p/nsis/bugs/1225}{bug #1225})
+
+\b Improved \L{../Docs/nsExec/nsExec.txt}{nsExec} Unicode and tab output parsing (\W{http://sf.net/p/nsis/bugs/1232}{bug #1232})
+
+\S2{} Minor Changes
+
+\b Added experimental \R{amanifestlongpathaware}{ManifestLongPathAware} attribute
+
+\# Undocumented: \b Added ManifestMaxVersionTested
+
+\b %1 in \R{finalize}{!finalize} command can be specified multiple times
+
+\b Fixed -O stderr stream issue (\W{http://sf.net/p/nsis/bugs/1221}{bug #1221})
+
+\b Fixed \R{library_install}{InstallLib} .NSI space-in-path bug (\W{http://sf.net/p/nsis/bugs/1222}{bug #1222})
+
+\b \L{../Docs/StrFunc/StrFunc.txt}{StrFunc} now supports a "using" idiom to help with forward-declaration of functions (\W{http://sf.net/p/nsis/bugs/1229}{bug #1229})
+
+\b Added \R{ssectioninsttype}{SectionInstType}
+
+\b Zero uninitialized data in icon group (\W{http://sf.net/p/nsis/bugs/1230}{bug #1230})
+
+\b Automatically doubles ampersands in the \R{aname}{Name} attribute
+
+\b Fixed \L{../Docs/nsDialogs/Readme.html}{nsDialogs} CB/LB_Get/SetItemData macros (\W{http://sf.net/p/nsis/bugs/1238}{bug #1238})
+
+\S2{} Translations
+
+\b Updated Hindi (\W{http://sf.net/p/nsis/patches/291}{patch #291}) and Portuguese (\W{http://sf.net/p/nsis/bugs/1219}{bug #1219})
+
\H{v3.04} 3.04
Released on December 15th, 2018
@@ -26,6 +72,8 @@ Released on December 15th, 2018
\b AddBrandingImage now supports dialog units
+\# Undocumented: \b Added ManifestDisableWindowFiltering and ManifestGdiScaling
+
\b Fixed !macroundef of last defined macro bug
\b Fixed MultiUser caption string bug (\W{http://sf.net/p/nsis/bugs/1012}{bug #1012})
@@ -74,6 +122,8 @@ Released on January 29th, 2018
\b Added more !define /math operators
+\# Undocumented: \b Added ManifestDPIAwareness
+
\b Added WinVer.nsh IsDomainController (\W{http://sf.net/p/nsis/patches/286}{patch #286})
\b Plug-ins now set the ASLR, DEP, LAA, NOSEH and TS PE flags (\W{http://sf.net/p/nsis/bugs/1188}{bug #1188})
@@ -140,7 +190,7 @@ Released on July 23rd, 2017
\b Added support for MUI_UNCONFIRMPAGE_VARIABLE (\W{http://sf.net/p/nsis/feature-requests/511}{RFE #511}) and MUI_PAGE_CUSTOMFUNCTION_DESTROYED
-\b Unicode nsExec now supports the /OEM switch (\W{http://sf.net/p/nsis/bugs/1171}{bug #1171})
+\b Unicode \L{../Docs/nsExec/nsExec.txt}{nsExec} now supports the /OEM switch (\W{http://sf.net/p/nsis/bugs/1171}{bug #1171})
\S2{} Translations
diff --git a/Docs/src/int.but b/Docs/src/int.but
index b0f247e..e7db05f 100755
--- a/Docs/src/int.but
+++ b/Docs/src/int.but
@@ -4,15 +4,17 @@
\c user_var(output) format numberstring
-Formats the number in "numberstring" using the format "format", and sets the output to user variable $x. Example format strings include "%08X" "%u"
+Formats the number in "numberstring" using the format "format", and sets the output to user variable $x. The format string supports the same syntax as \W{https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-wsprintfw}{wsprintf} except that the \cw{I[32|64]} length fields and the \cw{p} type are not supported. Example format strings include "%08X" and "%u".
\c IntFmt $0 "0x%08X" 195948557
-\c IntFmt $0 "%c" 0x41
+\c IntFmt $1 "%c" 0x41
\S2{int64fmt} Int64Fmt
\c user_var(output) format numberstring
+Supports the \cw{I} and \cw{I64} length fields and the \cw{p} type in addition to the syntax supported by \cw{IntFmt}.
+
\NsisFuncReq64
\c Int64Fmt $0 "%I64x" 244837743786702
diff --git a/Docs/src/misc.but b/Docs/src/misc.but
index da449c2..3cdc8fe 100755
--- a/Docs/src/misc.but
+++ b/Docs/src/misc.but
@@ -83,7 +83,7 @@ Note that, if used in installer code, this will only affect the installer, and i
\c sleeptime_in_ms
-Pauses execution in the installer for sleeptime_in_ms milliseconds. sleeptime_in_ms can be a variable, e.g. "$0" or a number, i.e. "666".
+Pauses execution in the installer for sleeptime_in_ms milliseconds. sleeptime_in_ms can be a variable, e.g. "$0" or a number, i.e. "4321".
\c DetailPrint "sleeping..."
\c Sleep 3000
diff --git a/Docs/src/sections.but b/Docs/src/sections.but
index 3d1fa14..9ed1944 100755
--- a/Docs/src/sections.but
+++ b/Docs/src/sections.but
@@ -71,23 +71,31 @@ To access the section index, curly brackets must be used and the code must be lo
This command closes the current open section.
-\S2{ssectionin} SectionIn
+\S2{ssectioninsttype} SectionInstType
-\c insttype_index [insttype_index] [RO]
+\c insttype_index [insttype_index [...]] [RO]
-This command specifies which install types (see \R{ainsttype}{InstType}) the current section defaults to the enabled state in. Multiple \R{ssectionin}{SectionIn} commands can be specified (they are combined). If you specify RO as a parameter, then the section will be read-only, meaning the user won't be able to change its state. The first install type defined using \R{ainsttype}{InstType} is indexed 1, the next 2 and so on.
+This command specifies which install types (see \R{ainsttype}{InstType}) the current section defaults to the enabled state in. Multiple \cw{SectionInstType} commands can be specified (they are combined). If you specify RO as a parameter, then the section will be read-only, meaning the user won't be able to change its state.
-\c InstType "full"
-\c InstType "minimal"
+\c InstType "Full" IT_FULL
+\c InstType "Minimal" IT_MIN
\c
-\c Section "a section"
-\c SectionIn 1 2
+\c Section "Help"
+\c SectionInstType ${IT_FULL} ${IT_MIN}
\c SectionEnd
\c
-\c Section "another section"
-\c SectionIn 1
+\c Section "Bonus content"
+\c SectionInstType ${IT_FULL}
\c SectionEnd
+\S2{ssectionin} SectionIn
+
+\c insttype_index [insttype_index [...]] [RO]
+
+Works like \cw{SectionInstType} except that the first install type defined using \R{ainsttype}{InstType} is indexed 1, the next 2 and so on.
+
+\# DEPRECATED
+
\S2{ssectiongroup} SectionGroup
\c [/e] section_group_name [index_output]
diff --git a/Docs/src/ui.but b/Docs/src/ui.but
index fd4dbb2..4e71a38 100755
--- a/Docs/src/ui.but
+++ b/Docs/src/ui.but
@@ -71,6 +71,15 @@ If HWND is a window, Gotos jump_if_window, otherwise, Gotos jump_if_not_window (
\c Goto +2
\c MessageBox MB_OK "no window"
+\S2{loadandsetimage} LoadAndSetImage
+
+\c [/EXERESOURCE] [/STRINGID] [/RESIZETOFIT[WIDTH|HEIGHT]] ctrl imagetype lrflags image
+
+Loads and sets a image on a static control. \cw{ctrl} is the handle of the control. \cw{imagetype} must 0 for bitmaps and 1 for icons (and the control style must match the image type). \cw{lrflags} should be 0x10 to load from a file or 0 to load from a resource. \cw{image} specifies the file path or resource name. Use \cw{/EXERESOURCE} to load a resource from the installer .EXE. Use \cw{/STRINGID} if \cw{image} is a string, otherwise it is interpreted as a number. Use \cw{/RESIZETOFIT[WIDTH|HEIGHT]} to resize the image to the dimensions of the control.
+
+\c LoadAndSetImage /EXERESOURCE $hIconStatic 1 0 103
+\c LoadAndSetImage /STRINGID /RESIZETOFITWIDTH $hBmpStatic 0 0x10 "$PluginsDir\myimg.bmp"
+
\S2{lockwindow} LockWindow
\c on|off
@@ -106,7 +115,7 @@ Sets the current bitmap file displayed as the branding image. If no IMGID is spe
\c show|hide
-Shows or hides the details, depending on which parameter you pass. Overrides the default details view, which is set via \R{ashowinstdetails}{ShowInstDetails}.
+Shows or hides the details on the InstFiles page, depending on which parameter you pass. Overrides the default details view, which is set via \R{ashowinstdetails}{ShowInstDetails}.
\S2{setdetailsprint} SetDetailsPrint