diff --git a/Contrib/InstallOptions/Readme.html b/Contrib/InstallOptions/Readme.html
index 6d0f4aef..46d8c7c6 100644
--- a/Contrib/InstallOptions/Readme.html
+++ b/Contrib/InstallOptions/Readme.html
@@ -3,20 +3,25 @@
InstallOptions 2
-
+
+
diff --git a/Contrib/System/System.html b/Contrib/System/System.html
index 9a2b15b5..0ba929c7 100644
--- a/Contrib/System/System.html
+++ b/Contrib/System/System.html
@@ -3,6 +3,21 @@
NSIS System Plug-in
+
+
NSIS System Plug-in
diff --git a/Contrib/VPatch/Readme.html b/Contrib/VPatch/Readme.html
index 3b9d700c..62321f66 100644
--- a/Contrib/VPatch/Readme.html
+++ b/Contrib/VPatch/Readme.html
@@ -3,23 +3,33 @@
VPatch 3
-
+
+
@@ -167,9 +177,9 @@ vpatch::vpatchfile "patch.pat" "oldfile.txt" "temporary_newfile.txt"
the DOS period) can be returned by GenPat. GenPat will return an
exit code based on success of the patch generation. Here is a list
of the possible exit codes:
-
+
- Exit code |
+ Exit code |
Description |
diff --git a/Contrib/nsDialogs/Readme.html b/Contrib/nsDialogs/Readme.html
index 1d1a32ab..8ab9594e 100644
--- a/Contrib/nsDialogs/Readme.html
+++ b/Contrib/nsDialogs/Readme.html
@@ -2,13 +2,17 @@
nsDialogs
-
+
+
diff --git a/Docs/src/bin/halibut/bk_xhtml.c b/Docs/src/bin/halibut/bk_xhtml.c
index 9129e9bb..6f5d362d 100644
--- a/Docs/src/bin/halibut/bk_xhtml.c
+++ b/Docs/src/bin/halibut/bk_xhtml.c
@@ -1436,7 +1436,9 @@ static void xhtml_doheader(FILE * fp, word * title)
fprintf(fp,
"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
fprintf(fp,
- "\n\n\n");
+ "\n" \
+ "\n" \
+ "");
if (title == NULL)
fprintf(fp, "Documentation");
else
diff --git a/Docs/src/compiler.but b/Docs/src/compiler.but
index fef66994..7bf912d6 100644
--- a/Docs/src/compiler.but
+++ b/Docs/src/compiler.but
@@ -144,6 +144,9 @@ This command will execute 'command' using a call to system(). You can store the
\c !ifdef something
\c !echo "something is defined"
\c !endif
+\c !system 'attrib +H Secret.txt' = 0
+\c !system 'ping localhost' ERRLVL
+\c !echo "Ping returned ${ERRLVL}"
\S1{tempfile} !tempfile
diff --git a/Docs/src/generalpurpose.but b/Docs/src/generalpurpose.but
index 22eb3077..2621b5ef 100644
--- a/Docs/src/generalpurpose.but
+++ b/Docs/src/generalpurpose.but
@@ -45,6 +45,7 @@ keyboard_shortcut should be in the form of 'flag|c' where flag can be a combinat
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).
+\c CreateShortcut "$DESKTOP\My Program.lnk" "$INSTDIR\My Program.exe"
\c CreateDirectory "$SMPROGRAMS\My Company"
\c CreateShortcut "$SMPROGRAMS\My Company\My Program.lnk" "$INSTDIR\My Program.exe" \
\c "some command line parameters" "$INSTDIR\My Program.exe" 2 SW_SHOWNORMAL \
diff --git a/Docs/src/intro.but b/Docs/src/intro.but
index 6b8e6d91..ed1e0190 100644
--- a/Docs/src/intro.but
+++ b/Docs/src/intro.but
@@ -13,8 +13,6 @@ Because it's based on script files you can fully control every part of your inst
The scripting language supports variables, functions and string manipulation, just like a normal programming language - but designed for the creation of installers.
Even with all these features, NSIS is still the smallest installer system available. With the default options, it has an overhead of only 34 KB.
-With NSIS 3 you can also create \R{intro-unicode}{Unicode installers}, targeting all the languages supported by the OS without display issues.
-
\H{intro-features} Main Features
\\Small overhead size\\
@@ -31,11 +29,11 @@ You can choose between three different integrated compression methods (ZLib, BZi
\\Script based\\
-Unlike other systems that can only generate installers based on a list of files and registry keys, NSIS has a powerful scripting language. This script language is designed for installers and has commands that help you to perform many installation tasks. You can easily add custom logic and handle different upgrades, version checks and more. On the \W{https://nsis.sourceforge.io/wiki/}{NSIS Wiki} you can find a lot more.
+Unlike other systems that can only generate installers based on a list of files and registry keys, NSIS has a powerful \R{tutscriptfiles}{scripting language}. This script language is designed for installers and has commands that help you to perform many installation tasks. You can easily add custom logic and handle different upgrades, version checks and more. On the \W{https://nsis.sourceforge.io/wiki/}{NSIS Wiki} you can find a lot more.
\\Multiple languages in one installer\\
-One installer can support multiple interface languages. More than 60 translations are already included and you can also create your own language files. RTL (right-to-left) languages such as Arabic and Hebrew are fully supported. Creating a Unicode native installer is also possible for even more supported languages.
+One installer can support multiple interface languages. More than 60 translations are already included and you can also create your own language files. RTL (right-to-left) languages such as Arabic and Hebrew are fully supported. Creating a \R{intro-unicode}{Unicode native installer} is also possible, targeting all the languages supported by the OS without display issues.
\\Many features and checks for the target system\\
diff --git a/Docs/src/script.but b/Docs/src/script.but
index bbc6699a..bd72427f 100644
--- a/Docs/src/script.but
+++ b/Docs/src/script.but
@@ -92,6 +92,20 @@ Line extension for long commands works for comments as well. It can be a bit con
\c # A comment \
\c still a comment here...
+\\Compiler Commands\\
+
+Compiler commands start with a ! and are executed at compile time.
+
+\c !define MESSAGE "Hello"
+\c
+\c !ifdef MESSAGE
+\c MessageBox MB_OK "${MESSAGE}"
+\c !else
+\c !error "MESSAGE not defined, cannot continue!"
+\c !endif
+
+\R{comptime}{More information...}
+
\\Configuration file\\
If a file named "nsisconf.nsh" in the config directory exists, it will be included by default before any scripts (unless the /NOCONFIG command line parameter is used). The config directory on Windows is the same directory as makensis.exe is in. On other platforms this is set at install time and defaults to $PREFIX/etc/. You can alter this at runtime, see \k{usageenvironment} for more information.
diff --git a/Docs/src/stack.but b/Docs/src/stack.but
index d56b294d..4713e12a 100644
--- a/Docs/src/stack.but
+++ b/Docs/src/stack.but
@@ -1,5 +1,7 @@
\S1{stackinst} Stack Support
+The stack is a temporary storage area useful for saving the state of registers/variables and for communicating with functions and plug-ins. See \W{https://en.wikipedia.org/wiki/Stack_(abstract_data_type)}{Wikipedia} for a general introduction to stacks.
+
\S2{Exch} Exch
\c [user_var | stack_index]
diff --git a/Docs/src/var.but b/Docs/src/var.but
index 30e2cd54..b42a1d37 100644
--- a/Docs/src/var.but
+++ b/Docs/src/var.but
@@ -61,11 +61,11 @@ Note that some of the new constants will not work on every OS. For example, $CDB
\e{$PROGRAMFILES}, \e{$PROGRAMFILES32}, \e{$PROGRAMFILES64}
-The program files directory (usually \c{C:\\Program Files} but detected at runtime). On Windows x64, $PROGRAMFILES and $PROGRAMFILES32 point to \c{C:\\Program Files (x86)} while $PROGRAMFILES64 points to \c{C:\\Program Files}. Use $PROGRAMFILES64 when installing x64 applications.
+The program files directory (usually \c{C:\\Program Files} but detected at runtime). On 64-bit Windows, $PROGRAMFILES and $PROGRAMFILES32 point to \c{C:\\Program Files (x86)} while $PROGRAMFILES64 points to \c{C:\\Program Files}. Use $PROGRAMFILES64 when installing 64-bit applications.
\e{$COMMONFILES}, \e{$COMMONFILES32}, \e{$COMMONFILES64}
-The common files directory. This is a directory for components that are shared across applications (usually \c{C:\\Program Files\\Common Files} but detected at runtime). On Windows x64, $COMMONFILES and $COMMONFILES32 point to \c{C:\\Program Files (x86)\\Common Files} while $COMMONFILES64 points to \c{C:\\Program Files\\Common Files}. Use $COMMONFILES64 when installing x64 applications.
+The common files directory. This is a directory for components that are shared across applications (usually \c{C:\\Program Files\\Common Files} but detected at runtime). On 64-bit Windows, $COMMONFILES and $COMMONFILES32 point to \c{C:\\Program Files (x86)\\Common Files} while $COMMONFILES64 points to \c{C:\\Program Files\\Common Files}. Use $COMMONFILES64 when installing 64-bit applications.
\e{$DESKTOP}
diff --git a/Docs/style.css b/Docs/style.css
index 1fc07318..b573c060 100644
--- a/Docs/style.css
+++ b/Docs/style.css
@@ -1,7 +1,7 @@
-body {
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-size: 0.8em;
-}
+html, body { font-family: Verdana, Arial, Helvetica, sans-serif; }
+html { font-size: 0.8em; }
+body { font-size: 1em; font-size: 1rem; }
+
p, li {
font-size: 100%;
}
@@ -17,19 +17,26 @@ h3 {
h4 {
font-size: 120%;
}
+h5 {
+ font-size: 115%;
+}
+h6 {
+ font-size: 110%;
+}
+pre, code {
+ font-family: Courier New, Courier, monospace,serif; /* code.iamkate.com/html-and-css/fixing-browsers-broken-monospace-font-handling/ */
+}
+code {
+ font-size: 100%;
+}
pre {
- font-family: Courier New, Courier, monospace,monospace;
- font-size: 1.05em;
+ font-size: 100%;
background-color: #F7F7F7;
padding: 1px;
}
pre b {
text-decoration: underline;
}
-code {
- font-family: Courier New, Courier, monospace,monospace; /* code.iamkate.com/html-and-css/fixing-browsers-broken-monospace-font-handling/ */
- font-size: 1em;
-}
a {
color: #567599;
text-decoration: none;
diff --git a/Examples/example1.nsi b/Examples/example1.nsi
index 89c04943..e2a3802c 100644
--- a/Examples/example1.nsi
+++ b/Examples/example1.nsi
@@ -42,4 +42,4 @@ Section "" ;No components page, name is not important
; Put file there
File example1.nsi
-SectionEnd ; end the section
+SectionEnd
diff --git a/Examples/unicode.nsi b/Examples/unicode.nsi
index 4dc8ceab..6c604f35 100644
--- a/Examples/unicode.nsi
+++ b/Examples/unicode.nsi
@@ -1,5 +1,4 @@
-; Unicode is not enabled by default
-; Unicode installers will not be able to run on Windows 9x!
+; Unicode installers will not be able to run on Windows 9x!
Unicode true
Name "Unicode Games"