NSIS: Update nsis installer and nsis docs (#14256)


Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/nsis/README.txt b/nsis/README.txt
index a47201c..c0b0376 100644
--- a/nsis/README.txt
+++ b/nsis/README.txt
@@ -1,7 +1,7 @@
-This builds a one-click install for Vim for Win32 using the Nullsoft
+This builds a one-click install for Vim for MS Windows using the Nullsoft
 Installation System (NSIS), available at http://nsis.sourceforge.net/
 
-To build the installable .exe:
+To build the installable .exe file:
 
 1.  Unpack three archives:
 	PC sources
@@ -16,10 +16,9 @@
 	install.exe,
 	uninstall.exe,
 	tee/tee.exe,
-	xxd/xxd.exe,
+	xxd/xxd.exe
 
-    Then execute tools/rename.bat to rename the executables. (mv command is
-    required.)
+    Then execute tools/rename.bat to rename the executables.
 
 3.  Go to the GvimExt directory and build gvimext.dll (or get it from a binary
     archive).  Both 64- and 32-bit versions are needed and should be placed
@@ -28,14 +27,22 @@
 	32-bit: src/GvimExt/gvimext.dll
 
 4.  Get a "diff.exe" program.  If you skip this the built-in diff will always
-    be used (which is fine for most users).  If you do have your own
-    "diff.exe" put it in the "../.." directory (above the "vim91" directory,
-    it's the same for all Vim versions).
+    be used (which is fine for most users).
     You can find one in previous Vim versions or in this archive:
-	http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
+	https://www.mediafire.com/file/9edk4g3xvfgzby0/diff4Vim.zip/file
+    When will you have "diff.exe" put it in the "../.." directory (above the
+    "vim91" directory, it's the same for all Vim versions).  However, you can
+    specify another directory by passing /DVIMTOOLS=<dir> option to the
+    "makensis.exe" program via the command line.
 
-5.  Also put "winpty32.dll" and "winpty-agent.exe" in "../.." (above the "vim91"
-    directory).  This is required for the terminal window.
+5.  For the terminal window to work in Vim, the library winpty is required.
+    You can get it at the following url:
+	https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
+    For the 32-bit version, rename "winpty.dll" from ia32/bin to "winpty32.dll",
+    and for the 64-bit version — "winpty.dll" from x64/bin to "winpty64.dll".
+    Put the renamed file and "winpty-agent.exe" in "../.." (above the "vim91"
+    directory).  However, you can specify another directory by passing
+    /DVIMTOOLS=<dir> option to the "makensis.exe" program via the command line.
 
 6.  To use stronger encryption, add the Sodium library.  You can get it here:
 	https://github.com/jedisct1/libsodium/releases/download/1.0.19-RELEASE/libsodium-1.0.19-msvc.zip
@@ -43,10 +50,12 @@
     path/to/libsodium/Win32/Release/v143/dynamic for the 32‐bit version or
     path/to/libsodium/X64/Release/v143/dynamic for the 64‐bit version in the
     "../.." directory (above the "vim91" directory, where "diff.exe" and
-    "winpty32.dll").
+    "winpty{32|64}.dll").
 
-7.  Do "make uganda.nsis.txt" in runtime/doc.  This requires sed, you may have
-    to do this on Unix.  Make sure the file is in DOS file format!
+7.  On MS Windows do "nmake.exe -f Make_mvc.mak uganda.nsis.txt" in runtime/doc.
+    On Unix-like system do "make runtime/doc/uganda.nsis.txt" in top directory
+    or "make uganda.nsis.txt" in runtime/doc, and be sure to convert the file
+    "uganda.nsis.txt" to DOS file format.
 
 8.  Get gettext and iconv DLLs from the following site:
 	https://github.com/mlocati/gettext-iconv-windows/releases
@@ -61,25 +70,39 @@
 	    |	libiconv-2.dll
 	    |	libgcc_s_sjlj-1.dll
 	    |
-	    ` gettext64/
+	    + gettext64/
 		libintl-8.dll
 		libiconv-2.dll
 
-    The default <GETTEXT directory> is "..", however, you can change it by
-    passing /DGETTEXT=... option to the makensis command.
+    The default <GETTEXT directory> is "..", however, you can specify another
+    directory by passing /DGETTEXT=<dir> option to "makensis.exe" program via
+    the command line.
 
 
 Install NSIS if you didn't do that already.
-Also install UPX, if you want a compressed file.
-Download and include the ShellExecAsUser.dll Unicode version which can be
-sourced from: https://nsis.sourceforge.io/ShellExecAsUser_plug-in
+Download Unicode version the ShellExecAsUser plug-in for NSIS from:
+	https://nsis.sourceforge.io/ShellExecAsUser_plug-in
+and put ShellExecAsUser.dll to path\to\NSIS\Plugins\x86-unicode
 
 
 Unpack the images:
 	cd nsis
-	unzip icons.zip
+	unzip icons.zip or 7z x icons.zip (on Unix-like or MS Windows)
+	WinRar.exe x icons.zip (on MS Windows)
 
 Then build gvim.exe:
-
 	cd nsis
-	makensis gvim.nsi
+	makensis.exe [options] gvim.nsi
+
+Options (not mandatory):
+    /DVIMSRC=<dir>	— directory where location of gvim_ole.exe, vimw32.exe,
+			    GvimExt/*, etc.
+    /DVIMRT=<dir>	— directory where location of runtime files
+    /DVIMTOOLS=<dir>    — directory where location of extra tools: diff.exe,
+			    winpty{32|64}.dll, winpty-agent.exe, libsodium.dll
+    /DGETTEXT=<dir>     — directory where location of gettext libraries
+    /DHAVE_UPX=1	— additional compression of the installer.  UPX program
+			    must be installed.
+    /DHAVE_NLS=0	— do not add native language support
+    /DHAVE_MULTI_LANG=0 — to create an English-only the installer
+    /DWIN64=1		— to create a 64-bit the installer