diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index bb80a66..07c88d1 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2026,7 +2026,7 @@
 appendbufline({expr}, {lnum}, {text})
 				Number	append {text} below line {lnum}
 					in buffer {expr}
-argc( [{winid}])		Number	number of files in the argument list
+argc([{winid}])			Number	number of files in the argument list
 argidx()			Number	current index in the argument list
 arglistid([{winnr} [, {tabnr}]]) Number	argument list id
 argv({nr} [, {winid}])		String	{nr} entry of the argument list
@@ -2386,7 +2386,7 @@
 shellescape({string} [, {special}])
 				String	escape {string} for use as shell
 					command argument
-shiftwidth()			Number	effective value of 'shiftwidth'
+shiftwidth([{list}])		Number	effective value of 'shiftwidth'
 simplify({filename})		String	simplify filename as much as possible
 sin({expr})			Float	sine of {expr}
 sinh({expr})			Float	hyperbolic sine of {expr}
@@ -7639,12 +7639,20 @@
 <		See also |::S|.
 
 
-shiftwidth()						*shiftwidth()*
+shiftwidth([{list}])						*shiftwidth()*
 		Returns the effective value of 'shiftwidth'. This is the
 		'shiftwidth' value unless it is zero, in which case it is the
 		'tabstop' value.  This function was introduced with patch
 		7.3.694 in 2012, everybody should have it by now.
 
+		When there is one argument {list} this is used as position
+		|List| for which to return the 'shiftwidth' value (actually
+		only the column number is relevant). This matters for the
+		'vartabstop' feature. For the {list} arguments see |cursor()|
+		function. If the 'vartabstop' setting is enabled and no
+		{list} argument is given, the current cursor position is
+		taken into account.
+
 
 simplify({filename})					*simplify()*
 		Simplify the file name as much as possible without changing
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index c621b40..565f8a5 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -878,7 +878,7 @@
 				    't': |:tlmenu| Terminal mode
 				    'i': |:imenu|  Insert mode
 				    'c': |:cmenu|  Cmdline mode
-				
+
 
 If the console-mode vim has been compiled with WANT_MENU defined, you can
 use :emenu to access useful menu items you may have got used to from GUI
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index a4df06a..26ea29e 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -45,8 +45,8 @@
 	Matt Gerassimof
 
 Perl for MS-Windows (and other platforms) can be found at:
-http://www.perl.org/ The ActiveState one should work, Strawberry Perl is a
-good alternative.
+	http://www.perl.org/
+The ActiveState one should work, Strawberry Perl is a good alternative.
 
 ==============================================================================
 3. Using the Perl interface				*perl-using*
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 8950fd9..2c12fe4 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -603,14 +603,14 @@
 These conventions are not universally followed, so the Clojure indent script
 offers a few configurable options, listed below.
 
-If the current vim does not include searchpairpos(), the indent script falls
+If the current vim does not include |searchpairpos()|, the indent script falls
 back to normal 'lisp' indenting, and the following options are ignored.
 
 							*g:clojure_maxlines*
 
-Set maximum scan distance of searchpairpos(). Larger values trade performance
-for correctness when dealing with very long forms. A value of 0 will scan
-without limits.
+Set maximum scan distance of |searchpairpos()|. Larger values trade
+performance for correctness when dealing with very long forms. A value of 0
+will scan without limits.
 >
 	" Default
 	let g:clojure_maxlines = 100
@@ -936,14 +936,14 @@
 that you can change the value of 'shiftwidth' later.
 
 Indent after an open paren: >
-	let g:pyindent_open_paren = '&sw * 2'
+	let g:pyindent_open_paren = 'shiftwidth() * 2'
 Indent after a nested paren: >
-	let g:pyindent_nested_paren = '&sw'
+	let g:pyindent_nested_paren = 'shiftwidth()'
 Indent for a continuation line: >
-	let g:pyindent_continue = '&sw * 2'
+	let g:pyindent_continue = 'shiftwidth() * 2'
 
-The method uses searchpair() to look back for unclosed parenthesis.  This can
-sometimes be slow, thus it timeouts after 150 msec.  If you notice the
+The method uses |searchpair()| to look back for unclosed parenthesis.  This
+can sometimes be slow, thus it timeouts after 150 msec.  If you notice the
 indenting isn't correct, you can set a larger timeout in msec: >
 	let g:pyindent_searchpair_timeout = 500
 
@@ -1039,7 +1039,7 @@
 indenting width (default is 'shiftwidth'): >
 
   let b:verilog_indent_width = 4
-  let b:verilog_indent_width = &sw * 2
+  let b:verilog_indent_width = shiftwidth() * 2
 
 In addition, you can turn the verbose mode for debug issue: >
 
@@ -1162,7 +1162,7 @@
 For indenting Vim scripts there is one variable that specifies the amount of
 indent for a continuation line, a line that starts with a backslash: >
 
-	:let g:vim_indent_cont = &sw * 3
+	:let g:vim_indent_cont = shiftwidth() * 3
 
 Three times shiftwidth is the default value.
 
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index b210520..ccca443 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1025,7 +1025,7 @@
 unless the line containing that position was changed or deleted.  The
 following commands are "jump" commands: "'", "`", "G", "/", "?", "n", "N",
 "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and the
-commands that start editing a new file. 
+commands that start editing a new file.
 
 							*CTRL-O*
 CTRL-O			Go to [count] Older cursor position in jump list
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index f4656de..e57de8f 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1057,9 +1057,9 @@
 	- To include a comma in a directory name precede it with a backslash.
 	- A directory name may end in an '/'.
 	- For Unix and Win32, if a directory ends in two path separators "//",
-	  the swap file name will be built from the complete path to the file
-	  with all path separators changed to percent '%' signs. This will
-	  ensure file name uniqueness in the backup directory.
+	  the backup file name will be built from the complete path to the
+	  file with all path separators changed to percent '%' signs. This
+	  will ensure file name uniqueness in the backup directory.
 	  On Win32, it is also possible to end with "\\".  However, When a
 	  separating comma is following, you must use "//", since "\\" will
 	  include the comma in the file name. Therefore it is recommended to
@@ -2686,11 +2686,11 @@
 				option to see when this happens.
 
 		indent-heuristic
-                                 Use the indent heuristic for the internal
-                                 diff library.
+				Use the indent heuristic for the internal
+				diff library.
 
                 algorithm:{text} Use the specified diff algorithm with the
-				internal diff engine. Currently supported 
+				internal diff engine. Currently supported
 				algorithms are:
 				myers      the default algorithm
 				minimal    spend extra time to generate the
@@ -8120,13 +8120,14 @@
 			global or local to buffer |global-local|
 			{not in Vi}
 	List of file names, separated by commas, that are used to lookup words
-	for thesaurus completion commands |i_CTRL-X_CTRL-T|.  Each line in
-	the file should contain words with similar meaning, separated by
-	non-keyword characters (white space is preferred).  Maximum line
-	length is 510 bytes.
-	To obtain a file to be used here, check out this ftp site:
-	ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/  First get the README
-	file.
+	for thesaurus completion commands |i_CTRL-X_CTRL-T|.
+
+	Each line in the file should contain words with similar meaning,
+	separated by non-keyword characters (white space is preferred).
+	Maximum line length is 510 bytes.
+
+	Unfortunately we currently cannot recommend a file to be used here.
+
 	To include a comma in a file name precede it with a backslash.  Spaces
 	after a comma are ignored, otherwise spaces are included in the file
 	name.  See |option-backslash| about using backslashes.
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index e7e510f..2012328 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -295,7 +295,7 @@
 
 								*E956*
 In very rare cases a regular expression is used recursively.  This can happen
-when executing a pattern takes a long time and when checkig for messages on
+when executing a pattern takes a long time and when checking for messages on
 channels a callback is invoked that also uses a pattern or an autocommand is
 triggered.  In most cases this should be fine, but if a pattern is in use when
 it's used again it fails.  Usually this means there is something wrong with
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index b060c45..711a487 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -515,7 +515,7 @@
 --clean		Similar to "-u DEFAULTS -U NONE -i NONE":
 		- initializations from files and environment variables is
 		  skipped
-		-'runtimepath'and 'packpath' are set to exclude home
+		- 'runtimepath' and 'packpath' are set to exclude home
 		  directory entries (does not happen with -u DEFAULTS).
 		- the |defaults.vim| script is loaded, which implies
 		  'nocompatible': use Vim defaults
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 04de08e..00a016a 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -671,12 +671,12 @@
    :let g:html_no_pre = 1
 <
 							  *g:html_expand_tabs*
-Default: 1 if 'tabstop' is 8, 'expandtab' is 0, and no fold column or line
-		numbers occur in the generated HTML;
-	 0 otherwise.
-When 0, <Tab> characters in the buffer text are replaced with an appropriate
+Default: 0 if 'tabstop' is 8, 'expandtab' is 0, 'vartabstop' is not in use,
+	       and no fold column or line numbers occur in the generated HTML;
+	 1 otherwise.
+When 1, <Tab> characters in the buffer text are replaced with an appropriate
 number of space characters, or &nbsp; references if |g:html_no_pre| is 1.
-When 1, if |g:html_no_pre| is 0 or unset, <Tab> characters in the buffer text
+When 0, if |g:html_no_pre| is 0 or unset, <Tab> characters in the buffer text
 are included as-is in the generated HTML. This is useful for when you want to
 allow copy and paste from a browser without losing the actual whitespace in
 the source document. Note that this can easily break text alignment and
@@ -774,6 +774,8 @@
     :let g:html_use_xhtml = 1
 <
 
+ vim:tw=78:sw=4:ts=8:sts=4:ft=help:norl:ai:noet:
+
 ABEL						*abel.vim* *ft-abel-syntax*
 
 ABEL highlighting provides some user-defined options.  To enable them, assign
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 33f9133..d771fcc 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4652,6 +4652,7 @@
 E96	diff.txt	/*E96*
 E960	options.txt	/*E960*
 E961	cmdline.txt	/*E961*
+E962	eval.txt	/*E962*
 E97	diff.txt	/*E97*
 E98	diff.txt	/*E98*
 E99	diff.txt	/*E99*
@@ -6692,6 +6693,7 @@
 gettabinfo()	eval.txt	/*gettabinfo()*
 gettabvar()	eval.txt	/*gettabvar()*
 gettabwinvar()	eval.txt	/*gettabwinvar()*
+gettagstack()	eval.txt	/*gettagstack()*
 getwininfo()	eval.txt	/*getwininfo()*
 getwinpos()	eval.txt	/*getwinpos()*
 getwinposx()	eval.txt	/*getwinposx()*
@@ -8435,6 +8437,7 @@
 setreg()	eval.txt	/*setreg()*
 settabvar()	eval.txt	/*settabvar()*
 settabwinvar()	eval.txt	/*settabwinvar()*
+settagstack()	eval.txt	/*settagstack()*
 setting-guifont	gui.txt	/*setting-guifont*
 setting-guitablabel	tabpage.txt	/*setting-guitablabel*
 setting-tabline	tabpage.txt	/*setting-tabline*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 75a5b11..e6589c7 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -179,8 +179,8 @@
    1  1 main		1  harddisk2:text/vim/test
    2  1 FuncB	       59  harddisk2:text/vim/src/main.c
 
-The gettagstack() function returns the tag stack of a specified window. The
-settagstack() function modifies the tag stack of a window.
+The |gettagstack()| function returns the tag stack of a specified window. The
+|settagstack()| function modifies the tag stack of a window.
 
 							*E73*
 When you try to use the tag stack while it doesn't contain anything you will
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index c5ebd61..909dc77 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,6 +38,8 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+runtest: for flaky test, try more often if error message changes (5 times)
+
 'incsearch' with :s: (#3321)
 - :s/foo  using CTRL-G moves to another line, should not happen, or use the
   correct line (it uses the last but one line) (Lifepillar, Aug 18, #3345)
@@ -92,6 +94,19 @@
 - When 'encoding' is not utf-8, or the job is using another encoding, setup
   conversions.
 
+Users get used to "function!" because they reload a script file.  How about
+recognizing the script is re-sourced and not giving an error for the first
+function that overwrites.  Then one can leave out the exclamation mark and
+catch actual errors, overwriting a function from another script.
+
+Update for German spell files: https://github.com/chrisbra/vim/compare/5e021c990f8817a50d3264782a5...3b27c92f297540761ebbd92d04fb3
+(Christian Brabandt, 2018 Nov 4)
+
+Patch for comparing quickfix and location stacks. (Yegappan, 2018 Nov 15)
+
+Patch to fix visual block problem. (Tom M, tommm, 2018 Nov 14)
+Also will write a test.
+
 Key mapping times out when using a timer in Gvim. (Michael Henry, 2018 Sep 9,
 #3417)
 
@@ -115,6 +130,9 @@
 When a terminal exit_cb closes the window, a following typed key is lost, if
 it's in a mapping. (2018 Oct 6, #2302, #3522)
 
+Patch for dos installer to use logic instead of $HOME.  (Ken Takata, Nov 5,
+#3564)
+
 Completion mixes results from the current buffer with tags and other files.
 Happens when typing CTRL-N while still search for results.  E.g., type "b_" in
 terminal.c and then CTRL-N twice.
@@ -126,6 +144,9 @@
 
 Problem with :tlmenu: Detach item added with all modes?  Issue #3563.
 
+Patch to avoid that increment or decrement gets interrupted by updating folds.
+(Christian Brabandt, 2018 Nov 6, #3599)
+
 C syntax: {} inside () causes following {} to be highlighted as error.
 (Michalis Giannakidis, 2006 Jun 1)
 
@@ -220,6 +241,9 @@
 
 ml_get error. (Dominique Pelle, 2018 Sep 14, #3434)
 
+Patch to use forward slash for completion even when 'shellslash' is set.
+Adds 'completepathslash'.  (Yasuhiro Matsumoto, 2018 Nov 15, #3612)
+
 Only output t_Cs when t_Ce is also set.  do not use Cs and Ce termcap entries.  (Daniel Hahler, 2018 Sep 25)
 Add t_cS and t_cR for cursor color select and reset.  Use Cs and Cr terminfo
 values.
@@ -311,6 +335,7 @@
 Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
 Maybe call it v:motiontype.  Update in #3490.
 Alternative: add the force flag to mode(), after "no".
+Patch ready to include?
 
 Try out background make plugin: 
   https://github.com/AndrewVos/vim-make-background
@@ -369,7 +394,6 @@
 
 Improve the installer for MS-Windows.  There are a few alternatives:
 - mui2 installer improved by Ken Takata (2018 Sep 29)
-- Add silent install option. (Shane Lee, #751)
 - Installer from Cream (Steve Hall).
 - Modern UI 2.0 for the Nsis installer. (Guopeng Wen)
     https://github.com/gpwen/vim-installer-mui2
