summaryrefslogtreecommitdiff
path: root/Docs/src
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2018-03-31 20:38:11 +0200
committerDidier Raboud <odyx@debian.org>2018-03-31 20:38:11 +0200
commit7786f248e47038a04f3b7983d6f7790317feea5a (patch)
tree8544494f518d6fcc7fbccd7742f081f40eef25a2 /Docs/src
parentf1c7a496dd60399d7ae7f092b9666420a22166e4 (diff)
Import Upstream version 2.16
Diffstat (limited to 'Docs/src')
-rwxr-xr-xDocs/src/SConscript3
-rwxr-xr-xDocs/src/basic.but29
-rwxr-xr-xDocs/src/build.but6
-rwxr-xr-xDocs/src/chmlink.js7
-rwxr-xr-xDocs/src/compilerflags.but2
-rwxr-xr-xDocs/src/credits.but2
-rwxr-xr-xDocs/src/defines.but4
-rwxr-xr-xDocs/src/history.but82
-rwxr-xr-xDocs/src/library.but2
-rwxr-xr-xDocs/src/silent.but2
-rwxr-xr-xDocs/src/ui.but2
11 files changed, 127 insertions, 14 deletions
diff --git a/Docs/src/SConscript b/Docs/src/SConscript
index bd4dc07..f15d0a7 100755
--- a/Docs/src/SConscript
+++ b/Docs/src/SConscript
@@ -94,6 +94,9 @@ if build_chm:
chm = env.HalibutCHM('NSIS.chm', [chm_config_but] + buts)
env.Depends(chm, halibut)
+ env.Depends(chm, '#Docs/style.css')
+ env.Depends(chm, 'chmlink.js')
+ env.Depends(chm, 'nsis.hhp')
env.DistributeDoc(chm)
else:
diff --git a/Docs/src/basic.but b/Docs/src/basic.but
index 033a43e..c7a9d63 100755
--- a/Docs/src/basic.but
+++ b/Docs/src/basic.but
@@ -53,7 +53,7 @@ Adds file(s) to be extracted to the current output path ($OUTDIR).
\b Wildcards are supported.
-\b If the /r switch is used, matching files are recursively searched for in subdirectories. If a directory name matches, all of its contents is added recursively. Directory structure is preserved.
+\b If the /r switch is used, matching files and directories are recursively searched for in subdirectories. If just one path segment is specified (e.g. \c{File /r something}), the current directory will be recursively searched. If more than one segment is specified (e.g. \c{File /r something\\*.*}), the last path segment will be used as the matching condition and the rest for the directory to search recursively. If a directory name matches, all of its contents is added recursively. Directory structure is preserved.
\b Use the /x switch to exclude files or directories.
@@ -74,6 +74,29 @@ Adds file(s) to be extracted to the current output path ($OUTDIR).
\c File /r /x CVS myproject\*.*
\c File /r /x *.res /x *.obj /x *.pch source\*.*
+\\<b\\>Note:\\</b\\> when using the \e{/r} switch, both matching directories and files will be searched. This is always done with or without the use of wildcards, even if the given path perfectly matches one directory. That means, the following directory structure:
+
+\c <DIR> something
+\c file.dat
+\c another.dat
+\c <DIR> dir
+\c something
+\c <DIR> dir2
+\c file2.dat
+\c <DIR> another
+\c <DIR> something
+\c readme.txt
+
+with the following \e{File} usage:
+
+\c File /r something
+
+will match the directory named \e{something} on the root directory, the file named \e{something} in the directory named \e{dir} and the directory named \e{something} in the directory named \e{another}. To match only the directory named \e{something} on the root directory, use the following:
+
+\c File /r something\*.*
+
+When adding \e{\\*.*}, it will be used as the matching condition and \e{something} will be used as the directory to search. When only \e{something} is specified, the current directory will be recursively searched for every and directory named \e{something} and \e{another\\something} will be matched.
+
\S2{rename} Rename
\c [/REBOOTOK] source_file dest_file
@@ -100,7 +123,7 @@ Remove the specified directory (which should be a full path). Without /r, the di
\c RMDir $INSTDIR
\c RMDir $INSTDIR\data
-\c RMDir /r /REBOOTOK $INSTIDR
+\c RMDir /r /REBOOTOK $INSTDIR
\c RMDir /REBOOTOK $INSTDIR\DLLs
Note that the current working directory can not be deleted. The current working directory is set by \R{setoutpath}{SetOutPath}. For example, the following example will not delete the directory.
@@ -114,6 +137,8 @@ The next example will succeed in deleting the directory.
\c SetOutPath $TEMP
\c RMDir $TEMP\dir
+\\<b\\>Warning:\\</b\\> using \e{RMDir /r $INSTDIR} in the uninstaller is not safe. Though it is unlikely, the user might select to install to the Program Files folder and so this command will wipe out the entire Program Files folder, including other programs that has nothing to do with the uninstaller. The user can also put other files but the program's files and would expect them to get deleted with the program. Solutions are \W{http://nsis.sourceforge.net/Uninstall_only_installed_files}{available} for easily uninstalling only files which were installed by the installer.
+
\S2{setoutpath} SetOutPath
\c outpath
diff --git a/Docs/src/build.but b/Docs/src/build.but
index 41554f6..9d3606b 100755
--- a/Docs/src/build.but
+++ b/Docs/src/build.but
@@ -73,11 +73,9 @@ As of NSIS 2.01, the compiler, makensis, also compiles on POSIX platforms. POSIX
If you don't have a cross compiler, you can use:
-\c scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all
+\c scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no
-This should only build makensis. Once you have makensis, you can drop it in a downloaded precompiled package such as the nightly build. Note that the in order for this to work, the precompiled package must be compiled using the exact same sources as makensis. In particular, \c{Source\\exehead\\config.h} and \c{Source\\exehead\\fileform.h} must be identical.
-
-Note that compiling on big-endian platforms is possible. However, makensis will not work on such platforms.
+This should only build makensis. Once you have makensis, you can drop it in a downloaded precompiled package such as the \R{build_nightly}{nightly build} or a \W{http://sourceforge.net/project/showfiles.php?group_id=22049}{zipped release version} (nsis-x.xx.zip). Note that the in order for this to work, the precompiled package must be compiled using the exact same sources as makensis. In particular, \c{Source\\exehead\\config.h} and \c{Source\\exehead\\fileform.h} must be identical.
Currently, the System plug-in \W{http://forums.winamp.com/showthread.php?s=&threadid=227304}{can't be built} using a cross-compiler, but only with MSVC. When building with a cross compiler, always use at least the following flags:
diff --git a/Docs/src/chmlink.js b/Docs/src/chmlink.js
index fff80ab..098d331 100755
--- a/Docs/src/chmlink.js
+++ b/Docs/src/chmlink.js
@@ -80,8 +80,11 @@ function parser(fn)
if (FolderExists(lfn))
{
- var objShell = new ActiveXObject("Shell.Application");
- objShell.Open(lfn);
+ if (!TryShellExec(lfn))
+ {
+ var objShell = new ActiveXObject("Shell.Application");
+ objShell.Open(lfn);
+ }
}
else if (FileExists(lfn))
{
diff --git a/Docs/src/compilerflags.but b/Docs/src/compilerflags.but
index 85720fc..7c98471 100755
--- a/Docs/src/compilerflags.but
+++ b/Docs/src/compilerflags.but
@@ -62,7 +62,7 @@ This command sets the file date/time saving flag which is used by the File comma
\c \\<b\\>on\\</b\\>|off|try|ifnewer|ifdiff|lastused
-This command sets the overwrite flag which is used by the File command to determine whether or not the file should overwrite any existing files that are present. If overwriteflag is 'on', files are overwritten (this is the default). If overwriteflag is 'off', files that are already present are not overwritten. If overwriteflag is 'try', files are overwritten if possible (meaning that if the file is not able to be written to, it is skipped without any user interaction). If overwriteflag is 'ifnewer', then files are only overwritten if the existing file is older than the new file. If overwriteflag is 'ifdiff', then files are only overwritten if the existing file is older or newer than the new file. Note that when in 'ifnewer' or 'ifdiff' mode, the destination file's date is set, regardless of what SetDateSave is set to.
+This command sets the overwrite flag which is used by the \R{file}{File} command to determine whether or not the file should overwrite any existing files that are present. If overwriteflag is 'on', files are overwritten (this is the default). If overwriteflag is 'off', files that are already present are not overwritten. If overwriteflag is 'try', files are overwritten if possible (meaning that if the file is not able to be written to, it is skipped without any user interaction). If overwriteflag is 'ifnewer', then files are only overwritten if the existing file is older than the new file. If overwriteflag is 'ifdiff', then files are only overwritten if the existing file is older or newer than the new file. Note that when in 'ifnewer' or 'ifdiff' mode, the destination file's date is set, regardless of what SetDateSave is set to.
\c SetOverwrite off
\c File program.cfg # config file we don't want to overwrite
diff --git a/Docs/src/credits.but b/Docs/src/credits.but
index 29d9ef5..fe016bc 100755
--- a/Docs/src/credits.but
+++ b/Docs/src/credits.but
@@ -114,6 +114,8 @@ Albanian - \e{Besnik Bleta}
Arabic - \e{asdfuae, Rami Kattan}
+Basque - \e{I\u00F1aki San Vicente}
+
Belarusian - \e{Sitnikov Vjacheslav}
Bosnian - \e{Salih CAVKIC}
diff --git a/Docs/src/defines.but b/Docs/src/defines.but
index 5ecd84c..bf13b54 100755
--- a/Docs/src/defines.but
+++ b/Docs/src/defines.but
@@ -10,11 +10,11 @@ Define/conditional compilation related commands:
\S1{define} !define
-\c ([/date] gflag [value]) | (/math gflag val1 OP val2)
+\c ([/date|/utcdate] gflag [value]) | (/math gflag val1 OP val2)
This command will add \e{gflag} to the global define list. This will have a similar effect as using the /D switch on the command line (only the define only becomes effective after the !define command).
-If \e{/date} is used, \e{value} will be passed into strftime and the result will be used as the value of \e{gflag}. strftime converts special symbols into certain parts of the current time or date. For example, %H will be converted into the current hour in 24-hour format. For a complete list of available symbols, search for strftime on \W{http://msdn.microsoft.com/}{MSDN}. On POSIX, you can get the list by using \c{man strftime}.
+If \e{/date} or \e{/utcdate} are used, \e{value} will be passed into strftime and the result will be used as the value of \e{gflag}. strftime converts special symbols into certain parts of the current time or date. For example, %H will be converted into the current hour in 24-hour format. For a complete list of available symbols, search for strftime on \W{http://msdn.microsoft.com/}{MSDN}. On POSIX, you can get the list by using \c{man strftime}.
If \e{/math} is used, the result of 'val1 OP val2', where OP may be +,-,*,/ or % , will be used as the value of \e{gflag}. Note that val1 AND val2 MUST be integer values!
diff --git a/Docs/src/history.but b/Docs/src/history.but
index d7a7683..a8ca3fa 100755
--- a/Docs/src/history.but
+++ b/Docs/src/history.but
@@ -1,5 +1,87 @@
\A{history} Changelog and Release Notes
+\H{v2.16} 2.16
+
+Released on April 7th, 2006
+
+\S1{v2.16-rn} Release Notes
+
+\b The script compiler, makensis, builds and works on big-endian platforms. This change enlarges the portability range of NSIS to theoretically every POSIX platform. Please \W{http://sourceforge.net/tracker/?group_id=22049&atid=373085}{report} any incompatibility with specific platforms or build-tools.
+
+\b The internal changes made to support big-endian platforms also pave the road to x64 installers. There is now a central function which writes data to disk. This function currently only converts the endianity of integers, but it can be changed to selectively write 64-bit integers. Hopefully, there'll soon be a simple method of compiling a script to both x86 and x64 installers.
+
+\b Changing Source/exehead/fileform.h to alter the internal structure of installers is no longer enough. The compiler has its own definitions of the structures which must also be changed in Source/fileform.cpp. In the future, fileform.cpp should be automatically generated from fileform.h, but for now, the synchronization must be done manually.
+
+\S1{v2.16-cl} Changelog
+
+\S2{} Major Changes
+
+\b Big-endian platforms are now fully supported by makensis
+
+\b \R{library}{Library} now available on non-Windows platforms as well, although it requires the installed DLL to have version information
+
+\b \L{../Docs/makensisw/Readme.txt}{MakeNSISW 2.1}: added "Cancel compilation" menu item
+
+\S2{} New/Changed Commands
+
+\b Added /utcdate switch to \R{define}{!define} for UTC dates (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373088&aid=1459210}{RFE #1459210})
+
+\S2{} Minor Changes
+
+\b Added an optional timestamp in the log - NSIS_CONFIG_LOG_TIMESTAMP build setting (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373088&aid=1460586}{RFE #1460586})
+
+\b Added NSIS_WIN32_MAKENSIS define, defined only when compiling on Windows
+
+\b Exported validate_filename to plug-ins
+
+\b Fixed a crash in CResourceEditor when adding resources to a PE that already contains named resources
+
+\b Fixed a small resource leak in the TypeLib::GetLibVersion plug-in function
+
+\b Fixed CResourceEditor input sanity checks
+
+\b Fixed incorrect \R{FileOpen}{FileOpen} input validation (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373085&aid=1459789}{bug #1459789})
+
+\b Fixed \R{library}{Library} failure with DLLs marked as read-only
+
+\b Fixed lzma's POSIX implemention thread synchronization issues and resource leaks
+
+\b Fixed makensis self-path detection on non-Windows platforms (NSIS_CONFIG_CONST_DATA_PATH=no)
+
+\b Fixed replace_icon and and generate_uninstall_icon_data icon validation
+
+\b Made external CHM links safer to script exceptions (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373085&aid=1449879}{bug #1449879})
+
+\b Minor documentation improvements and fixes (including \W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373085&aid=1077439}{bug #1077439}, \W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373085&aid=1448374}{bug #1448374}, \W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373088&aid=1464446}{RFE #1464446})
+
+\b \L{../Docs/Modern UI/Readme.html}{Modern UI 1.75}: added show function for the start menu page (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373088&aid=1448176}{RFE #1448176}), added MUI_HEADER_TRANSPARENT_TEXT for transparent header texts (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373088&aid=1447766}{RFE #1447766})
+
+\b \L{../Docs/NSISdl/ReadMe.txt}{NSISdl}: better header detection for better compatibility with proxies like WinProxy (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373085&aid=1445735}{bug #1445735}), fail if no headers are sent, faster downloads (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373087&aid=1465378}{patch #1465378})
+
+\b \L{../Docs/StartMenu/Readme.txt}{StartMenu}: validate user input (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373085&aid=1440636}{bug #1440636})
+
+\S2{} Translations
+
+\b Added Basque translation
+
+\b Minor Slovenian fixes
+
+\S2{} Build System
+
+\b Added code tests for CResourceEditor and CDialogTemplate
+
+\b Automatically pass build settings to script, eliminating the need to edit build.cpp for new settings
+
+\b Fixed $PREFIX expansion during installation on POSIX platforms (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373085&aid=1456943}{bug #1456943})
+
+\b Fixed CHM dependencies
+
+\b Fixed compatibility issue with EclipseNSIS (version wasn't prefixed with 'v')
+
+\b Fixed GCC 4.1 compatibility (\W{http://sourceforge.net/tracker/index.php?func=detail&group_id=22049&atid=373087&aid=1456861}{patch #1456861})
+
+\b Test for -Wl,-Map availability
+
\H{v2.15} 2.15
Released on March 4th, 2006
diff --git a/Docs/src/library.but b/Docs/src/library.but
index 47c05e8..310e4ee 100755
--- a/Docs/src/library.but
+++ b/Docs/src/library.but
@@ -24,7 +24,7 @@ The macros are stored in the header file Library.nsh, which should be included i
\c !include Library.nsh
-Note that you can only compile scripts using this system on Windows systems. It is not possible to compile on Linux etc.
+Note that the library macros are limited on non-Windows platforms. DLL version information is required when compiling on non-Windows platforms.
\H{library_install} Library Installation
diff --git a/Docs/src/silent.but b/Docs/src/silent.but
index 2056fbe..785e4a6 100755
--- a/Docs/src/silent.but
+++ b/Docs/src/silent.but
@@ -20,7 +20,7 @@ Since the directory page can not be shown on silent installers, the user has an
\c foo.exe /S /D=C:\Program Files\Foo
-If your installer/uninstaller requires some more information that can not be gathered when silent, you can allow the user to specify that information on the command line and process it in .onInit. For example:
+If your installer/uninstaller requires some more information that can not be gathered when silent, you can allow the user to specify that information on the command line and process it in .onInit. You can use \R{getoptions}{GetOptions}, or a variant of the following example:
\c Function .onInit
\c Call GetParameters
diff --git a/Docs/src/ui.but b/Docs/src/ui.but
index a36b5e3..cbd48dc 100755
--- a/Docs/src/ui.but
+++ b/Docs/src/ui.but
@@ -131,7 +131,7 @@ Sets mode at which commands print their status. None has commands be quiet, list
\c hwnd [/BRANDING] [text_color] [transparent|bg_color]
-Sets a background color and the text color for a static control, edit control, button or a dialog. \e{text_color} and \e{bg_color} don't accept variables. Use GetDlgItem to get the handle (HWND) of the control. To make the control transparent specify "transparent" as the background color value. You can also specify /BRANDING with or without text color and background color to make the control completely gray (or any other color you choose). This is used by the branding text control in the MUI.
+Sets a background color and the text color for a static control, edit control, button or a dialog. \e{text_color} and \e{bg_color} don't accept variables. Use \R{getdlgitem}{GetDlgItem} to get the handle (HWND) of the control. To make the control transparent specify "transparent" as the background color value. You can also specify /BRANDING with or without text color and background color to make the control completely gray (or any other color you choose). This is used by the branding text control in the MUI.
\c FindWindow $0 "#32770" "" $HWNDPARENT
\c GetDlgItem $0 $0 1006