Runtime file updates.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 49c955d..48c1a78 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.0.  Last change: 2017 Feb 17
+*eval.txt*	For Vim version 8.0.  Last change: 2017 Mar 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2623,9 +2623,9 @@
 <			2.356194
 		{only available when compiled with the |+float| feature}
 
-balloon_show({msg})                                     *balloon_show()*
-                Show {msg} inside the balloon.
-                Example: >
+balloon_show({msg})					*balloon_show()*
+		Show {msg} inside the balloon.
+		Example: >
 			func GetBalloonContent()
 			   " initiate getting the content
 			   return ''
@@ -2633,7 +2633,7 @@
 			set balloonexpr=GetBalloonContent()
 
 			func BalloonCallback(result)
-                          call balloon_show(a:result)
+			  call balloon_show(a:result)
 			endfunc
 <
 		The intended use is that fetching the content of the balloon
@@ -2641,7 +2641,10 @@
 		asynchronous method, in which a callback invokes
 		balloon_show().  The 'balloonexpr' itself can return an
 		empty string or a placeholder.
-                {only available when compiled with the +beval feature}
+
+		When showing a balloon is not possible nothing happens, no
+		error message.
+		{only available when compiled with the +balloon_eval feature}
 
 							*browse()*
 browse({save}, {title}, {initdir}, {default})
@@ -2837,176 +2840,6 @@
 <			4.0
 		{only available when compiled with the |+float| feature}
 
-changenr()						*changenr()*
-		Return the number of the most recent change.  This is the same
-		number as what is displayed with |:undolist| and can be used
-		with the |:undo| command.
-		When a change was made it is the number of that change.  After
-		redo it is the number of the redone change.  After undo it is
-		one less than the number of the undone change.
-
-char2nr({expr}[, {utf8}])					*char2nr()*
-		Return number value of the first char in {expr}.  Examples: >
-			char2nr(" ")		returns 32
-			char2nr("ABC")		returns 65
-<		When {utf8} is omitted or zero, the current 'encoding' is used.
-		Example for "utf-8": >
-			char2nr("á")		returns 225
-			char2nr("á"[0])		returns 195
-<		With {utf8} set to 1, always treat as utf-8 characters.
-		A combining character is a separate character.
-		|nr2char()| does the opposite.
-
-cindent({lnum})						*cindent()*
-		Get the amount of indent for line {lnum} according the C
-		indenting rules, as with 'cindent'.
-		The indent is counted in spaces, the value of 'tabstop' is
-		relevant.  {lnum} is used just like in |getline()|.
-		When {lnum} is invalid or Vim was not compiled the |+cindent|
-		feature, -1 is returned.
-		See |C-indenting|.
-
-clearmatches()						*clearmatches()*
-		Clears all matches previously defined by |matchadd()| and the
-		|:match| commands.
-
-							*col()*
-col({expr})	The result is a Number, which is the byte index of the column
-		position given with {expr}.  The accepted positions are:
-		    .	    the cursor position
-		    $	    the end of the cursor line (the result is the
-			    number of bytes in the cursor line plus one)
-		    'x	    position of mark x (if the mark is not set, 0 is
-			    returned)
-		    v       In Visual mode: the start of the Visual area (the
-			    cursor is the end).  When not in Visual mode
-			    returns the cursor position.  Differs from |'<| in
-			    that it's updated right away.
-		Additionally {expr} can be [lnum, col]: a |List| with the line
-		and column number. Most useful when the column is "$", to get
-		the last column of a specific line.  When "lnum" or "col" is
-		out of range then col() returns zero.
-		To get the line number use |line()|.  To get both use
-		|getpos()|.
-		For the screen column position use |virtcol()|.
-		Note that only marks in the current file can be used.
-		Examples: >
-			col(".")		column of cursor
-			col("$")		length of cursor line plus one
-			col("'t")		column of mark t
-			col("'" . markname)	column of mark markname
-<		The first column is 1.  0 is returned for an error.
-		For an uppercase mark the column may actually be in another
-		buffer.
-		For the cursor position, when 'virtualedit' is active, the
-		column is one higher if the cursor is after the end of the
-		line.  This can be used to obtain the column in Insert mode: >
-			:imap <F2> <C-O>:let save_ve = &ve<CR>
-				\<C-O>:set ve=all<CR>
-				\<C-O>:echo col(".") . "\n" <Bar>
-				\let &ve = save_ve<CR>
-<
-
-complete({startcol}, {matches})			*complete()* *E785*
-		Set the matches for Insert mode completion.
-		Can only be used in Insert mode.  You need to use a mapping
-		with CTRL-R = (see |i_CTRL-R|).  It does not work after CTRL-O
-		or with an expression mapping.
-		{startcol} is the byte offset in the line where the completed
-		text start.  The text up to the cursor is the original text
-		that will be replaced by the matches.  Use col('.') for an
-		empty string.  "col('.') - 1" will replace one character by a
-		match.
-		{matches} must be a |List|.  Each |List| item is one match.
-		See |complete-items| for the kind of items that are possible.
-		Note that the after calling this function you need to avoid
-		inserting anything that would cause completion to stop.
-		The match can be selected with CTRL-N and CTRL-P as usual with
-		Insert mode completion.  The popup menu will appear if
-		specified, see |ins-completion-menu|.
-		Example: >
-	inoremap <F5> <C-R>=ListMonths()<CR>
-
-	func! ListMonths()
-	  call complete(col('.'), ['January', 'February', 'March',
-		\ 'April', 'May', 'June', 'July', 'August', 'September',
-		\ 'October', 'November', 'December'])
-	  return ''
-	endfunc
-<		This isn't very useful, but it shows how it works.  Note that
-		an empty string is returned to avoid a zero being inserted.
-
-complete_add({expr})				*complete_add()*
-		Add {expr} to the list of matches.  Only to be used by the
-		function specified with the 'completefunc' option.
-		Returns 0 for failure (empty string or out of memory),
-		1 when the match was added, 2 when the match was already in
-		the list.
-		See |complete-functions| for an explanation of {expr}.  It is
-		the same as one item in the list that 'omnifunc' would return.
-
-complete_check()				*complete_check()*
-		Check for a key typed while looking for completion matches.
-		This is to be used when looking for matches takes some time.
-		Returns |TRUE| when searching for matches is to be aborted,
-		zero otherwise.
-		Only to be used by the function specified with the
-		'completefunc' option.
-
-						*confirm()*
-confirm({msg} [, {choices} [, {default} [, {type}]]])
-		Confirm() offers the user a dialog, from which a choice can be
-		made.  It returns the number of the choice.  For the first
-		choice this is 1.
-		Note: confirm() is only supported when compiled with dialog
-		support, see |+dialog_con| and |+dialog_gui|.
-
-		{msg} is displayed in a |dialog| with {choices} as the
-		alternatives.  When {choices} is missing or empty, "&OK" is
-		used (and translated).
-		{msg} is a String, use '\n' to include a newline.  Only on
-		some systems the string is wrapped when it doesn't fit.
-
-		{choices} is a String, with the individual choices separated
-		by '\n', e.g. >
-			confirm("Save changes?", "&Yes\n&No\n&Cancel")
-<		The letter after the '&' is the shortcut key for that choice.
-		Thus you can type 'c' to select "Cancel".  The shortcut does
-		not need to be the first letter: >
-			confirm("file has been modified", "&Save\nSave &All")
-<		For the console, the first letter of each choice is used as
-		the default shortcut key.
-
-		The optional {default} argument is the number of the choice
-		that is made if the user hits <CR>.  Use 1 to make the first
-		choice the default one.  Use 0 to not set a default.  If
-		{default} is omitted, 1 is used.
-
-		The optional {type} argument gives the type of dialog.  This
-		is only used for the icon of the GTK, Mac, Motif and Win32
-		GUI.  It can be one of these values: "Error", "Question",
-		"Info", "Warning" or "Generic".  Only the first character is
-		relevant.  When {type} is omitted, "Generic" is used.
-
-		If the user aborts the dialog by pressing <Esc>, CTRL-C,
-		or another valid interrupt key, confirm() returns 0.
-
-		An example: >
-   :let choice = confirm("What do you want?", "&Apples\n&Oranges\n&Bananas", 2)
-   :if choice == 0
-   :	echo "make up your mind!"
-   :elseif choice == 3
-   :	echo "tasteful"
-   :else
-   :	echo "I prefer bananas myself."
-   :endif
-<		In a GUI dialog, buttons are used.  The layout of the buttons
-		depends on the 'v' flag in 'guioptions'.  If it is included,
-		the buttons are always put vertically.  Otherwise,  confirm()
-		tries to put the buttons in one horizontal line.  If they
-		don't fit, a vertical layout is used anyway.  For some systems
-		the horizontal layout is always used.
-
 ch_canread({handle})						*ch_canread()*
 		Return non-zero when there is something to read from {handle}.
 		{handle} can be a Channel or a Job that has a Channel.
@@ -3196,6 +3029,176 @@
 		"err".  For example, to get the error status: >
 			ch_status(job, {"part": "err"})
 <
+changenr()						*changenr()*
+		Return the number of the most recent change.  This is the same
+		number as what is displayed with |:undolist| and can be used
+		with the |:undo| command.
+		When a change was made it is the number of that change.  After
+		redo it is the number of the redone change.  After undo it is
+		one less than the number of the undone change.
+
+char2nr({expr}[, {utf8}])					*char2nr()*
+		Return number value of the first char in {expr}.  Examples: >
+			char2nr(" ")		returns 32
+			char2nr("ABC")		returns 65
+<		When {utf8} is omitted or zero, the current 'encoding' is used.
+		Example for "utf-8": >
+			char2nr("á")		returns 225
+			char2nr("á"[0])		returns 195
+<		With {utf8} set to 1, always treat as utf-8 characters.
+		A combining character is a separate character.
+		|nr2char()| does the opposite.
+
+cindent({lnum})						*cindent()*
+		Get the amount of indent for line {lnum} according the C
+		indenting rules, as with 'cindent'.
+		The indent is counted in spaces, the value of 'tabstop' is
+		relevant.  {lnum} is used just like in |getline()|.
+		When {lnum} is invalid or Vim was not compiled the |+cindent|
+		feature, -1 is returned.
+		See |C-indenting|.
+
+clearmatches()						*clearmatches()*
+		Clears all matches previously defined by |matchadd()| and the
+		|:match| commands.
+
+							*col()*
+col({expr})	The result is a Number, which is the byte index of the column
+		position given with {expr}.  The accepted positions are:
+		    .	    the cursor position
+		    $	    the end of the cursor line (the result is the
+			    number of bytes in the cursor line plus one)
+		    'x	    position of mark x (if the mark is not set, 0 is
+			    returned)
+		    v       In Visual mode: the start of the Visual area (the
+			    cursor is the end).  When not in Visual mode
+			    returns the cursor position.  Differs from |'<| in
+			    that it's updated right away.
+		Additionally {expr} can be [lnum, col]: a |List| with the line
+		and column number. Most useful when the column is "$", to get
+		the last column of a specific line.  When "lnum" or "col" is
+		out of range then col() returns zero.
+		To get the line number use |line()|.  To get both use
+		|getpos()|.
+		For the screen column position use |virtcol()|.
+		Note that only marks in the current file can be used.
+		Examples: >
+			col(".")		column of cursor
+			col("$")		length of cursor line plus one
+			col("'t")		column of mark t
+			col("'" . markname)	column of mark markname
+<		The first column is 1.  0 is returned for an error.
+		For an uppercase mark the column may actually be in another
+		buffer.
+		For the cursor position, when 'virtualedit' is active, the
+		column is one higher if the cursor is after the end of the
+		line.  This can be used to obtain the column in Insert mode: >
+			:imap <F2> <C-O>:let save_ve = &ve<CR>
+				\<C-O>:set ve=all<CR>
+				\<C-O>:echo col(".") . "\n" <Bar>
+				\let &ve = save_ve<CR>
+<
+
+complete({startcol}, {matches})			*complete()* *E785*
+		Set the matches for Insert mode completion.
+		Can only be used in Insert mode.  You need to use a mapping
+		with CTRL-R = (see |i_CTRL-R|).  It does not work after CTRL-O
+		or with an expression mapping.
+		{startcol} is the byte offset in the line where the completed
+		text start.  The text up to the cursor is the original text
+		that will be replaced by the matches.  Use col('.') for an
+		empty string.  "col('.') - 1" will replace one character by a
+		match.
+		{matches} must be a |List|.  Each |List| item is one match.
+		See |complete-items| for the kind of items that are possible.
+		Note that the after calling this function you need to avoid
+		inserting anything that would cause completion to stop.
+		The match can be selected with CTRL-N and CTRL-P as usual with
+		Insert mode completion.  The popup menu will appear if
+		specified, see |ins-completion-menu|.
+		Example: >
+	inoremap <F5> <C-R>=ListMonths()<CR>
+
+	func! ListMonths()
+	  call complete(col('.'), ['January', 'February', 'March',
+		\ 'April', 'May', 'June', 'July', 'August', 'September',
+		\ 'October', 'November', 'December'])
+	  return ''
+	endfunc
+<		This isn't very useful, but it shows how it works.  Note that
+		an empty string is returned to avoid a zero being inserted.
+
+complete_add({expr})				*complete_add()*
+		Add {expr} to the list of matches.  Only to be used by the
+		function specified with the 'completefunc' option.
+		Returns 0 for failure (empty string or out of memory),
+		1 when the match was added, 2 when the match was already in
+		the list.
+		See |complete-functions| for an explanation of {expr}.  It is
+		the same as one item in the list that 'omnifunc' would return.
+
+complete_check()				*complete_check()*
+		Check for a key typed while looking for completion matches.
+		This is to be used when looking for matches takes some time.
+		Returns |TRUE| when searching for matches is to be aborted,
+		zero otherwise.
+		Only to be used by the function specified with the
+		'completefunc' option.
+
+						*confirm()*
+confirm({msg} [, {choices} [, {default} [, {type}]]])
+		Confirm() offers the user a dialog, from which a choice can be
+		made.  It returns the number of the choice.  For the first
+		choice this is 1.
+		Note: confirm() is only supported when compiled with dialog
+		support, see |+dialog_con| and |+dialog_gui|.
+
+		{msg} is displayed in a |dialog| with {choices} as the
+		alternatives.  When {choices} is missing or empty, "&OK" is
+		used (and translated).
+		{msg} is a String, use '\n' to include a newline.  Only on
+		some systems the string is wrapped when it doesn't fit.
+
+		{choices} is a String, with the individual choices separated
+		by '\n', e.g. >
+			confirm("Save changes?", "&Yes\n&No\n&Cancel")
+<		The letter after the '&' is the shortcut key for that choice.
+		Thus you can type 'c' to select "Cancel".  The shortcut does
+		not need to be the first letter: >
+			confirm("file has been modified", "&Save\nSave &All")
+<		For the console, the first letter of each choice is used as
+		the default shortcut key.
+
+		The optional {default} argument is the number of the choice
+		that is made if the user hits <CR>.  Use 1 to make the first
+		choice the default one.  Use 0 to not set a default.  If
+		{default} is omitted, 1 is used.
+
+		The optional {type} argument gives the type of dialog.  This
+		is only used for the icon of the GTK, Mac, Motif and Win32
+		GUI.  It can be one of these values: "Error", "Question",
+		"Info", "Warning" or "Generic".  Only the first character is
+		relevant.  When {type} is omitted, "Generic" is used.
+
+		If the user aborts the dialog by pressing <Esc>, CTRL-C,
+		or another valid interrupt key, confirm() returns 0.
+
+		An example: >
+   :let choice = confirm("What do you want?", "&Apples\n&Oranges\n&Bananas", 2)
+   :if choice == 0
+   :	echo "make up your mind!"
+   :elseif choice == 3
+   :	echo "tasteful"
+   :else
+   :	echo "I prefer bananas myself."
+   :endif
+<		In a GUI dialog, buttons are used.  The layout of the buttons
+		depends on the 'v' flag in 'guioptions'.  If it is included,
+		the buttons are always put vertically.  Otherwise,  confirm()
+		tries to put the buttons in one horizontal line.  If they
+		don't fit, a vertical layout is used anyway.  For some systems
+		the horizontal layout is always used.
+
 							*copy()*
 copy({expr})	Make a copy of {expr}.  For Numbers and Strings this isn't
 		different from using {expr} directly.
@@ -3452,7 +3455,7 @@
 			""		no `:silent` used
 			"silent"	`:silent` used
 			"silent!"	`:silent!` used
-		The default is 'silent'.  Note that with "silent!", unlike
+		The default is "silent".  Note that with "silent!", unlike
 		`:redir`, error messages are dropped.  When using an external
 		command the screen may be messed up, use `system()` instead.
 							*E930*
@@ -4054,10 +4057,10 @@
 get({func}, {what})
 		Get an item with from Funcref {func}.  Possible values for
 		{what} are:
-			'name'	The function name
-			'func'	The function
-			'dict'	The dictionary
-			'args'	The list with arguments
+			"name"	The function name
+			"func"	The function
+			"dict"	The dictionary
+			"args"	The list with arguments
 
 							*getbufinfo()*
 getbufinfo([{expr}])
@@ -7735,7 +7738,7 @@
 		may appear, they give the name of the entity the tag is
 		contained in.
 
-		The ex-command 'cmd' can be either an ex search pattern, a
+		The ex-command "cmd" can be either an ex search pattern, a
 		line number or a line number followed by a byte number.
 
 		If there are no matching tags, then an empty list is returned.
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 6a99488..c3f4132 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -64,7 +64,7 @@
 with a character in 'foldignore'.  White space is skipped before checking for
 characters in 'foldignore'.  For C use "#" to ignore preprocessor lines.
 
-When you want to ignore lines in another way, use the 'expr' method.  The
+When you want to ignore lines in another way, use the "expr" method.  The
 |indent()| function can be used in 'foldexpr' to get the indent of a line.
 
 
@@ -139,7 +139,7 @@
 yet.  And it returns the level at the start of the line, while a fold might
 end in that line.
 
-It may happened that folds are not updated properly.  You can use |zx| or |zX|
+It may happen that folds are not updated properly.  You can use |zx| or |zX|
 to force updating folds.
 
 
diff --git a/runtime/doc/hangulin.txt b/runtime/doc/hangulin.txt
index 40901a6..0092501 100644
--- a/runtime/doc/hangulin.txt
+++ b/runtime/doc/hangulin.txt
@@ -81,8 +81,8 @@
 ':set guifontset'.  It means VIM runs without fontset supporting.
 So, you can see only English.  Hangul does not be correctly displayed.
 
-After 'fontset' feature is enabled, VIM does not allow using english
-font only in 'font' setting for syntax.
+After "fontset" feature is enabled, VIM does not allow using english
+font only in "font" setting for syntax.
 For example, if you use >
    :set guifontset=eng_font,your_font
 in your .gvimrc, then you should do for syntax >
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index 32051d4..20f1ed8 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -314,7 +314,7 @@
 date of the file.  Each field is separated by a tab.
 
 At the bottom of the help file, place a Vim modeline to set the 'textwidth'
-and 'tabstop' options and the 'filetype' to 'help'.  Never set a global option
+and 'tabstop' options and the 'filetype' to "help".  Never set a global option
 in such a modeline, that can have consequences undesired by whoever reads that
 help.
 
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 4f9ecbd..0be8a31 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 8.0.  Last change: 2017 Feb 17
+*if_pyth.txt*   For Vim version 8.0.  Last change: 2017 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -174,8 +174,8 @@
 
 	    :py tagList = vim.eval('taglist("eval_expr")')
 <	The latter will return a python list of python dicts, for instance:
-	[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name':
-	'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
+	[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~
+	'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~
 
 vim.bindeval(str)					*python-bindeval*
 	Like |python-eval|, but returns special objects described in 
@@ -819,7 +819,7 @@
 11. Python X						*python_x* *pythonx*
 
 Because most python code can be written so that it works with python 2.6+ and
-python 3 the pyx* functions and commands have been writen.  They work exactly
+python 3 the pyx* functions and commands have been written.  They work exactly
 the same as the Python 2 and 3 variants, but select the Python version using
 the 'pyxversion' setting.
 
@@ -867,7 +867,7 @@
 it is not available then Python 2.  If 'pyxversion' is 2 or 3, it tests only
 Python 2 or 3 respectively.
 
-Note that for has('pythonx') to work it may try to dynamically load Python 3
+Note that for `has('pythonx')` to work it may try to dynamically load Python 3
 or 2.  This may have side effects, especially when Vim can only load one of
 the two.
 
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index b00dd45..f79ecc1 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -72,7 +72,7 @@
 
 							*:rubyfile* *:rubyf*
 :rubyf[ile] {file}	Execute the Ruby script in {file}.  This is the same as
-			":ruby load 'file'", but allows file name completion.
+			`:ruby load 'file'`, but allows file name completion.
 
 Executing Ruby commands is not possible in the |sandbox|.
 
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 81b2eb6..f573f38 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.0.  Last change: 2016 Sep 27
+*index.txt*     For Vim version 8.0.  Last change: 2017 Feb 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1004,10 +1004,12 @@
 |c_<CR>|	<CR>		execute entered command
 |c_CTRL-M|	CTRL-M		same as <CR>
 |c_CTRL-N|	CTRL-N		after using 'wildchar' with multiple matches:
-				go to next match, otherwise: same as <Down>
+				go to next match, otherwise: recall older
+				command-line from history.
 		CTRL-O		not used
 |c_CTRL-P|	CTRL-P		after using 'wildchar' with multiple matches:
-				go to previous match, otherwise: same as <Up>
+				go to previous match, otherwise: recall older
+				command-line from history.
 |c_CTRL-Q|	CTRL-Q		same as CTRL-V, unless it's used for terminal
 				control flow
 |c_CTRL-R|	CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index d2959df..7ada7b0 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1103,7 +1103,7 @@
 	empty		when non-zero this match will be added even when it is
 			an empty string
 
-All of these except 'icase', 'dup' and 'empty' must be a string.  If an item
+All of these except "icase", "dup" and "empty" must be a string.  If an item
 does not meet these requirements then an error message is given and further
 items in the list are not used.  You can mix string and Dictionary items in
 the returned list.
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index aa9a94c..2d27912 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,4 +1,4 @@
-*mlang.txt*     For Vim version 8.0.  Last change: 2016 Jan 16
+*mlang.txt*     For Vim version 8.0.  Last change: 2017 Mar 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -179,6 +179,7 @@
 			special characters like "&" and "<Tab>" need to be
 			included.  Spaces and dots need to be escaped with a
 			backslash, just like in other |:menu| commands.
+			Case in {english} is ignored.
 
 See the $VIMRUNTIME/lang directory for examples.
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 215215f..91c864d 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.0.  Last change: 2017 Feb 09
+*options.txt*	For Vim version 8.0.  Last change: 2017 Mar 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1120,6 +1120,9 @@
     set bexpr=MyBalloonExpr()
     set ballooneval
 <
+	Also see |balloon_show()|, can be used if the content of the balloon
+	is to be fetched asynchronously.
+
 	NOTE: The balloon is displayed only if the cursor is on a text
 	character.  If the result of evaluating 'balloonexpr' is not empty,
 	Vim does not try to send a message to an external debugger (Netbeans
@@ -1702,12 +1705,14 @@
 			{not in Vi}
 	This option has the effect of making Vim either more Vi-compatible, or
 	make Vim behave in a more useful way.
+
 	This is a special kind of option, because when it's set or reset,
-	other options are also changed as a side effect.  CAREFUL: Setting or
-	resetting this option can have a lot of unexpected effects: Mappings
-	are interpreted in another way, undo behaves differently, etc.  If you
-	set this option in your vimrc file, you should probably put it at the
-	very start.
+	other options are also changed as a side effect.
+	NOTE: Setting or resetting this option can have a lot of unexpected
+	effects: Mappings are interpreted in another way, undo behaves
+	differently, etc.  If you set this option in your vimrc file, you
+	should probably put it at the very start.
+
 	By default this option is on and the Vi defaults are used for the
 	options.  This default was chosen for those people who want to use Vim
 	just like Vi, and don't even (want to) know about the 'compatible'
@@ -1722,70 +1727,98 @@
 	|posix-compliance|.
 	You can also set this option with the "-C" argument, and reset it with
 	"-N".  See |-C| and |-N|.
-	Switching this option off makes the Vim defaults be used for options
-	that have a different Vi and Vim default value.  See the options
-	marked with a '+' below.  Other options are not modified.
-	At the moment this option is set, several other options will be set
-	or reset to make Vim as Vi-compatible as possible.  See the table
-	below.  This can be used if you want to revert to Vi compatible
-	editing.
-	See also 'cpoptions'.
+	See 'cpoptions' for more fine tuning of Vi compatibility.
 
-	option		+ set value	effect	~
+	When this option is set, numerous other options are set to make Vim as
+	Vi-compatible as possible.  When this option is unset, various options
+	are set to make Vim more useful.  The table below lists all the
+	options affected.
+	The {?} column indicates when the options are affected:
+	+  Means that the option is set to the value given in {set value} when
+	   'compatible' is set.
+	&  Means that the option is set to the value given in {set value} when
+	   'compatible' is set AND is set to its Vim default value when
+	   'compatible' is unset.
+	-  Means the option is NOT changed when setting 'compatible' but IS
+	   set to its Vim default when 'compatible' is unset.
+	The {effect} column summarises the change when 'compatible' is set.
 
-	'allowrevins'	  off		no CTRL-_ command
-	'backspace'	  ""		normal backspace
-	'backupcopy'	  Unix: "yes"	backup file is a copy
-			  else: "auto"  copy or rename backup file
-	'backup'	  off		no backup file
-	'cedit'		+ ""		no key to open the |cmdwin|
-	'cindent'	  off		no C code indentation
-	'cpoptions'	+ (all flags)	Vi-compatible flags
-	'cscopetag'	  off		don't use cscope for ":tag"
+	option		? set value	effect
+
+	'allowrevins'	+ off		no CTRL-_ command
+	'antialias'	+ off		don't use antialiased fonts
+	'arabic'	+ off	 	reset arabic-related options
+	'arabicshape'	+ on		correct character shapes
+	'backspace'	+ ""		normal backspace
+	'backup'	+ off		no backup file
+	'backupcopy'	& Unix: "yes"	backup file is a copy
+			  else: "auto"	copy or rename backup file
+	'balloonexpr'	+ ""		text to show in evaluation balloon
+	'breakindent'	+ off		don't indent when wrapping lines
+	'cedit'		- {unchanged}	{set vim default only on resetting 'cp'}
+	'cindent'	+ off		no C code indentation
+	'compatible'	- {unchanged}	{set vim default only on resetting 'cp'}
+	'copyindent'	+ off		don't copy indent structure
+	'cpoptions'	& (all flags)	Vi-compatible flags
+	'cscopepathcomp'+ 0		don't show directories in tags list
+	'cscoperelative'+ off		
+	'cscopetag'	+ off		don't use cscope for ":tag"
 	'cscopetagorder'  0		see |cscopetagorder|
-	'cscopeverbose'	  off		see |cscopeverbose|
-	'digraph'	  off		no digraphs
-	'esckeys'	+ off		no <Esc>-keys in Insert mode
-	'expandtab'	  off		tabs not expanded to spaces
-	'fileformats'	+ ""		no automatic file format detection,
+	'cscopeverbose'	+ off		see |cscopeverbose|
+	'delcombine'	+ off		unicode: delete whole char combination
+	'digraph'	+ off		no digraphs
+	'esckeys'	& off		no <Esc>-keys in Insert mode
+	'expandtab'	+ off		tabs not expanded to spaces
+	'fileformats'	& ""		no automatic file format detection,
 			  "dos,unix"	except for DOS, Windows and OS/2
-	'formatoptions'	+ "vt"		Vi compatible formatting
-	'gdefault'	  off		no default 'g' flag for ":s"
-	'history'	+ 0		no commandline history
-	'hkmap'		  off		no Hebrew keyboard mapping
-	'hkmapp'	  off		no phonetic Hebrew keyboard mapping
-	'hlsearch'	  off		no highlighting of search matches
-	'incsearch'	  off		no incremental searching
-	'indentexpr'	  ""		no indenting by expression
-	'insertmode'	  off		do not start in Insert mode
-	'iskeyword'	+ "@,48-57,_"	keywords contain alphanumeric
+	'formatexpr'	+ ""		use 'formatprg' for auto-formatting
+	'formatoptions'	& "vt"		Vi compatible formatting
+	'gdefault'	+ off		no default 'g' flag for ":s"
+	'history'	& 0		no commandline history
+	'hkmap'		+ off		no Hebrew keyboard mapping
+	'hkmapp'	+ off		no phonetic Hebrew keyboard mapping
+	'hlsearch'	+ off		no highlighting of search matches
+	'incsearch'	+ off		no incremental searching
+	'indentexpr'	+ ""		no indenting by expression
+	'insertmode'	+ off		do not start in Insert mode
+	'iskeyword'	& "@,48-57,_"	keywords contain alphanumeric
 						characters and '_'
-	'joinspaces'	  on		insert 2 spaces after period
-	'modeline'	+ off		no modelines
-	'more'		+ off		no pauses in listings
-	'revins'	  off		no reverse insert
-	'ruler'		  off		no ruler
-	'scrolljump'	  1		no jump scroll
-	'scrolloff'	  0		no scroll offset
-	'shiftround'	  off		indent not rounded to shiftwidth
-	'shortmess'	+ ""		no shortening of messages
-	'showcmd'	+ off		command characters not shown
-	'showmode'	+ off		current mode not shown
-	'smartcase'	  off		no automatic ignore case switch
-	'smartindent'	  off		no smart indentation
-	'smarttab'	  off		no smart tab size
-	'softtabstop'	  0		tabs are always 'tabstop' positions
-	'startofline'	  on		goto startofline with some commands
-	'tagrelative'	+ off		tag file names are not relative
-	'textauto'	+ off		no automatic textmode detection
-	'textwidth'	  0		no automatic line wrap
-	'tildeop'	  off		tilde is not an operator
-	'ttimeout'	  off		no terminal timeout
-	'viminfo'       + {unchanged}	no viminfo file	
-	'whichwrap'	+ ""		left-right movements don't wrap
-	'wildchar'	+ CTRL-E	only when the current value is <Tab>
+	'joinspaces'	+ on		insert 2 spaces after period
+	'modeline'	& off		no modelines
+	'more'		& off		no pauses in listings
+	'mzquantum'	- {unchanged}	{set vim default only on resetting 'cp'}
+	'numberwidth'	& 8		min number of columns for line number
+	'preserveindent'+ off		don't preserve current indent structure
+						when changing it
+	'revins'	+ off		no reverse insert
+	'ruler'		+ off		no ruler
+	'scrolljump'	+ 1		no jump scroll
+	'scrolloff'	+ 0		no scroll offset
+	'shelltemp'	- {unchanged}	{set vim default only on resetting 'cp'}
+	'shiftround'	+ off		indent not rounded to shiftwidth
+	'shortmess'	& ""		no shortening of messages
+	'showcmd'	& off		command characters not shown
+	'showmode'	& off		current mode not shown
+	'sidescrolloff'	+ 0		cursor moves to edge of screen in scroll
+	'smartcase'	+ off		no automatic ignore case switch
+	'smartindent'	+ off		no smart indentation
+	'smarttab'	+ off		no smart tab size
+	'softtabstop'	+ 0		tabs are always 'tabstop' positions
+	'startofline'	+ on		goto startofline with some commands
+	'tagcase'	& "followic"	'ignorecase' when searching tags file
+	'tagrelative'	& off		tag file names are not relative
+	'termguicolors'	+ off		don't use highlight-(guifg|guibg)
+	'textauto'	& off		no automatic textmode detection
+	'textwidth'	+ 0		no automatic line wrap
+	'tildeop'	+ off		tilde is not an operator
+	'ttimeout'	+ off		no terminal timeout
+	'undofile'	+ off		don't use an undo file
+	'viminfo'       - {unchanged}	{set vim default only on resetting 'cp'}
+	'virtualedit'	+ ""		cursor can only be placed on characters
+	'whichwrap'	& ""		left-right movements don't wrap
+	'wildchar'	& CTRL-E	only when the current value is <Tab>
 					use CTRL-E for cmdline completion
-	'writebackup'	  on or off	depends on the |+writebackup| feature
+	'writebackup'	+ on or off	depends on the |+writebackup| feature
 
 						*'complete'* *'cpt'* *E535*
 'complete' 'cpt'	string	(default: ".,w,b,u,t,i")
@@ -2883,6 +2916,8 @@
 	done when writing the file.  For reading see below.
 	When 'fileencoding' is empty, the same value as 'encoding' will be
 	used (no conversion when reading or writing a file).
+	No error will be given when the value is set, only when it is used,
+	only when writing a file.
 	Conversion will also be done when 'encoding' and 'fileencoding' are
 	both a Unicode encoding and 'fileencoding' is not utf-8.  That's
 	because internally Unicode is always stored as utf-8.
@@ -7045,7 +7080,7 @@
 			word.  The expression must evaluate to a List of
 			Lists, each with a suggestion and a score.
 			Example:
-				[['the', 33], ['that', 44]]
+				[['the', 33], ['that', 44]] ~
 			Set 'verbose' and use |z=| to see the scores that the
 			internal methods use.  A lower score is better.
 			This may invoke |spellsuggest()| if you temporarily
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 7c834b3..027f47b 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 8.0.  Last change: 2016 Sep 11
+*pattern.txt*   For Vim version 8.0.  Last change: 2017 Mar 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -869,10 +869,13 @@
 \%V	Match inside the Visual area.  When Visual mode has already been
 	stopped match in the area that |gv| would reselect.
 	This is a |/zero-width| match.  To make sure the whole pattern is
-	inside the Visual area put it at the start and end of the pattern,
-	e.g.: >
-		/\%Vfoo.*bar\%V
-<	Only works for the current buffer.
+	inside the Visual area put it at the start and just before the end of
+	the pattern, e.g.: >
+		/\%Vfoo.*ba\%Vr
+<	This works if "foo bar" (or more) was Visually selected. This: >
+		/\%Vfoo.*ba\%Vr
+<	would match "foo bar" if the Visual selection continues after the "r".
+	Only works for the current buffer.
 
 						*/\%#* *cursor-position*
 \%#	Matches with the cursor position.  Only works when matching in a
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 39a0b86..2ad1d2a 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1399,7 +1399,7 @@
    Making all in dir2		  ./dir1/dir2
 
    This can be solved by printing absolute directories in the "enter directory"
-   message or by printing "leave directory" messages..
+   message or by printing "leave directory" messages.
 
 To avoid this problem, ensure to print absolute directory names and "leave
 directory" messages.
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index 943531e..35301f6 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -221,7 +221,7 @@
 However, if a 'scrollbind' window that has a relative offset that is past its
 buffer's limits is given the cursor focus, the other 'scrollbind' windows must
 jump to a location where the current window's relative offset is valid.  This
-behavior can be changed by clearing the 'jump' flag from the 'scrollopt'
+behavior can be changed by clearing the "jump" flag from the 'scrollopt'
 option.
 
 						*syncbind* *:syncbind* *:sync*
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 9ef8d61..4a47c33 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -2646,9 +2646,9 @@
 
 RESTRUCTURED TEXT			*rst.vim* *ft-rst-syntax*
 
-You may set what syntax definitions should be used for code blocks via
+You may set what syntax definitions should be used for code blocks via >
 	let rst_syntax_code_list = ['vim', 'lisp', ...]
-
+<
 
 REXX						*rexx.vim* *ft-rexx-syntax*
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 025b298..5dc3ac6 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -965,6 +965,8 @@
 't_KJ'	term.txt	/*'t_KJ'*
 't_KK'	term.txt	/*'t_KK'*
 't_KL'	term.txt	/*'t_KL'*
+'t_PE'	term.txt	/*'t_PE'*
+'t_PS'	term.txt	/*'t_PS'*
 't_RB'	term.txt	/*'t_RB'*
 't_RI'	term.txt	/*'t_RI'*
 't_RV'	term.txt	/*'t_RV'*
@@ -4500,6 +4502,7 @@
 E938	eval.txt	/*E938*
 E939	change.txt	/*E939*
 E94	windows.txt	/*E94*
+E940	eval.txt	/*E940*
 E95	message.txt	/*E95*
 E96	diff.txt	/*E96*
 E97	diff.txt	/*E97*
@@ -5071,6 +5074,7 @@
 backup-extension	version4.txt	/*backup-extension*
 backup-table	editing.txt	/*backup-table*
 balloon-eval	debugger.txt	/*balloon-eval*
+balloon_show()	eval.txt	/*balloon_show()*
 bar	motion.txt	/*bar*
 bars	help.txt	/*bars*
 base_font_name_list	mbyte.txt	/*base_font_name_list*
@@ -8732,7 +8736,9 @@
 termcap-title	term.txt	/*termcap-title*
 terminal-colors	os_unix.txt	/*terminal-colors*
 terminal-info	term.txt	/*terminal-info*
+terminal-key-codes	term.txt	/*terminal-key-codes*
 terminal-options	term.txt	/*terminal-options*
+terminal-output-codes	term.txt	/*terminal-output-codes*
 terminfo	term.txt	/*terminfo*
 termresponse-variable	eval.txt	/*termresponse-variable*
 test-functions	usr_41.txt	/*test-functions*
@@ -8740,6 +8746,7 @@
 test_autochdir()	eval.txt	/*test_autochdir()*
 test_disable_char_avail()	eval.txt	/*test_disable_char_avail()*
 test_garbagecollect_now()	eval.txt	/*test_garbagecollect_now()*
+test_ignore_error()	eval.txt	/*test_ignore_error()*
 test_null_channel()	eval.txt	/*test_null_channel()*
 test_null_dict()	eval.txt	/*test_null_dict()*
 test_null_job()	eval.txt	/*test_null_job()*
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 0bfe4eb..e01f15f 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -252,7 +252,7 @@
 that the flag is not set.  't_CS' works like this too, but it isn't a termcap
 flag.
 
-OUTPUT CODES
+OUTPUT CODES						*terminal-output-codes*
 	option	meaning	~
 
 	t_AB	set background color (ANSI)			*t_AB* *'t_AB'*
@@ -333,7 +333,7 @@
 	t_BD	disable bracketed paste mode			*t_BD* *'t_BD'*
 		|xterm-bracketed-paste|
 
-KEY CODES
+KEY CODES						*terminal-key-codes*
 Note: Use the <> form if possible
 
 	option	name		meaning	~
@@ -424,8 +424,9 @@
 	t_KK	<k8>		keypad 8		 *<k8>*	*t_KK* *'t_KK'*
 	t_KL	<k9>		keypad 9		 *<k9>*	*t_KL* *'t_KL'*
 		<Mouse>		leader of mouse code		*<Mouse>*
-	t_PS	start of bracketed paste |xterm-bracketed-paste|  *t_PS* 't_PS'
-	t_PE	end of bracketed paste |xterm-bracketed-paste|    *t_PE* 't_PE'
+								*t_PS* *'t_PS'*
+	t_PS	start of bracketed paste |xterm-bracketed-paste|
+	t_PE	end of bracketed paste |xterm-bracketed-paste|  *t_PE* *'t_PE'*
 
 Note about t_so and t_mr: When the termcap entry "so" is not present the
 entry for "mr" is used.  And vice versa.  The same is done for "se" and "me".
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 5d12904..95a5dde 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2017 Feb 17
+*todo.txt*      For Vim version 8.0.  Last change: 2017 Mar 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -35,17 +35,6 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Patch 195 introduced a regression in tag priority. (Charles Campbell, 2017 Feb
-10)
-
-Memory leak in test97?
-
-exists('&t_k1') returns false even when t_k1 was set.
-Use in test_assign.vim to only get value of &t_k1 if it exists. #1459
-
-test_gui fails with Athena:
-   Caught exception in Test_1_set_secure(): Vim(gui):E285: Failed to create input context @ function RunTheTest[21]..Test_1_set_secure, line 2
-
 +channel:
 - Try out background make plugin: 
   https://github.com/AndrewVos/vim-make-background
@@ -116,6 +105,11 @@
 - Difference between two engines: ".*\zs\/\@>\/" on text "///"
   (Chris Paul, 2016 Nov 13)  New engine not greedy enough?
 
+Running test_gui and test_gui_init with Motif sometimes kills the window
+manager.  Problem with Motif?
+
+Memory leak in test97?  The string is actually freed.  Weird.
+
 Add a toolbar in the terminal.  Can be global, above all windows, or specific
 for one window.
 Use tb_set(winid, [{'text': 'stop', 'cb': callback, 'hi': 'Green'}])
@@ -127,64 +121,31 @@
 
 Json string with trailing \u should be an error. (Lcd)
 
-Patch for double free setting 'ttytype' (Dominique, 2017 Feb 10, #1461)
-
-Patch for using uninitialized memory (Dominique, 2017 Feb 11, #1464)
-
-Patch for crash setting 'guicursor'. (Dominique, 2017 Feb 11, #1465)
-
 Multi-byte bug: dv} splits char. (Urtica Dioica, 2017 Jan 9)
 
-Patch to add test for 'number' and 'relativenumber'. (Ozaki Kiichi, #1447)
-Now merged in test89 (Feb 12)
-
-Patch to fix tabline redraw. (Christian Brabandt, 2017 Feb 10)
-Better way to fix this?
-
 When session file has name in argument list but the buffer was deleted, the
 buffer is not deleted when using the session file. (#1393)
 Should add the buffer in hidden state.
 
-Patch to change VimL to "Vim script". (Hirohito Higashi, 2017 Feb 14)
-
-Invalid memory access with :normal command. (Dominique Pelle, 2017 Feb 14)
-
 When "gf" excludes following ":99", jump to line 99.
 Also when editing a file foo.txt:99 ?
 
 When an item in the quickfix list has a file name that does not exist, behave
 like the item was not a match for :cnext.
 
-Patch for warning about integer overflow in undo.c (King, 2017 Feb 12)
-And another similar one.
-
-Patch for null pointer use in undo.c (King, 2017 Feb 12)
-
-Patch to avoid using CTRL-O when do_cmdline_cmd is called. (James McCoy, 2017
-Feb 7, #1453)
-
-Patch for multi-byte line wrap. (Ozaki Kiichi, 2017 Feb 7, #1456)
-
-Patch to show balloon with a function. (Jusufadis Bakamovic, #1449)
-
 Wrong diff highlighting with three files. (2016 Oct 20, #1186)
 Also get E749 on exit.
 Another example in #1309
 
+Patch to change all use of &sw to shiftwidth(). (Tyru, 2017 Feb 19)
+Wait until maintainers integrate it.
+
 Completion for user-defined commands does not work if a few characters were
 already typed. (Dominique, 2017 Jan 26)
 
-Patch for nsis script to add a dll file. (Christian Brabandt, 2017 Feb 10)
-Also include the .dll file?
-
-Patch for capitalizations in menus. (Zhen-Huan Hu, 2017 Feb 9)
-
 When deleting a mark or register, leave a tombstone, so that it's also deleted
 when writing viminfo (and the delete was the most recent action). #1339
 
-Patch for better explanation of 'compatible' side effects.
-https://github.com/vim/vim/pull/1161/files
-
 Patch to add 'makeencoding', useful when the system encoding differs from
 Vim's 'encoding' setting. (Ken Takata, 2017 Jan 31)
 
@@ -200,6 +161,12 @@
 
 Completion for :!cmd shows each match twice. #1435
 
+GTK: When adding a timer from 'balloonexpr' it won't fire, because
+g_main_context_iteration() doesn't return.  Need to trigger an event when the
+timer expires.
+
+Screen update bug related to matchparen.  (Chris Heath, 2017 Mar 4, #1532)
+
 Rule to use "^" for statusline does not work if a space is defined with
 highlighting for both stl and stlnc.  Patch by Ken Hamada (itchyny, 2016 Dec 11)
 
@@ -255,9 +222,15 @@
 2017 Feb 9)  Can we expand wildcards first and send the path literally to the
 receiving Vim?  Or make an exception for #, it's not useful remotely.
 
+":sbr" docs state it respect 'switchbuf', but "vsplit" does not cause a
+vertical split. (Haldean Brown, 2017 Mar 1)
+
 Use ADDR_OTHER instead of ADDR_LINES for many more commands.
 Add tests for using number larger than number of lines in buffer.
 
+Might be useful to have isreadonly(), like we have islocked().
+Avoids exceptions, e.g. when using the b: namespace as a dict.
+
 Patch to make v:shell_error writable. (Christian Brabandt, 2016 Sep 27)
 Useful to restore it.  Is there another solution?
 
@@ -273,6 +246,9 @@
 
 Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
 
+Window resizing with 'winfixheight': With a vertical split the height changes
+anyway. (Tommy allen, 2017 Feb 21, #1502)
+
 When adding an item to a new quickfix list make ":cnext" jump to that item.
 Make a difference being at the first item and not having used :cnext at all.
 (Afanasiy Fet, 2017 Jan 3)
@@ -461,6 +437,9 @@
 https://github.com/jedisct1/libsodium/
 Possibly include the needed code so that it can be build everywhere.
 
+Add a way to restart a timer.  It's similar to timer_stop() and timer_start(),
+but the reference remains valid.
+
 Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
 Kiichi, 2016 Feb 28)
 Update Mar 8: https://gist.github.com/mattn/23c1f50999084992ca98
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index 3c68943..566a197 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -663,7 +663,7 @@
 22) Autocommand events can be found by their name: >
      	:help BufWinLeave
 <    To see all possible events: >
-	:help autocommands-events
+	:help autocommand-events
 
 23) Command-line switches always start with "-".  So for the help of the -f
     command switch of Vim use: >
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index d45ab13..32a8f6d 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.0.  Last change: 2016 Nov 29
+*usr_41.txt*	For Vim version 8.0.  Last change: 2017 Mar 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -95,7 +95,7 @@
 to the same variable.
 
 The example was given to explain the commands, but would you really want to
-make such a loop it can be written much more compact: >
+make such a loop, it can be written much more compact: >
 
 	:for i in range(1, 4)
 	:  echo "count is" i
@@ -693,6 +693,7 @@
 Variables:						*var-functions*
 	type()			type of a variable
 	islocked()		check if a variable is locked
+	funcref()		get a Funcref for a function reference
 	function()		get a Funcref for a function name
 	getbufvar()		get a variable value from a specific buffer
 	setbufvar()		set a variable in a specific buffer
@@ -884,6 +885,7 @@
 	getfontname()		get name of current font being used
 	getwinposx()		X position of the GUI Vim window
 	getwinposy()		Y position of the GUI Vim window
+	balloon_show()		set the balloon content
 
 Vim server:					*server-functions*
 	serverlist()		return the list of server names
@@ -922,12 +924,14 @@
 	test_autochdir()	enable 'autochdir' during startup
 	test_disable_char_avail()	test without typeahead
 	test_garbagecollect_now()	free memory right now
+	test_ignore_error()	ignore a specific error message
 	test_null_channel()	return a null Channel
 	test_null_dict()	return a null Dict
 	test_null_job()		return a null Job
 	test_null_list()	return a null List
 	test_null_partial()	return a null Partial function
 	test_null_string()	return a null String
+	test_settime()		set the time Vim uses internally
 
 Inter-process communication:		    *channel-functions*
 	ch_canread()		check if there is something to read
@@ -1588,7 +1592,7 @@
 Blank lines are allowed and ignored.
 
 Leading whitespace characters (blanks and TABs) are always ignored.  The
-whitespaces between parameters (e.g. between the 'set' and the 'cpoptions' in
+whitespaces between parameters (e.g. between the "set" and the "cpoptions" in
 the example below) are reduced to one blank character and plays the role of a
 separator, the whitespaces after the last (visible) character may or may not
 be ignored depending on the situation, see below.
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 2bcb1ca..b3aa4b5 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.0.  Last change: 2016 Sep 06
+*various.txt*   For Vim version 8.0.  Last change: 2017 Feb 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -527,12 +527,14 @@
 :redi[r] END		End redirecting messages.  {not in Vi}
 
 							*:filt* *:filter*
-:filt[er] {pat} {command}
-:filt[er] /{pat}/ {command}
-			Restrict the output of {command} to matches with {pat}.
-			For example, to list only xml files: >
+:filt[er][!] {pat} {command}
+:filt[er][!] /{pat}/ {command}
+			Restrict the output of {command} to lines matching
+			with {pat}.  For example, to list only xml files: >
 				:filter /\.xml$/ oldfiles
-<
+<			If the [!] is given, restrict the output of {command}
+			to lines that do NOT match {pat}.
+
 			{pat} is a Vim search pattern.  Instead of enclosing
 			it in / any non-ID character (see |'isident'|) can be
 			used, so long as it does not appear in {pat}.  Without
@@ -634,7 +636,7 @@
 			with the command >
 				:!{program} {keyword}
 <			There is an example of a program to use in the tools
-			directory of Vim.  It is called 'ref' and does a
+			directory of Vim.  It is called "ref" and does a
 			simple spelling check.
 			Special cases:
 			- If 'keywordprg' begins with ":" it is invoked as
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index 4b02755..5afe385 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -1,4 +1,4 @@
-*version8.txt*  For Vim version 8.0.  Last change: 2017 Jan 15
+*version8.txt*  For Vim version 8.0.  Last change: 2017 Feb 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -200,9 +200,9 @@
 'perldll'		name of the Perl dynamic library
 'pythondll'		name of the Python 2 dynamic library
 'pythonthreedll'	name of the Python 3 dynamic library
-'signcolumn'		when to display the sign column
 'renderoptions'		options for text rendering on Windows
 'rubydll'		name of the Ruby dynamic library
+'signcolumn'		when to display the sign column
 'tagcase'		how to handle case when searching in tags files
 'tcldll'		name of the Tcl dynamic library
 'termguicolors'		use GUI colors for the terminal
@@ -3436,7 +3436,7 @@
 Patch 7.4.498 (after 7.4.497)
 Problem:    Typo in DOS makefile.
 Solution:   Change exists to exist. (Ken Takata)
-Files:	    src/testdirMake_dos.mak
+Files:	    src/testdir/Make_dos.mak
 
 Patch 7.4.499
 Problem:    substitute() can be slow with long strings.