changeset 33712:e09acb1daea7

runtime(doc): Add Makefile for the Vim documentation on Windows (#13467) Commit: https://github.com/vim/vim/commit/b23c1fc596501a8dfc0355ed8084dcbf018f7907 Author: Restorer <69863286+RestorerZ@users.noreply.github.com> Date: Sat Nov 4 08:57:09 2023 +0000 runtime(doc): Add Makefile for the Vim documentation on Windows (https://github.com/vim/vim/issues/13467) * Makefile for the Vim documentation on Windows * Corrected comments Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 04 Nov 2023 10:00:06 +0100
parents a48901c1ce34
children 9aa03e12b2b5
files runtime/doc/Makefile runtime/doc/makefile_all.mak runtime/doc/makefile_mvc.mak runtime/doc/test_urls.vim runtime/doc/vim2html.pl
diffstat 5 files changed, 861 insertions(+), 348 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -13,337 +13,9 @@ VIMEXE = vim
 # AWK, used for "make html".  Comment this out if the include gives problems.
 include ../../src/auto/config.mk
 
-DOCS = \
-	arabic.txt \
-	autocmd.txt \
-	builtin.txt \
-	change.txt \
-	channel.txt \
-	cmdline.txt \
-	debug.txt \
-	debugger.txt \
-	develop.txt \
-	diff.txt \
-	digraph.txt \
-	editing.txt \
-	eval.txt \
-	farsi.txt \
-	filetype.txt \
-	fold.txt \
-	ft_ada.txt \
-	ft_context.txt \
-	ft_mp.txt \
-	ft_ps1.txt \
-	ft_raku.txt \
-	ft_rust.txt \
-	ft_sql.txt \
-	gui.txt \
-	gui_w32.txt \
-	gui_x11.txt \
-	hangulin.txt \
-	hebrew.txt \
-	help.txt \
-	helphelp.txt \
-	howto.txt \
-	if_cscop.txt \
-	if_lua.txt \
-	if_mzsch.txt \
-	if_ole.txt \
-	if_perl.txt \
-	if_pyth.txt \
-	if_ruby.txt \
-	if_sniff.txt \
-	if_tcl.txt \
-	indent.txt \
-	index.txt \
-	insert.txt \
-	intro.txt \
-	map.txt \
-	mbyte.txt \
-	message.txt \
-	mlang.txt \
-	motion.txt \
-	netbeans.txt \
-	options.txt \
-	os_390.txt \
-	os_amiga.txt \
-	os_beos.txt \
-	os_dos.txt \
-	os_haiku.txt \
-	os_mac.txt \
-	os_mint.txt \
-	os_msdos.txt \
-	os_os2.txt \
-	os_qnx.txt \
-	os_risc.txt \
-	os_unix.txt \
-	os_vms.txt \
-	os_win32.txt \
-	pattern.txt \
-	pi_getscript.txt \
-	pi_gzip.txt \
-	pi_logipat.txt \
-	pi_netrw.txt \
-	pi_paren.txt \
-	pi_spec.txt \
-	pi_tar.txt \
-	pi_vimball.txt \
-	pi_zip.txt \
-	popup.txt \
-	print.txt \
-	quickfix.txt \
-	quickref.txt \
-	quotes.txt \
-	recover.txt \
-	remote.txt \
-	repeat.txt \
-	rileft.txt \
-	russian.txt \
-	scroll.txt \
-	sign.txt \
-	spell.txt \
-	sponsor.txt \
-	starting.txt \
-	syntax.txt \
-	tabpage.txt \
-	tagsrch.txt \
-	term.txt \
-	terminal.txt \
-	testing.txt \
-	textprop.txt \
-	tips.txt \
-	todo.txt \
-	uganda.txt \
-	undo.txt \
-	userfunc.txt \
-	usr_01.txt \
-	usr_02.txt \
-	usr_03.txt \
-	usr_04.txt \
-	usr_05.txt \
-	usr_06.txt \
-	usr_07.txt \
-	usr_08.txt \
-	usr_09.txt \
-	usr_10.txt \
-	usr_11.txt \
-	usr_12.txt \
-	usr_20.txt \
-	usr_21.txt \
-	usr_22.txt \
-	usr_23.txt \
-	usr_24.txt \
-	usr_25.txt \
-	usr_26.txt \
-	usr_27.txt \
-	usr_28.txt \
-	usr_29.txt \
-	usr_30.txt \
-	usr_31.txt \
-	usr_32.txt \
-	usr_40.txt \
-	usr_41.txt \
-	usr_42.txt \
-	usr_43.txt \
-	usr_44.txt \
-	usr_45.txt \
-	usr_50.txt \
-	usr_51.txt \
-	usr_52.txt \
-	usr_90.txt \
-	usr_toc.txt \
-	various.txt \
-	version4.txt \
-	version5.txt \
-	version6.txt \
-	version7.txt \
-	version8.txt \
-	version9.txt \
-	vi_diff.txt \
-	vim9.txt \
-	vim9class.txt \
-	visual.txt \
-	windows.txt \
-	workshop.txt
-
-HTMLS = \
-	arabic.html \
-	autocmd.html \
-	builtin.html \
-	change.html \
-	channel.html \
-	cmdline.html \
-	debug.html \
-	debugger.html \
-	develop.html \
-	diff.html \
-	digraph.html \
-	editing.html \
-	eval.html \
-	farsi.html \
-	filetype.html \
-	fold.html \
-	ft_ada.html \
-	ft_context.html \
-	ft_mp.html \
-	ft_ps1.html \
-	ft_raku.html \
-	ft_rust.html \
-	ft_sql.html \
-	gui.html \
-	gui_w32.html \
-	gui_x11.html \
-	hangulin.html \
-	hebrew.html \
-	helphelp.html \
-	howto.html \
-	if_cscop.html \
-	if_lua.html \
-	if_mzsch.html \
-	if_ole.html \
-	if_perl.html \
-	if_pyth.html \
-	if_ruby.html \
-	if_sniff.html \
-	if_tcl.html \
-	indent.html \
-	index.html \
-	insert.html \
-	intro.html \
-	map.html \
-	mbyte.html \
-	message.html \
-	mlang.html \
-	motion.html \
-	netbeans.html \
-	options.html \
-	os_390.html \
-	os_amiga.html \
-	os_beos.html \
-	os_dos.html \
-	os_haiku.html \
-	os_mac.html \
-	os_mint.html \
-	os_msdos.html \
-	os_os2.html \
-	os_qnx.html \
-	os_risc.html \
-	os_unix.html \
-	os_vms.html \
-	os_win32.html \
-	pattern.html \
-	pi_getscript.html \
-	pi_gzip.html \
-	pi_logipat.html \
-	pi_netrw.html \
-	pi_paren.html \
-	pi_spec.html \
-	pi_tar.html \
-	pi_vimball.html \
-	pi_zip.html \
-	popup.html \
-	print.html \
-	quickfix.html \
-	quickref.html \
-	quotes.html \
-	recover.html \
-	remote.html \
-	repeat.html \
-	rileft.html \
-	russian.html \
-	scroll.html \
-	sign.html \
-	spell.html \
-	sponsor.html \
-	starting.html \
-	syntax.html \
-	tabpage.html \
-	tagsrch.html \
-	term.html \
-	terminal.html \
-	testing.html \
-	textprop.html \
-	tips.html \
-	todo.html \
-	uganda.html \
-	undo.html \
-	userfunc.html \
-	usr_01.html \
-	usr_02.html \
-	usr_03.html \
-	usr_04.html \
-	usr_05.html \
-	usr_06.html \
-	usr_07.html \
-	usr_08.html \
-	usr_09.html \
-	usr_10.html \
-	usr_11.html \
-	usr_12.html \
-	usr_20.html \
-	usr_21.html \
-	usr_22.html \
-	usr_23.html \
-	usr_24.html \
-	usr_25.html \
-	usr_26.html \
-	usr_27.html \
-	usr_28.html \
-	usr_29.html \
-	usr_30.html \
-	usr_31.html \
-	usr_32.html \
-	usr_40.html \
-	usr_41.html \
-	usr_42.html \
-	usr_43.html \
-	usr_44.html \
-	usr_45.html \
-	usr_50.html \
-	usr_51.html \
-	usr_52.html \
-	usr_90.html \
-	usr_toc.html \
-	various.html \
-	version4.html \
-	version5.html \
-	version6.html \
-	version7.html \
-	version8.html \
-	version9.html \
-	vi_diff.html \
-	vimindex.html \
-	vim9.html \
-	vim9class.html \
-	visual.html \
-	windows.html \
-	workshop.html
-
-CONVERTED = \
-	vim-fr.UTF-8.1 \
-	evim-fr.UTF-8.1 \
-	vimdiff-fr.UTF-8.1 \
-	vimtutor-fr.UTF-8.1 \
-	xxd-fr.UTF-8.1 \
-	vim-it.UTF-8.1 \
-	evim-it.UTF-8.1 \
-	vimdiff-it.UTF-8.1 \
-	vimtutor-it.UTF-8.1 \
-	xxd-it.UTF-8.1 \
-	vim-pl.UTF-8.1 \
-	evim-pl.UTF-8.1 \
-	vimdiff-pl.UTF-8.1 \
-	vimtutor-pl.UTF-8.1 \
-	xxd-pl.UTF-8.1 \
-	vim-ru.UTF-8.1 \
-	evim-ru.UTF-8.1 \
-	vimdiff-ru.UTF-8.1 \
-	vimtutor-ru.UTF-8.1 \
-	xxd-ru.UTF-8.1 \
-	vim-tr.UTF-8.1 \
-	evim-tr.UTF-8.1 \
-	vimdiff-tr.UTF-8.1 \
-	vimtutor-tr.UTF-8.1
+# 17.10.23, added by Restorer
+# Common components
+include makefile_all.mak
 
 .SUFFIXES:
 .SUFFIXES: .c .o .txt .html
@@ -476,6 +148,18 @@ os_win32.txt:
 
 # Note that $< works with GNU make while $> works for BSD make.
 # Is there a solution that works for both??
+vim-da.UTF-8.1: vim-da.1		 # 17.10.23, added by Restorer
+	iconv -f latin1 -t utf-8 $< >$@
+
+vimdiff-da.UTF-8.1: vimdiff-da.1	 # 17.10.23, added by Restorer
+	iconv -f latin1 -t utf-8 $< >$@
+
+vimtutor-da.UTF-8.1: vimtutor-da.1	 # 17.10.23, added by Restorer
+	iconv -f latin1 -t utf-8 $< >$@
+
+vim-de.UTF-8.1: vim-de.1		 # 17.10.23, added by Restorer
+	iconv -f latin1 -t utf-8 $< >$@
+
 vim-fr.UTF-8.1: vim-fr.1
 	iconv -f latin1 -t utf-8 $< >$@
 
new file mode 100644
--- /dev/null
+++ b/runtime/doc/makefile_all.mak
@@ -0,0 +1,338 @@
+# makefile with common components
+
+DOCS = \
+	arabic.txt \
+	autocmd.txt \
+	builtin.txt \
+	change.txt \
+	channel.txt \
+	cmdline.txt \
+	debug.txt \
+	debugger.txt \
+	develop.txt \
+	diff.txt \
+	digraph.txt \
+	editing.txt \
+	eval.txt \
+	farsi.txt \
+	filetype.txt \
+	fold.txt \
+	ft_ada.txt \
+	ft_context.txt \
+	ft_mp.txt \
+	ft_ps1.txt \
+	ft_raku.txt \
+	ft_rust.txt \
+	ft_sql.txt \
+	gui.txt \
+	gui_w32.txt \
+	gui_x11.txt \
+	hangulin.txt \
+	hebrew.txt \
+	help.txt \
+	helphelp.txt \
+	howto.txt \
+	if_cscop.txt \
+	if_lua.txt \
+	if_mzsch.txt \
+	if_ole.txt \
+	if_perl.txt \
+	if_pyth.txt \
+	if_ruby.txt \
+	if_sniff.txt \
+	if_tcl.txt \
+	indent.txt \
+	index.txt \
+	insert.txt \
+	intro.txt \
+	map.txt \
+	mbyte.txt \
+	message.txt \
+	mlang.txt \
+	motion.txt \
+	netbeans.txt \
+	options.txt \
+	os_390.txt \
+	os_amiga.txt \
+	os_beos.txt \
+	os_dos.txt \
+	os_haiku.txt \
+	os_mac.txt \
+	os_mint.txt \
+	os_msdos.txt \
+	os_os2.txt \
+	os_qnx.txt \
+	os_risc.txt \
+	os_unix.txt \
+	os_vms.txt \
+	os_win32.txt \
+	pattern.txt \
+	pi_getscript.txt \
+	pi_gzip.txt \
+	pi_logipat.txt \
+	pi_netrw.txt \
+	pi_paren.txt \
+	pi_spec.txt \
+	pi_tar.txt \
+	pi_vimball.txt \
+	pi_zip.txt \
+	popup.txt \
+	print.txt \
+	quickfix.txt \
+	quickref.txt \
+	quotes.txt \
+	recover.txt \
+	remote.txt \
+	repeat.txt \
+	rileft.txt \
+	russian.txt \
+	scroll.txt \
+	sign.txt \
+	spell.txt \
+	sponsor.txt \
+	starting.txt \
+	syntax.txt \
+	tabpage.txt \
+	tagsrch.txt \
+	term.txt \
+	terminal.txt \
+	testing.txt \
+	textprop.txt \
+	tips.txt \
+	todo.txt \
+	uganda.txt \
+	undo.txt \
+	userfunc.txt \
+	usr_01.txt \
+	usr_02.txt \
+	usr_03.txt \
+	usr_04.txt \
+	usr_05.txt \
+	usr_06.txt \
+	usr_07.txt \
+	usr_08.txt \
+	usr_09.txt \
+	usr_10.txt \
+	usr_11.txt \
+	usr_12.txt \
+	usr_20.txt \
+	usr_21.txt \
+	usr_22.txt \
+	usr_23.txt \
+	usr_24.txt \
+	usr_25.txt \
+	usr_26.txt \
+	usr_27.txt \
+	usr_28.txt \
+	usr_29.txt \
+	usr_30.txt \
+	usr_31.txt \
+	usr_32.txt \
+	usr_40.txt \
+	usr_41.txt \
+	usr_42.txt \
+	usr_43.txt \
+	usr_44.txt \
+	usr_45.txt \
+	usr_50.txt \
+	usr_51.txt \
+	usr_52.txt \
+	usr_90.txt \
+	usr_toc.txt \
+	various.txt \
+	version4.txt \
+	version5.txt \
+	version6.txt \
+	version7.txt \
+	version8.txt \
+	version9.txt \
+	vi_diff.txt \
+	vim9.txt \
+	vim9class.txt \
+	visual.txt \
+	windows.txt \
+	workshop.txt
+
+HTMLS = \
+	arabic.html \
+	autocmd.html \
+	builtin.html \
+	change.html \
+	channel.html \
+	cmdline.html \
+	debug.html \
+	debugger.html \
+	develop.html \
+	diff.html \
+	digraph.html \
+	editing.html \
+	eval.html \
+	farsi.html \
+	filetype.html \
+	fold.html \
+	ft_ada.html \
+	ft_context.html \
+	ft_mp.html \
+	ft_ps1.html \
+	ft_raku.html \
+	ft_rust.html \
+	ft_sql.html \
+	gui.html \
+	gui_w32.html \
+	gui_x11.html \
+	hangulin.html \
+	hebrew.html \
+	helphelp.html \
+	howto.html \
+	if_cscop.html \
+	if_lua.html \
+	if_mzsch.html \
+	if_ole.html \
+	if_perl.html \
+	if_pyth.html \
+	if_ruby.html \
+	if_sniff.html \
+	if_tcl.html \
+	indent.html \
+	index.html \
+	insert.html \
+	intro.html \
+	map.html \
+	mbyte.html \
+	message.html \
+	mlang.html \
+	motion.html \
+	netbeans.html \
+	options.html \
+	os_390.html \
+	os_amiga.html \
+	os_beos.html \
+	os_dos.html \
+	os_haiku.html \
+	os_mac.html \
+	os_mint.html \
+	os_msdos.html \
+	os_os2.html \
+	os_qnx.html \
+	os_risc.html \
+	os_unix.html \
+	os_vms.html \
+	os_win32.html \
+	pattern.html \
+	pi_getscript.html \
+	pi_gzip.html \
+	pi_logipat.html \
+	pi_netrw.html \
+	pi_paren.html \
+	pi_spec.html \
+	pi_tar.html \
+	pi_vimball.html \
+	pi_zip.html \
+	popup.html \
+	print.html \
+	quickfix.html \
+	quickref.html \
+	quotes.html \
+	recover.html \
+	remote.html \
+	repeat.html \
+	rileft.html \
+	russian.html \
+	scroll.html \
+	sign.html \
+	spell.html \
+	sponsor.html \
+	starting.html \
+	syntax.html \
+	tabpage.html \
+	tagsrch.html \
+	term.html \
+	terminal.html \
+	testing.html \
+	textprop.html \
+	tips.html \
+	todo.html \
+	uganda.html \
+	undo.html \
+	userfunc.html \
+	usr_01.html \
+	usr_02.html \
+	usr_03.html \
+	usr_04.html \
+	usr_05.html \
+	usr_06.html \
+	usr_07.html \
+	usr_08.html \
+	usr_09.html \
+	usr_10.html \
+	usr_11.html \
+	usr_12.html \
+	usr_20.html \
+	usr_21.html \
+	usr_22.html \
+	usr_23.html \
+	usr_24.html \
+	usr_25.html \
+	usr_26.html \
+	usr_27.html \
+	usr_28.html \
+	usr_29.html \
+	usr_30.html \
+	usr_31.html \
+	usr_32.html \
+	usr_40.html \
+	usr_41.html \
+	usr_42.html \
+	usr_43.html \
+	usr_44.html \
+	usr_45.html \
+	usr_50.html \
+	usr_51.html \
+	usr_52.html \
+	usr_90.html \
+	usr_toc.html \
+	various.html \
+	version4.html \
+	version5.html \
+	version6.html \
+	version7.html \
+	version8.html \
+	version9.html \
+	vi_diff.html \
+	vimindex.html \
+	vim9.html \
+	vim9class.html \
+	visual.html \
+	windows.html \
+	workshop.html
+
+CONVERTED = \
+	vim-da.UTF-8.1 \
+	vimdiff-da.UTF-8.1 \
+	vimtutor-da.UTF-8.1 \
+	vim-de.UTF-8.1 \
+	vim-fr.UTF-8.1 \
+	evim-fr.UTF-8.1 \
+	vimdiff-fr.UTF-8.1 \
+	vimtutor-fr.UTF-8.1 \
+	xxd-fr.UTF-8.1 \
+	vim-it.UTF-8.1 \
+	evim-it.UTF-8.1 \
+	vimdiff-it.UTF-8.1 \
+	vimtutor-it.UTF-8.1 \
+	xxd-it.UTF-8.1 \
+	vim-pl.UTF-8.1 \
+	evim-pl.UTF-8.1 \
+	vimdiff-pl.UTF-8.1 \
+	vimtutor-pl.UTF-8.1 \
+	xxd-pl.UTF-8.1 \
+	vim-ru.UTF-8.1 \
+	evim-ru.UTF-8.1 \
+	vimdiff-ru.UTF-8.1 \
+	vimtutor-ru.UTF-8.1 \
+	xxd-ru.UTF-8.1 \
+	vim-tr.UTF-8.1 \
+	evim-tr.UTF-8.1 \
+	vimdiff-tr.UTF-8.1 \
+	vimtutor-tr.UTF-8.1
+
new file mode 100644
--- /dev/null
+++ b/runtime/doc/makefile_mvc.mak
@@ -0,0 +1,460 @@
+#
+# Makefile for the Vim documentation on Windows
+#
+# 17.11.23, Restorer, <restorer@mail2k.ru>
+
+# Common components
+!INCLUDE makefile_all.mak
+
+
+# TODO: to think about what to use instead of awk. PowerShell?
+#AWK =
+
+#
+VIMEXE = D:\Programs\Vim\vim90\vim.exe
+
+#
+GETTEXT_PATH = D:\Programs\GetText\bin
+
+# In case some package like GnuWin32, UnixUtils
+# or something similar is installed on the system.
+# If the "touch" program is installed on the system, but it is not registered
+# in the %PATH% environment variable, then specify the full path to this file.
+!IF EXIST ("touch.exe")
+TOUCH = touch.exe $@ 
+!ELSE
+TOUCH = @if exist $@ ( copy /b $@+,, ) else ( type nul >$@ )
+!ENDIF
+
+# In case some package like GnuWin32, UnixUtils, gettext
+# or something similar is installed on the system.
+# If the "iconv" program is installed on the system, but it is not registered
+# in the %PATH% environment variable, then specify the full path to this file.
+!IF EXIST ("iconv.exe")
+ICONV = iconv.exe
+!ELSEIF EXIST ("$(GETTEXT_PATH)\iconv.exe")
+ICONV="$(GETTEXT_PATH)\iconv.exe"
+!ENDIF
+
+RM = del /q
+
+.SUFFIXES :
+.SUFFIXES : .c .o .txt .html
+
+
+all : tags perlhtml $(CONVERTED)
+
+# Use "doctags" to generate the tags file.  Only works for English!
+tags : doctags $(DOCS)
+	doctags $(DOCS) | sort /L C /O tags
+	powershell -nologo -noprofile -Command\
+	"(Get-Content -Raw tags | Get-Unique | % {$$_ -replace \"`r\", \"\"}) |\
+	New-Item -Force -Path . -ItemType file -Name tags"
+
+doctags : doctags.c
+	$(CC) doctags.c
+
+
+# Use Vim to generate the tags file.  Can only be used when Vim has been
+# compiled and installed.  Supports multiple languages.
+vimtags : $(DOCS)
+	$(VIMEXE) --clean -esX -V1 -u doctags.vim
+
+
+
+uganda.nsis.txt : uganda.*
+	!powershell -nologo -noprofile -Command\
+	$$ext=(Get-Item $?).Extension; (Get-Content $? ^| \
+	% {$$_ -replace '\s*\*[-a-zA-Z0-9.]*\*', '' -replace 'vim:tw=78:.*', ''})\
+	^| Set-Content $*$$ext
+	!powershell -nologo -noprofile -Command\
+	$$ext=(Get-Item $?).Extension;\
+	(Get-Content -Raw $(@B)$$ext).Trim() -replace '(\r\n){3,}', '$$1$$1'\
+	 ^| Set-Content $(@B)$$ext
+
+
+# TODO:
+#html: noerrors tags $(HTMLS)
+#	if exist errors.log (more errors.log)
+
+# TODO:
+#noerrors:
+#	$(RM) errors.log
+
+# TODO:
+#.txt.html:
+
+
+# TODO:
+#index.html: help.txt
+
+
+# TODO:
+#vimindex.html: index.txt
+
+
+# TODO:
+#tags.ref tags.html: tags
+
+# Perl version of .txt to .html conversion.
+# There can't be two rules to produce a .html from a .txt file.
+# Just run over all .txt files each time one changes.  It's fast anyway.
+perlhtml : tags $(DOCS)
+	vim2html.pl tags $(DOCS)
+
+# Check URLs in the help with "curl" or "powershell".
+test_urls :
+	$(VIMEXE) -S test_urls.vim
+
+clean :
+	$(RM) doctags.exe doctags.obj
+	$(RM) *.html vim-stylesheet.css
+
+
+
+arabic.txt :
+	$(TOUCH)
+
+farsi.txt :
+	$(TOUCH)
+
+hebrew.txt :
+	$(TOUCH)
+
+russian.txt :
+	$(TOUCH)
+
+gui_w32.txt :
+	$(TOUCH)
+
+if_ole.txt :
+	$(TOUCH)
+
+os_390.txt :
+	$(TOUCH)
+
+os_amiga.txt :
+	$(TOUCH)
+
+os_beos.txt :
+	$(TOUCH)
+
+os_dos.txt :
+	$(TOUCH)
+
+os_haiku.txt :
+	$(TOUCH)
+
+os_mac.txt :
+	$(TOUCH)
+
+os_mint.txt :
+	$(TOUCH)
+
+os_msdos.txt :
+	$(TOUCH)
+
+os_os2.txt :
+	$(TOUCH)
+
+os_qnx.txt :
+	$(TOUCH)
+
+os_risc.txt :
+	$(TOUCH)
+
+os_win32.txt :
+	$(TOUCH)
+
+
+convert-all : $(CONVERTED)
+!IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
+!ERROR The program "PowerShell" version 3.0 or higher is required to work
+!ENDIF
+
+vim-da.UTF-8.1 : vim-da.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimdiff-da.UTF-8.1 : vimdiff-da.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimtutor-da.UTF-8.1 : vimtutor-da.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vim-de.UTF-8.1 : vim-de.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+evim-fr.UTF-8.1 : evim-fr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vim-fr.UTF-8.1 : vim-fr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimdiff-fr.UTF-8.1 : vimdiff-fr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimtutor-fr.UTF-8.1 : vimtutor-fr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t utf-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+xxd-fr.UTF-8.1 : xxd-fr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+evim-it.UTF-8.1 : evim-it.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vim-it.UTF-8.1 : vim-it.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimdiff-it.UTF-8.1 : vimdiff-it.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimtutor-it.UTF-8.1 : vimtutor-it.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+xxd-it.UTF-8.1 : xxd-it.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-1 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28591)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+evim-pl.UTF-8.1 : evim-pl.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vim-pl.UTF-8.1 : vim-pl.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimdiff-pl.UTF-8.1 : vimdiff-pl.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimtutor-pl.UTF-8.1 : vimtutor-pl.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+xxd-pl.UTF-8.1 : xxd-pl.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-2 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28592)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+evim-ru.UTF-8.1 : evim-ru.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f KOI8-R -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vim-ru.UTF-8.1 : vim-ru.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f KOI8-R -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimdiff-ru.UTF-8.1 : vimdiff-ru.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f KOI8-R -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimtutor-ru.UTF-8.1 : vimtutor-ru.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f KOI8-R -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+xxd-ru.UTF-8.1 : xxd-ru.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f KOI8-R -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(20866)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+evim-tr.UTF-8.1 : evim-tr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
+!ELSE
+!    IF [powershell -nologo -noprofile "exit $$psversiontable.psversion.major"] == 2
+!    ERROR Для работы требуется программа «PowerShell» версии 3.0 или выше
+!    ENDIF
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vim-tr.UTF-8.1 : vim-tr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimdiff-tr.UTF-8.1 : vimdiff-tr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+vimtutor-tr.UTF-8.1 : vimtutor-tr.1
+!IF DEFINED (ICONV)
+	$(ICONV) -f ISO-8859-9 -t UTF-8 $? >$@
+!ELSE
+# Conversion to UTF-8 encoding without BOM and with UNIX-like line ending
+	powershell -nologo -noprofile -Command\
+	[IO.File]::ReadAllText(\"$?\", [Text.Encoding]::GetEncoding(28599)) ^|\
+	1>nul New-Item -Force -Path . -ItemType file -Name $@
+!ENDIF
+
+
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0 ft=make:
--- a/runtime/doc/test_urls.vim
+++ b/runtime/doc/test_urls.vim
@@ -6,21 +6,41 @@
 " Written by Christian Brabandt.
 
 func Test_check_URLs()
+"20.10.23, added by Restorer
   if has("win32")
-    echoerr "Doesn't work on MS-Windows"
-    return
+    let s:outdev = 'nul'
+  else
+    let s:outdev = '/dev/null'
   endif
+" Restorer: For Windows users. If "curl" or "weget" is installed on the system
+" but not in %PATH%, add the full routes for them to this environment variable.
   if executable('curl')
     " Note: does not follow redirects!
-    let s:command = 'curl --silent --fail --output /dev/null --head '
+    let s:command1 = 'curl --silent --fail --output ' ..s:outdev.. ' --head '
+    let s:command2 = ""
   elseif executable('wget')
     " Note: only allow a couple of redirects
-    let s:command = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O /dev/null '
+    let s:command1 = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O ' ..s:outdev.. ' '
+    let s:command2 = ""
+  elseif has("win32") "20.10.23, added by Restorer
+    if executable('powershell')
+      if 2 == system('powershell -nologo -noprofile "$psversiontable.psversion.major"')
+        echoerr 'To work in OS Windows requires the program "PowerShell" version 3.0 or higher'
+        return
+      endif
+      let s:command1 = 
+            \ "powershell -nologo -noprofile \"{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'};try{(Invoke-WebRequest -MaximumRedirection 2 -TimeoutSec 5 -Uri "
+      let s:command2 = ').StatusCode}catch{exit [int]$Error[0].Exception.Status}"'
+    endif
   else
-    echoerr 'Only works when "curl" or "wget" is available'
+    echoerr 'Only works when "curl" or "wget", or "powershell" is available'
     return
   endif
 
+  " Do the testing.
+  set report =999
+  set nomore shm +=s
+
   let pat='\(https\?\|ftp\)://[^\t* ]\+'
   exe 'helpgrep' pat
   helpclose
@@ -36,22 +56,21 @@ func Test_check_URLs()
   put =urls
   " remove some more invalid items
   " empty lines
-  v/./d
+  "20.10.23, Restorer: '_' is a little faster, see `:h global`
+  v/./d _
   " remove # anchors
   %s/#.*$//e
   " remove trailing stuff (parenthesis, dot, comma, quotes), but only for HTTP
   " links
-  g/^h/s#[.,)'"/>][:.]\?$##
-  g#^[hf]t\?tp:/\(/\?\.*\)$#d
-  silent! g/ftp://,$/d
-  silent! g/=$/d
+  g/^h/s#[.),'"`/>][:.,]\?$##
+  g#^[hf]t\?tp:/\(/\?\.*\)$#d _
+  silent! g/ftp://,$/d _
+  silent! g/=$/d _
   let a = getline(1,'$')
   let a = uniq(sort(a))
-  %d
+  %d _
   call setline(1, a)
 
-  " Do the testing.
-  set nomore
   %s/.*/\=TestURL(submatch(0))/
 
   " highlight the failures
@@ -61,8 +80,10 @@ endfunc
 func TestURL(url)
   " Relies on the return code to determine whether a page is valid
   echom printf("Testing URL: %d/%d %s", line('.'), line('$'), a:url)
-  call system(s:command . shellescape(a:url))
+  call system(s:command1 .. shellescape(a:url) .. s:command2)
   return printf("%s %d", a:url, v:shell_error)
 endfunc
 
 call Test_check_URLs()
+
+" vim: sw=2 sts=2 et
--- a/runtime/doc/vim2html.pl
+++ b/runtime/doc/vim2html.pl
@@ -6,11 +6,21 @@
 # Sun Feb 24 14:49:17 CET 2002
 
 use strict;
+use warnings;
 use vars qw/%url $date/;
 
 %url = ();
-$date = `date`;
-chop $date;
+# 30.11.23, Restorer:
+# This command does not work in OS Windows.
+# The "date" command in Windows is different from its counterpart in UNIX-like systems.
+# The closest analog is the "date /t" command, but how it would work in UNIX,
+# I don't know. I've corrected it as best I can. I don't know Perl.
+#$date = `date`;
+#chop $date;
+my ($year) = 1900 + (localtime())[5];
+my ($month) = 1 + (localtime())[4];
+my ($day) = (localtime())[3];
+#$date = localtime(); # outputs like this Fri Nov 3 00:56:59 2023
 
 sub maplink
 {
@@ -164,7 +174,7 @@ EOF
 	}
 	print OUT<<EOF;
 </pre>
-<p><i>Generated by vim2html on $date</i></p>
+<p><i>Generated by vim2html on $day.$month.$year</i></p>
 </body>
 </html>
 EOF