diff --git a/runtime/defaults.vim b/runtime/defaults.vim
index e8a0ff4..255b67b 100644
--- a/runtime/defaults.vim
+++ b/runtime/defaults.vim
@@ -1,7 +1,7 @@
 " The default vimrc file.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2019 Feb 18
+" Last change:	2019 Sep 28
 "
 " This is loaded if no vimrc file was found.
 " Except when Vim is run with "-u NONE" or "-C".
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 542d972..9b8155c 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.1.  Last change: 2019 Sep 27
+*change.txt*    For Vim version 8.1.  Last change: 2019 Sep 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 927651c..09310e6 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.1.  Last change: 2019 Sep 27
+*eval.txt*	For Vim version 8.1.  Last change: 2019 Oct 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2880,7 +2880,7 @@
 win_id2win({expr})		Number	get window nr from window ID
 win_screenpos({nr})		List	get screen position of window {nr}
 win_splitmove({nr}, {target} [, {options}])
-				none	move window {nr} to split of {target}
+				Number	move window {nr} to split of {target}
 winbufnr({nr})			Number	buffer number of window {nr}
 wincol()			Number	window column of the cursor
 winheight({nr})			Number	height of window {nr}
@@ -2974,6 +2974,9 @@
 appendbufline({expr}, {lnum}, {text})			*appendbufline()*
 		Like |append()| but append the text in buffer {expr}.
 
+		This function works only for loaded buffers. First call
+		|bufload()| if needed.
+
 		For the use of {expr}, see |bufname()|.
 
 		{lnum} is used like with |append()|.  Note that using |line()|
@@ -3540,8 +3543,8 @@
 <		This isn't very useful, but it shows how it works.  Note that
 		an empty string is returned to avoid a zero being inserted.
 
-		Can also be used as a |method|, the second argument is passed
-		in: >
+		Can also be used as a |method|, the base is passed as the
+		second argument: >
 			GetMatches()->complete(col('.'))
 
 complete_add({expr})				*complete_add()*
@@ -3676,7 +3679,7 @@
 
 		Can also be used as a |method|in: >
 			BuildMessage()->confirm("&Yes\n&No")
-
+<
 							*copy()*
 copy({expr})	Make a copy of {expr}.  For Numbers and Strings this isn't
 		different from using {expr} directly.
@@ -3871,6 +3874,9 @@
 		If {last} is omitted then delete line {first} only.
 		On success 0 is returned, on failure 1 is returned.
 
+		This function works only for loaded buffers. First call
+		|bufload()| if needed.
+
 		For the use of {expr}, see |bufname()| above.
 
 		{first} and {last} are used like with |getline()|. Note that
@@ -3879,7 +3885,7 @@
 
 		Can also be used as a |method|: >
 			GetBuffer()->deletebufline(1)
-
+<
 							*did_filetype()*
 did_filetype()	Returns |TRUE| when autocommands are being executed and the
 		FileType event has been triggered at least once.  Can be used
@@ -4040,7 +4046,7 @@
 
 		Can also be used as a |method|: >
 			GetCommand()->exepath()
-
+<
 							*exists()*
 exists({expr})	The result is a Number, which is |TRUE| if {expr} is defined,
 		zero otherwise.
@@ -4566,7 +4572,7 @@
 
 		Can also be used as a |method|: >
 			GetLnum()->foldlevel()
-
+<
 							*foldtext()*
 foldtext()	Returns a String, to be displayed for a closed fold.  This is
 		the default function used for the 'foldtext' option and should
@@ -5848,7 +5854,7 @@
 			:let date=input("Enter date: ")
 <		This function is not available in the |sandbox|.
 
-		Can also be used as a |method|, the base is used for the
+		Can also be used as a |method|, the base is passed as the
 		second argument: >
 			GetHistory()->histadd('search')
 
@@ -6376,8 +6382,8 @@
 		Examples: >
 			:echo libcall("libc.so", "getenv", "HOME")
 
-<		Can also be used as a |method|, where the base is passed as
-		the argument to the called function: >
+<		Can also be used as a |method|, the base is passed as the
+		third argument: >
 			GetValue()->libcall("libc.so", "getenv")
 <
 							*libcallnr()*
@@ -6391,8 +6397,8 @@
 			:call libcallnr("libc.so", "printf", "Hello World!\n")
 			:call libcallnr("libc.so", "sleep", 10)
 <
-		Can also be used as a |method|, where the base is passed as
-		the argument to the called function: >
+		Can also be used as a |method|, the base is passed as the
+		third argument: >
 			GetValue()->libcallnr("libc.so", "printf")
 <
 
@@ -6543,8 +6549,8 @@
 		The {callback} is also not invoked when the buffer is
 		unloaded, use the |BufUnload| autocmd event for that.
 
-		Can also be used as a |method|, where the base is passed as
-		the second argument, the buffer: >
+		Can also be used as a |method|, the base is passed as the
+		second argument: >
 			GetBuffer()->listener_add(callback)
 
 listener_flush([{buf}])					*listener_flush()*
@@ -7014,6 +7020,7 @@
 
 		Can also be used as a |method|: >
 			GetText()->matchstrpos('word')
+<
 							*max()*
 max({expr})	Return the maximum value of all items in {expr}.
 		{expr} can be a list or a dictionary.  For a dictionary,
@@ -8270,20 +8277,31 @@
 			:echo serverlist()
 <
 setbufline({expr}, {lnum}, {text})			*setbufline()*
-		Set line {lnum} to {text} in buffer {expr}.  To insert
-		lines use |append()|.  Any text properties in {lnum} are
-		cleared.
+		Set line {lnum} to {text} in buffer {expr}.  This works like
+		|setline()| for the specified buffer.
+
+		This function works only for loaded buffers. First call
+		|bufload()| if needed.
+
+		To insert lines use |appendbufline()|.
+		Any text properties in {lnum} are cleared.
+
+		{text} can be a string to set one line, or a list of strings
+		to set multiple lines.  If the list extends below the last
+		line then those lines are added.
 
 		For the use of {expr}, see |bufname()| above.
 
 		{lnum} is used like with |setline()|.
-		This works like |setline()| for the specified buffer.
+		When {lnum} is just below the last line the {text} will be
+		added below the last line.
 
 		When {expr} is not a valid buffer, the buffer is not loaded or
 		{lnum} is not valid then 1 is returned.  On success 0 is
 		returned.
 
-		Can also be used as a |method|: >
+		Can also be used as a |method|, the base is passed as the
+		third argument: >
 			GetText()->setbufline(buf, lnum)
 
 setbufvar({expr}, {varname}, {val})			*setbufvar()*
@@ -8299,7 +8317,8 @@
 			:call setbufvar("todo", "myvar", "foobar")
 <		This function is not available in the |sandbox|.
 
-		Can also be used as a |method|: >
+		Can also be used as a |method|, the base is passed as the
+		third argument: >
 			GetValue()->setbufvar(buf, varname)
 
 setcharsearch({dict})					*setcharsearch()*
@@ -8348,7 +8367,8 @@
 		When {val} is |v:null| the environment variable is deleted.
 		See also |expr-env|.
 
-		Can also be used as a |method|, passing the value as the base: >
+		Can also be used as a |method|, the base is passed as the
+		second argument: >
 			GetPath()->setenv('PATH')
 
 setfperm({fname}, {mode})				*setfperm()* *chmod*
@@ -8379,7 +8399,7 @@
 
 		{lnum} is used like with |getline()|.
 		When {lnum} is just below the last line the {text} will be
-		added as a new line.
+		added below the last line.
 
 		If this succeeds, 0 is returned.  If this fails (most likely
 		because {lnum} is invalid) 1 is returned.
@@ -8397,7 +8417,8 @@
 
 <		Note: The '[ and '] marks are not set.
 
-		Can also be used as a |method|, passing the text as the base: >
+		Can also be used as a |method|, the base is passed as the
+		second argument: >
 			GetText()->setline(lnum)
 
 setloclist({nr}, {list} [, {action} [, {what}]])		*setloclist()*
@@ -8646,7 +8667,8 @@
 		Tabs are numbered starting with one.
 		This function is not available in the |sandbox|.
 
-		Can also be used as a |method|, the base is used as the value: >
+		Can also be used as a |method|, the base is passed as the
+		third argument: >
 			GetValue()->settabvar(tab, name)
 
 settabwinvar({tabnr}, {winnr}, {varname}, {val})	*settabwinvar()*
@@ -8667,7 +8689,8 @@
 			:call settabwinvar(3, 2, "myvar", "foobar")
 <		This function is not available in the |sandbox|.
 
-		Can also be used as a |method|, the base is used as the value: >
+		Can also be used as a |method|, the base is passed as the
+		fourth argument: >
 			GetValue()->settabvar(tab, winnr, name)
 
 settagstack({nr}, {dict} [, {action}])			*settagstack()*
@@ -8701,7 +8724,8 @@
 			call settagstack(1003, stack)
 			unlet stack
 <
-		Can also be used as a |method|, the base is used as the Dict: >
+		Can also be used as a |method|, the base is passed as the
+		second argument: >
 			GetStack()->settagstack(winnr)
 
 setwinvar({winnr}, {varname}, {val})			*setwinvar()*
@@ -8710,7 +8734,8 @@
 			:call setwinvar(1, "&list", 0)
 			:call setwinvar(2, "myvar", "foobar")
 
-<		Can also be used as a |method|, the base is used as the value: >
+<		Can also be used as a |method|, the base is passed as the
+		third argument: >
 			GetValue()->setwinvar(winnr, name)
 
 sha256({string})						*sha256()*
@@ -9078,8 +9103,8 @@
 		        e.g. after |f|
 		    a	Insert mode autocomplete active
 		    x	executing an autocommand
-		    w	blocked on waiting, e.g. ch_evalexpr() and
-			ch_read(), ch_readraw() when reading json.
+		    w	blocked on waiting, e.g. ch_evalexpr(), ch_read() and
+			ch_readraw() when reading json.
 		    S	not triggering SafeState or SafeStateAgain
 		    c	callback invoked, including timer (repeats for
 			recursiveness up to "ccc")
@@ -9130,7 +9155,7 @@
 		When {base} is omitted base 10 is used.  This also means that
 		a leading zero doesn't cause octal conversion to be used, as
 		with the default String to Number conversion.  Example: >
-			let nr = str2nr('123')
+			let nr = str2nr('0123')
 <
 		When {base} is 16 a leading "0x" or "0X" is ignored.  With a
 		different base the result will be zero.  Similarly, when
@@ -9247,6 +9272,7 @@
 
 		Can also be used as a |method|: >
 			GetHaystack()->stridx(needle)
+<
 							*string()*
 string({expr})	Return {expr} converted to a String.  If {expr} is a Number,
 		Float, String, Blob or a composition of them, then the result
@@ -10142,8 +10168,8 @@
 		Not all commands are allowed in popup windows.
 		When window {id} does not exist then no error is given.
 
-		Can also be used as a |method|, the base is used for the
-		command: >
+		Can also be used as a |method|, the base is passed as the
+		second argument: >
 			GetCommand()->win_execute(winid)
 
 win_findbuf({bufnr})					*win_findbuf()*
@@ -10461,11 +10487,11 @@
 		to a number.  A List, Dict or Float argument causes an error.
 		Example: >
 			:let bits = xor(bits, 0x80)
-<		Can also be used as a |method|: >
+<
+		Can also be used as a |method|: >
 			:let bits = bits->xor(0x80)
 <
 
-
 							*feature-list*
 There are four types of features:
 1.  Features that are only supported when they have been enabled when Vim
@@ -11338,21 +11364,22 @@
 
 						*:let=<<* *:let-heredoc*
 						*E990* *E991* *E172* *E221*
-:let {var-name} =<< [trim] {marker}
+:let {var-name} =<< [trim] {endmarker}
 text...
 text...
-{marker}
+{endmarker}
 			Set internal variable {var-name} to a List containing
-			the lines of text bounded by the string {marker}.
-			{marker} must not contain white space.
-			{marker} cannot start with a lower case character.
-			The last line should end only with the {marker} string
-			without any other character.  Watch out for white
-			space after {marker}!
+			the lines of text bounded by the string {endmarker}.
+			{endmarker} must not contain white space.
+			{endmarker} cannot start with a lower case character.
+			The last line should end only with the {endmarker}
+			string without any other character.  Watch out for
+			white space after {endmarker}!
 
 			Without "trim" any white space characters in the lines
 			of text are preserved.  If "trim" is specified before
-			{marker}, then indentation is stripped so you can do: >
+			{endmarker}, then indentation is stripped so you can
+			do: >
 				let text =<< trim END
 				   if ok
 				     echo 'done'
@@ -11366,23 +11393,31 @@
 			non-empty text line is stripped from the input lines.
 			All leading indentation exactly matching the leading
 			indentation before `let` is stripped from the line
-			containing {marker}.  Note that the difference between
-			space and tab matters here.
+			containing {endmarker}.  Note that the difference
+			between space and tab matters here.
 
 			If {var-name} didn't exist yet, it is created.
 			Cannot be followed by another command, but can be
 			followed by a comment.
 
+			To avoid line continuation to be applied, consider
+			adding 'C' to 'cpoptions': >
+				set cpo+=C
+				let var =<< END
+				   \ leading backslash
+				END
+				set cpo-=C
+<
 			Examples: >
 				let var1 =<< END
-			Sample text 1
-			    Sample text 2
-			Sample text 3
-			END
+				Sample text 1
+				    Sample text 2
+				Sample text 3
+				END
 
 				let data =<< trim DATA
-				1 2 3 4
-				5 6 7 8
+					1 2 3 4
+					5 6 7 8
 				DATA
 <
 								*E121*
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index bee9b88..a34e7c9 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -55,14 +55,14 @@
 			working: >
 				:perl VIM::Msg("Hello")
 
-:pe[rl] << [endpattern]
+:pe[rl] << [endmarker]
 {script}
-{endpattern}
+{endmarker}
 			Execute Perl script {script}.
-			The {endpattern} after {script} must NOT be preceded
-			by any white space.
+			The {endmarker} after {script} must NOT be preceded by
+			any white space.
 
-			If [endpattern] is omitted, it defaults to a dot '.'
+			If [endmarker] is omitted, it defaults to a dot '.'
 			like for the |:append| and |:insert| commands.  Using
 			'.' helps when inside a function, because "$i;" looks
 			like the start of an |:insert| command to Vim.
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index 0eca0b6..0950e02 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -28,14 +28,14 @@
 :rub[y] {cmd}		Execute Ruby command {cmd}.  A command to try it out: >
 				:ruby print "Hello"
 
-:rub[y] << [endpattern]
+:rub[y] << [endmarker]
 {script}
-{endpattern}
+{endmarker}
 			Execute Ruby script {script}.
-			The {endpattern} after {script} must NOT be preceded
-			by any white space.
+			The {endmarker} after {script} must NOT be preceded by
+			any white space.
 
-			If [endpattern] is omitted, it defaults to a dot '.'
+			If [endmarker] is omitted, it defaults to a dot '.'
 			like for the |:append| and |:insert| commands.
 
 			This form of the |:ruby| command is mainly useful for
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 36c49b8..e7f9af9 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -949,10 +949,12 @@
 -------------
 
 				*PHP_IndentFunctionDeclarationParameters*
-Extra indentation levels to add to arguments in multi-line function definitions. >
+Extra indentation levels to add to arguments in multi-line function
+definitions. >
     let g:PHP_IndentFunctionDeclarationParameters = 1
 
-Function arguments in declarations will indent 1 extra level. For two-space indentation: >
+Function arguments in declarations will indent 1 extra level. For two-space
+indentation: >
 
     function call_the_thing(
         $with_this,
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 4a7edca..c4e08f2 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -480,7 +480,7 @@
 start again.
 
 If this happens while Vim is still initializing, editing files is very
-unlikely to work, therefore Vim will exit with value 123. 
+unlikely to work, therefore Vim will exit with value 123.
 
 Buffers are only partly kept in memory, thus editing a very large file is
 unlikely to cause an out-of-memory situation.  Undo information is completely
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index cb65535..34fb484 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.1.  Last change: 2019 Sep 26
+*options.txt*	For Vim version 8.1.  Last change: 2019 Sep 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -856,7 +856,7 @@
 		:set background&
 <	Vim will guess the value.  In the GUI this should work correctly,
 	in other cases Vim might not be able to guess the right value.
-	If the GUI supports a dark them, you can use the "d" flag in
+	If the GUI supports a dark theme, you can use the "d" flag in
 	'guioptions', see 'go-d'.
 
 	When the |t_RB| option is set, Vim will use it to request the background
@@ -1877,7 +1877,7 @@
 						*'completeslash'* *'csl'*
 'completeslash' 'csl'	string	(default: "")
 			local to buffer
-			{not in Vi}  {only for MS-Windows}
+			{only for MS-Windows}
 	When this option is set it overrules 'shellslash' for completion:
 	- When this option is set to "slash", a forward slash is used for path
 	  completion in insert mode. This is useful when editing HTML tag, or
@@ -1917,7 +1917,7 @@
 		    completion in a popup window.  Only works in combination
 		    with "menu" or "menuone".  Overrides "preview".
 		    See |'completepopup'| for specifying properties.
-		    {only works when compiled with the +textprop feature}
+		    {only works when compiled with the |+textprop| feature}
 
 	   noinsert Do not insert any text for a match until the user selects
 		    a match from the menu. Only works in combination with
@@ -2470,7 +2470,6 @@
 						*'cursorlineopt'* *'culopt'*
 'cursorlineopt' 'culopt' string (default: "number,line")
 			local to window
-			{not in Vi}
 			{not available when compiled without the |+syntax|
 			feature}
 	Comma separated list of settings for how 'cursorline' is displayed.
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 9a75a95..9c8db6b 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 8.1.  Last change: 2019 Jul 17
+*pi_netrw.txt*  For Vim version 8.1.  Last change: 2019 Oct 10
 
 	    ------------------------------------------------
 	    NETRW REFERENCE MANUAL    by Charles E. Campbell
@@ -3512,7 +3512,7 @@
 			- Click "Add..."
 			- Set External Editor (adjust path as needed, include
 			  the quotes and !.! at the end):
-			    "c:\Program Files\Vim\vim70\gvim.exe" !.!
+			    "c:\Program Files\Vim\vim81\gvim.exe" !.!
 			- Check that the filetype in the box below is
 			  {asterisk}.{asterisk} (all files), or whatever types
 			  you want (cec: change {asterisk} to * ; I had to
@@ -3762,8 +3762,8 @@
 
 The <netrw.vim> script is typically installed on systems as something like:
 >
-	/usr/local/share/vim/vim7x/plugin/netrwPlugin.vim
-	/usr/local/share/vim/vim7x/autoload/netrw.vim
+	/usr/local/share/vim/vim8x/plugin/netrwPlugin.vim
+	/usr/local/share/vim/vim8x/autoload/netrw.vim
 		(see output of :echo &rtp)
 <
 which is loaded automatically at startup (assuming :set nocp).  If you
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index 04fa0a6..a438ce6 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -361,7 +361,7 @@
 		    core_width	width of the text box in screen cells
 		    core_height	height of the text box in screen cells
 		    firstline	line of the buffer at top (1 unless scrolled)
-		    		(not the value of the "firstline" property)
+				(not the value of the "firstline" property)
 		    scrollbar	non-zero if a scrollbar is displayed
 		    visible	one if the popup is displayed, zero if hidden
 		Note that these are the actual screen positions.  They differ
@@ -744,22 +744,22 @@
 These steps are needed to make this work:
 
 - Define a text property type, it defines the name. >
-  	call prop_type_add('popupMarker', {})
+	call prop_type_add('popupMarker', {})
 
 - Place a text property at the desired text: >
 	let lnum = {line of the text}
 	let col = {start column of the text}
 	let len = {length of the text}
 	let propId = {arbitrary but unique number}
-  	call prop_add(lnum, col, #{
+	call prop_add(lnum, col, #{
 		\ length: len,
 		\ type: 'popupMarker',
 		\ id: propId,
 		\ })
 
 - Create a popup: >
-  	let winid = popup_create('the text', #{
-		\ pos: 'botleft', 
+	let winid = popup_create('the text', #{
+		\ pos: 'botleft',
 		\ textprop: 'popupMarker',
 		\ textpropid: propId,
 		\ border: [],
@@ -799,7 +799,7 @@
   a click, as in the example above, helps for that.
 - If the text property is removed the popup is closed.  Use something like
   this: >
-  	call prop_remove(#{type: 'popupMarker', id: propId})
+	call prop_remove(#{type: 'popupMarker', id: propId})
 
 
 POPUP FILTER						*popup-filter*
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 6365e36..08a532c 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.1.  Last change: 2019 Sep 19
+*syntax.txt*	For Vim version 8.1.  Last change: 2019 Oct 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -60,8 +60,8 @@
 the path in another way (see |$VIMRUNTIME|).  Usually this works just
 fine.  If it doesn't, try setting the VIM environment variable to the
 directory where the Vim stuff is located.  For example, if your syntax files
-are in the "/usr/vim/vim50/syntax" directory, set $VIMRUNTIME to
-"/usr/vim/vim50".  You must do this in the shell, before starting Vim.
+are in the "/usr/vim/vim81/syntax" directory, set $VIMRUNTIME to
+"/usr/vim/vim81".  You must do this in the shell, before starting Vim.
 This command also sources the |menu.vim| script when the GUI is running or
 will start soon.  See |'go-M'| about avoiding that.
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 091c968..1e8b1cb 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1016,6 +1016,8 @@
 't_Sb'	term.txt	/*'t_Sb'*
 't_Sf'	term.txt	/*'t_Sf'*
 't_Si'	term.txt	/*'t_Si'*
+'t_TE'	term.txt	/*'t_TE'*
+'t_TI'	term.txt	/*'t_TI'*
 't_Te'	term.txt	/*'t_Te'*
 't_Ts'	term.txt	/*'t_Ts'*
 't_VS'	term.txt	/*'t_VS'*
@@ -8087,7 +8089,6 @@
 new-virtedit	version6.txt	/*new-virtedit*
 news	intro.txt	/*news*
 nextnonblank()	eval.txt	/*nextnonblank()*
-nice	todo.txt	/*nice*
 no-eval-feature	eval.txt	/*no-eval-feature*
 no-type-checking	eval.txt	/*no-type-checking*
 no_buffers_menu	gui.txt	/*no_buffers_menu*
@@ -9104,6 +9105,8 @@
 t_Sb	term.txt	/*t_Sb*
 t_Sf	term.txt	/*t_Sf*
 t_Si	term.txt	/*t_Si*
+t_TE	term.txt	/*t_TE*
+t_TI	term.txt	/*t_TI*
 t_Te	term.txt	/*t_Te*
 t_Ts	term.txt	/*t_Ts*
 t_VS	term.txt	/*t_VS*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index ab26631..fc5031d 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -496,7 +496,7 @@
 		For {options} see |term_dumpdiff()|.
 
 		Can also be used as a |method|: >
-			GetFilename()-> term_dumpload()
+			GetFilename()->term_dumpload()
 <
 							*term_dumpwrite()*
 term_dumpwrite({buf}, {filename} [, {options}])
@@ -514,7 +514,7 @@
 
 		Can also be used as a |method|, the base is used for the file
 		name: >
-			GetFilename()-> term_dumpwrite(bufnr)
+			GetFilename()->term_dumpwrite(bufnr)
 
 term_getaltscreen({buf})				*term_getaltscreen()*
 		Returns 1 if the terminal of {buf} is using the alternate
@@ -863,8 +863,6 @@
 		Can also be used as a |method|: >
 			GetCommand()->term_start()
 
-<		{only available when compiled with the |+terminal| feature}
-
 
 term_wait({buf} [, {time}])					*term_wait()*
 		Wait for pending updates of {buf} to be handled.
@@ -1243,7 +1241,7 @@
 
  *:Break*	set a breakpoint at the cursor position
  :Break {position}
- 		set a breakpoint at the specified position
+		set a breakpoint at the specified position
  *:Clear*	delete the breakpoint at the cursor position
 
  *:Step*	execute the gdb "step" command
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 59a2f9d..47d59e9 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.1.  Last change: 2019 Sep 27
+*todo.txt*      For Vim version 8.1.  Last change: 2019 Oct 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -47,7 +47,10 @@
 - Use popup (or popup menu) for command line completion
 - Implement flip option
 - Why does 'nrformats' leak from the popup window buffer???
-  Happens in Test_simple_popup() at the second screendump.
+  Happens in Test_simple_popup() at:
+      call VerifyScreenDump(buf, 'Test_popupwin_04a', {})
+  Only when this line is in defaults.vim:
+    set nrformats-=octal
 - For the "moved" property also include mouse movement?
 - Make redrawing more efficient and avoid flicker:
     - put popup menu also in popup_mask?
@@ -76,7 +79,7 @@
   Then :%s?foo should take the first match above the cursor line.
 
 Prompt buffer:
-- Add a command line history.
+- Add a command line history, using up/down keys.  #5010
 - delay next prompt until plugin gives OK?
 - add prompt_addtext({buf}, {expr})	none	add text to a prompt buffer
 
@@ -134,6 +137,21 @@
 E453, E454, E460, E489, E491, E565, E578, E610, E611, E653,
 E654, E856, E857, E860, E861, E863, E889, E900
 
+Try out enabling modifyOtherKeys in xterm:
+     CSI > 4 ; 2 m
+Need to disable when going to cooked mode:
+    CSI > 4 ; m
+Known problems:
+-  CTRL-V key inserts Esc sequence
+
+Patch to skip tests that don't work when run as root. (James McCoy, #5020)
+Or just bail out completely?
+
+Patch to test right click. (Dominique Pelle, #5018)
+
+Python output doesn't stop when got_int is set. #5053
+Check got_int in write_output() in if_py_both.h?
+
 Running test_gui and test_gui_init with Motif sometimes kills the window
 manager.  Problem with Motif? Now test_gui crashes in submenu_change().
 Athena is OK.
@@ -141,8 +159,13 @@
 
 Improve running tests on MS-Windows: #4922
 
-Patch to properly break CJK lines: #3875
-Ready to include now?
+In a function these two lines are different:
+    let [a, b, c] =<< trim END      fails
+    let [a,b,c] =<< trim END        works
+issue #5051
+
+Patch to properly break CJK lines: Anton Kochkov, #3875
+Should be ready to include now.
 
 Remove check for cmd_silent when calling search_stat()? (Gary Johnson)
 
@@ -159,10 +182,13 @@
 Patch to highlight the line number differently below the cursor line. (Shaun
 Brady, #624)
 
+Patch to add more tests for cmd.exe: #4928
+
 Patch to fix session file when using multiple tabs. (Jason Franklin, 2019 May
 20)
 Also put :argadd commands at the start for all buffers, so that their order
 remains equal?  Then %argdel to clean it up.  Do try this with 'hidden' set.
+Also #4994: window-local options not always restored, related to using :badd.
 
 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
@@ -176,12 +202,17 @@
 Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
 (#4087)
 
+":helptags ALL" should skip directories where "tags" cannot be written.
+(Matěj Cepl, #5026)
+
 ":bnext" in a help buffer is supposed to go to the next help buffer, but it
 goes to any buffer, and then :bnext skips help buffers, since they are
 unlisted. (#4478)
 
 Patch to fix using zero sc_sid. (#4877)
 
+Enable 'termbidi' if $VTE_VERSION >= 5703 ?
+
 Universal solution to detect if t_RS is working, using cursor position.
 Koichi Iwamoto, #2126
 
@@ -212,8 +243,6 @@
 
 Patch from Namsh to allow building with both XIM and hangulin. (2019 Aug 29)
 
-Patch to fix redirect of shell on MS-Windows. (Yasuhiro Matsumoto, #2054)
-
 When using :packadd files under "later" are not used, which is inconsistent
 with packages under "start". (xtal8, #1994)
 
@@ -243,6 +272,14 @@
 
 Patch to add MODIFIED_BY to MSVC build file. (Chen Lei, 2016 Nov 24, #1275)
 
+xterm should be able to pass focus changes to Vim, so that Vim can check for
+buffers that changed.  Perhaps in misc.c, function selectwindow().
+Xterm 224 supports it!
+Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
+Saito, 2013 Apr 24) Update 2016 Aug 12.
+Also see issue #609.
+We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke.
+
 Check_external_diff() is used too often. (Daniel Hahler, #4800)
 
 Incorrect formatting with autoindent. (Sebastian Gniazdowski, #4909)
@@ -297,6 +334,8 @@
 "exepath('bin/cmd')" does not work while ":!bin/cmd" does work.
 (Daniel Hahler, #4710)  and executable('bin/cmd') returns 1
 
+Error drawing the number column when 'cursorline' is set. (#3893)
+
 Problem with :tlmenu: Detach item added with all modes?  Issue #3563.
 
 The quoting of the [command] argument of :terminal is not clearly documented.
@@ -1604,14 +1643,6 @@
 Spell checking: Add a feature to only consider two spaces after a dot to start
 a new sentence.  Don't give the capitalization error when there is one space.
 
-xterm should be able to pass focus changes to Vim, so that Vim can check for
-buffers that changed.  Perhaps in misc.c, function selectwindow().
-Xterm 224 supports it!
-Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
-Saito, 2013 Apr 24) Update 2016 Aug 12.
-Also see issue #609.
-We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke.
-
 Idea: For a window in the middle (has window above and below it), use
 right-mouse-drag on the status line to move a window up/down without changing
 its height?  It's like dragging the status bar above it at the same time.
@@ -2155,10 +2186,6 @@
 Cscope "cs add" stopped working somewhat before 7.2.438. (Gary Johnson, 2010
 Jun 29)  Caused by 7.2.433?
 
-I often see pasted text (from Firefox, to Vim in xterm) appear twice.
-Also, Vim in xterm sometimes loses copy/paste ability (probably after running
-an external command).
-
 Jumplist doesn't work properly in Insert mode? (Jean Johner, 2010 Mar 20)
 
 Problem with transparent cmdline.  Also: Terminal title is wrong with
@@ -2754,10 +2781,6 @@
 Feature request: Command to go to previous tab, like what CTRL-W p does for
 windows. (Adam George)
 
-F1 - F4 in an xterm produce a different escape sequence when used with a
-modifier key.  Need to catch three different sequences.  Use K_ZF1, like
-K_ZHOME? (Dickey, 2007 Dec 2)
-
 In debug mode, using CTRL-R = to evaluate a function causes stepping through
 the function. (Hari Krishna Dara, 2006 Jun 28)
 
@@ -2892,12 +2915,6 @@
 This is undesired, 'background' is supposed to tell Vim what the background
 color is, not reset it.
 
-Linux distributions:
-- Suggest compiling xterm with --enable-tcap-query, so that nr of colors is
-  known to Vim.  88 colors instead of 16 works better.  See ":help
-  xfree-xterm".
-- Suggest including bare "vi" and "vim" with X11, syntax, etc.
-
 Completion menu: For a wrapping line, completing a long file name, only the
 start of the path is shown in the menu.  Should move the menu to the right to
 show more text of the completions.  Shorten the items that don't fit in the
@@ -2912,12 +2929,6 @@
 When ":cn" moves to an error in the same line the message isn't shortened.
 Only skip shortening for ":cc"?
 
-Write "making vim work better" for the docs (mostly pointers): *nice*
-    - sourcing $VIMRUNTIME/vimrc_example.vim
-    - setting 'mouse' to "a"
-    - getting colors in xterm
-    - compiling Vim with X11, GUI, etc.
-
 Problem with ":call" and dictionary function. Hari Krishna Dara, Charles
 Campbell 2006 Jul 06.
 
@@ -3011,11 +3022,6 @@
 typed characters to be redrawn.  Caused by patch 7.1.329. (Tyler Spivey, 2008
 Sep 3, 11)
 
-When Vim in an xterm owns the selection and the user does ":shell" Vim doesn't
-respond to selection requests.  Invoking XtDisownSelection() before executing
-the shell doesn't help.  Would require forking and doing a message loop, like
-what happens for the GUI.
-
 ":vimgrep" does not recognize a recursive symlink.  Is it possible to detect
 this, at least for Unix (using device/inode)?
 
@@ -3104,11 +3110,6 @@
     use the patch that keeps using HLF_8 if HLF_WS has not
     been given values.
     Add section in help files for these highlight groups?
-8   "fg" and "bg" don't work in an xterm.  Get default colors from xterm
-    with an ESC sequence.
-    xterm can send colors for many things.  E.g. for the cursor:
-	<Esc>]12;?<Bel>
-    Can use this to get the background color and restore the colors on exit.
 7   Add "DefaultFG" and "DefaultBG" for the colors of the menu. (Marcin
     Dalecki has a patch for Motif and Carbon)
 -   Add possibility to highlight specific columns (for Fortran).  Or put a
@@ -3702,7 +3703,6 @@
 8   Xterm sends ^[[H for <Home> and ^[[F for <End> in some mode.  Also
     recognize these keys?  Mostly useful for xterm simulators, like gnometerm.
     See http://dickey.his.com/xterm/xterm.faq.html#xterm_pc_style.
-8   For xterm also recognize keypad up/down/left/right and insert.
 8   '[ and '] should be set to start/end of line when using a linewise operator
     (e.g., ":w").
 8   CTRL-A can't handle big "long" numbers, they become negative.  Check for
@@ -3717,10 +3717,6 @@
     filesystem, an illegal file name may be created: ".vim".
 8   For each buffer that is opened, the viminfo file is opened and read to
     check for file marks.  This can be slow.
-7   In xterm, recognize both vt100 and vt220 cursor keys.  Change
-    add_termcode() to not remove an existing entry for a name, when it's
-    needed.
-    Need a generic solution to recognize different codes for the same key.
 8   Core dump within signal function: gdb doesn't show stack backtrace!  Option
     to skip catch_signals()?
 9   Repeating a "cw" with "." doesn't work if the text was pasted from the
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 8872103..82f6274 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 8.1.  Last change: 2019 Sep 27
+*vi_diff.txt*   For Vim version 8.1.  Last change: 2019 Oct 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -64,6 +64,9 @@
 w1200			number	(default 23)		*'w1200'*
 w9600			number	(default 23)		*'w9600'*
 
+Vi did not allow for changing the termcap entries, you would have to exit Vi,
+edit the termcap entry and try again.  Vim has the |terminal-options|.
+
 ==============================================================================
 3. Limits						*limits*
 
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index fce4825..9af37ad 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2019 Sep 27
+" Last Change:	2019 Oct 04
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
diff --git a/runtime/indent/testdir/yaml.in b/runtime/indent/testdir/yaml.in
new file mode 100644
index 0000000..e3d77e2
--- /dev/null
+++ b/runtime/indent/testdir/yaml.in
@@ -0,0 +1,14 @@
+# vim: set ft=yaml sw=2 et :
+
+# START_INDENT
+map1:
+sub1:
+- list item
+map2:
+- another list
+# END_INDENT
+
+# START_INDENT
+map: &anchor
+map: val
+# END_INDENT
diff --git a/runtime/indent/testdir/yaml.ok b/runtime/indent/testdir/yaml.ok
new file mode 100644
index 0000000..b97b2e5
--- /dev/null
+++ b/runtime/indent/testdir/yaml.ok
@@ -0,0 +1,14 @@
+# vim: set ft=yaml sw=2 et :
+
+# START_INDENT
+map1:
+  sub1:
+    - list item
+map2:
+  - another list
+# END_INDENT
+
+# START_INDENT
+map: &anchor
+map: val
+# END_INDENT
diff --git a/runtime/indent/yaml.vim b/runtime/indent/yaml.vim
index 3eb16f8..9621b2b 100644
--- a/runtime/indent/yaml.vim
+++ b/runtime/indent/yaml.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         YAML
 " Maintainer:       Nikolai Pavlov <zyx.vim@gmail.com>
-" Last Change:	    2017 Jun 13
+" Last Change:	    2019 Sep 28
 
 " Only load this indent file when no other was loaded.
 if exists('b:did_indent')
@@ -29,7 +29,7 @@
     let curindent = a:0 ? a:1 : indent(a:lnum)
     while           prevlnum
                 \&&  indent(prevlnum) >=  curindent
-                \&& getline(prevlnum) =~# '^\s*#'
+                \&& getline(prevlnum) !~# '^\s*#'
         let prevlnum = prevnonblank(prevlnum-1)
     endwhile
     return prevlnum
diff --git a/runtime/syntax/named.vim b/runtime/syntax/named.vim
index 210d387..292d1b2 100644
--- a/runtime/syntax/named.vim
+++ b/runtime/syntax/named.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	BIND configuration file
 " Maintainer:	Nick Hibma <nick@van-laarhoven.org>
-" Last Change:	2007-01-30
+" Last Change:	2019 Oct 08
 " Filenames:	named.conf, rndc.conf
 " Location:	http://www.van-laarhoven.org/vim/syntax/named.vim
 "
@@ -54,7 +54,7 @@
 syn region	namedSection	contained start=+{+ end=+};+ contains=namedSection,namedIntKeyword
 
 " --- IntSection: section that does not contain other sections
-syn region	namedIntSection	contained start=+{+ end=+}+ contains=namedIntKeyword,namedError
+syn region	namedIntSection	contained start=+{+ end=+}+ contains=namedIntKeyword,namedError,namedComment
 
 " --- IntKeyword: keywords contained within `{ ... }' sections only
 " + these keywords are contained within `key' and `acl' sections
