Updte runtime files
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 85a5547..95618e6 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.1.  Last change: 2019 Jun 26
+*autocmd.txt*   For Vim version 8.1.  Last change: 2019 Sep 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -581,7 +581,7 @@
 ColorSchemePre			Before loading a color scheme. |:colorscheme|
 				Useful to setup removing things added by a
 				color scheme, before another one is loaded.
-CompleteChanged 					*CompleteChanged*
+CompleteChanged						*CompleteChanged*
 				After each time the Insert mode completion
 				menu changed.  Not fired on popup menu hide,
 				use |CompleteDone| for that.  Never triggered
@@ -1117,8 +1117,8 @@
 				current buffer.  The following values of
 				|v:event| can be used to determine the operation
 				that triggered this autocmd:
-				   operator    	The operation performed.
-				   regcontents 	Text that was stored in the
+				   operator	The operation performed.
+				   regcontents	Text that was stored in the
 						register, as a list of lines,
 						like with: >
 						getreg(r, 1, 1)
@@ -1154,7 +1154,7 @@
 				   if v:vim_did_enter
 				     call s:init()
 				   else
- 	  			     au VimEnter * call s:init()
+				     au VimEnter * call s:init()
 				   endif
 <							*VimLeave*
 VimLeave			Before exiting Vim, just after writing the
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 0621966..6bbfa26 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 15
+*eval.txt*	For Vim version 8.1.  Last change: 2019 Sep 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2595,7 +2595,7 @@
 pathshorten({expr})		String	shorten directory names in a path
 perleval({expr})		any	evaluate |Perl| expression
 popup_atcursor({what}, {options}) Number create popup window near the cursor
-popup_beval({what}, {options}) 	Number 	create popup window for 'ballooneval'
+popup_beval({what}, {options})	Number	create popup window for 'ballooneval'
 popup_clear()			none	close all popup windows
 popup_close({id} [, {result}])	none	close popup window {id}
 popup_create({what}, {options}) Number	create a popup window
@@ -9048,31 +9048,36 @@
 		current state.  Mostly useful in callbacks that want to do
 		work that may not always be safe.  Roughly this works like:
 		- callback uses state() to check if work is safe to do.
-		  If yes, then do it right away.
-		  Otherwise add to work queue and add SafeState and/or
-		  SafeStateAgain autocommand.
-		- When SafeState or SafeStateAgain is triggered, check with
-		  state() if the work can be done now, and if yes remove it
-		  from the queue and execute.
+		  Yes: then do it right away.
+		  No:  add to work queue and add a |SafeState| and/or
+		       |SafeStateAgain| autocommand (|SafeState| triggers at
+		       toplevel, |SafeStateAgain| triggers after handling
+		       messages and callbacks).
+		- When SafeState or SafeStateAgain is triggered and executes
+		  your autocommand, check with `state()` if the work can be
+		  done now, and if yes remove it from the queue and execute.
+		  Remove the autocommand if the queue is now empty.
 		Also see |mode()|.
 
 		When {what} is given only characters in this string will be
 		added.  E.g, this checks if the screen has scrolled: >
-			if state('s') != ''
+			if state('s') == ''
+			   " screen has not scrolled
 <
 		These characters indicate the state, generally indicating that
 		something is busy:
-		    m  halfway a mapping, :normal command, feedkeys() or
-		       stuffed command
-		    o  operator pending or waiting for a command argument
-		    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.
-		    S  not triggering SafeState or SafeStateAgain
-		    c  callback invoked, including timer (repeats for
-		       recursiveness up to "ccc")
-		    s  screen has scrolled for messages
+		    m	halfway a mapping, :normal command, feedkeys() or
+			stuffed command
+		    o	operator pending or waiting for a command argument,
+		        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.
+		    S	not triggering SafeState or SafeStateAgain
+		    c	callback invoked, including timer (repeats for
+			recursiveness up to "ccc")
+		    s	screen has scrolled for messages
 
 str2float({expr})					*str2float()*
 		Convert String {expr} to a Float.  This mostly works the same
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 4890a98..9f3d1da 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 09
+*options.txt*	For Vim version 8.1.  Last change: 2019 Sep 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -8565,8 +8565,8 @@
 	":map <BS> X" to make backspace delete the character in front of the
 	cursor.
 	When 'l' is included and it is used after an operator at the end of a
-	line then it will not move to the next line.  This makes "dl", "cl",
-	"yl" etc. work normally.
+	line (not an empty line) then it will not move to the next line.  This
+	makes "dl", "cl", "yl" etc. work normally.
 	NOTE: This option is set to the Vi default value when 'compatible' is
 	set and to the Vim default value when 'compatible' is reset.
 
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index b566472..8dd506a 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.1.  Last change: 2019 Jun 14
+*repeat.txt*    For Vim version 8.1.  Last change: 2019 Sep 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -219,10 +219,10 @@
 
 			When {file} contains wildcards it is expanded to all
 			matching files.  Example: >
-				:runtime! plugin/*.vim
+				:runtime! plugin/**/*.vim
 <			This is what Vim uses to load the plugin files when
 			starting up.  This similar command: >
-				:runtime plugin/*.vim
+				:runtime plugin/**/*.vim
 <			would source the first file only.
 
 			When 'verbose' is one or higher, there is a message
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 0fd9769..6365e36 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 Jul 15
+*syntax.txt*	For Vim version 8.1.  Last change: 2019 Sep 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1923,6 +1923,16 @@
 number is that redrawing can become slow.
 
 
+JSON						*json.vim* *ft-json-syntax*
+
+The json syntax file provides syntax highlighting with conceal support by
+default. To disable concealment: >
+	let g:vim_json_conceal = 0
+
+To disable syntax highlighting of errors: >
+	let g:vim_json_warnings = 0
+
+
 LACE						*lace.vim* *ft-lace-syntax*
 
 Lace (Language for Assembly of Classes in Eiffel) is case insensitive, but the
diff --git a/runtime/doc/tags b/runtime/doc/tags
index ab0215e..a7f899b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -312,6 +312,7 @@
 'go-a'	options.txt	/*'go-a'*
 'go-b'	options.txt	/*'go-b'*
 'go-c'	options.txt	/*'go-c'*
+'go-d'	options.txt	/*'go-d'*
 'go-e'	options.txt	/*'go-e'*
 'go-f'	options.txt	/*'go-f'*
 'go-g'	options.txt	/*'go-g'*
@@ -5003,6 +5004,8 @@
 SHELL	starting.txt	/*SHELL*
 SQLGetType	ft_sql.txt	/*SQLGetType*
 SQLSetType	ft_sql.txt	/*SQLSetType*
+SafeState	autocmd.txt	/*SafeState*
+SafeStateAgain	autocmd.txt	/*SafeStateAgain*
 Select	visual.txt	/*Select*
 Select-mode	visual.txt	/*Select-mode*
 Select-mode-mapping	visual.txt	/*Select-mode-mapping*
@@ -6425,6 +6428,7 @@
 ft-inform-syntax	syntax.txt	/*ft-inform-syntax*
 ft-java-syntax	syntax.txt	/*ft-java-syntax*
 ft-javascript-omni	insert.txt	/*ft-javascript-omni*
+ft-json-syntax	syntax.txt	/*ft-json-syntax*
 ft-ksh-syntax	syntax.txt	/*ft-ksh-syntax*
 ft-lace-syntax	syntax.txt	/*ft-lace-syntax*
 ft-lex-syntax	syntax.txt	/*ft-lex-syntax*
@@ -7411,6 +7415,7 @@
 js_decode()	eval.txt	/*js_decode()*
 js_encode()	eval.txt	/*js_encode()*
 jsbterm-mouse	options.txt	/*jsbterm-mouse*
+json.vim	syntax.txt	/*json.vim*
 json_decode()	eval.txt	/*json_decode()*
 json_encode()	eval.txt	/*json_encode()*
 jtags	tagsrch.txt	/*jtags*
@@ -8646,6 +8651,7 @@
 scriptversion-1	eval.txt	/*scriptversion-1*
 scriptversion-2	eval.txt	/*scriptversion-2*
 scriptversion-3	eval.txt	/*scriptversion-3*
+scriptversion-4	eval.txt	/*scriptversion-4*
 scroll-binding	scroll.txt	/*scroll-binding*
 scroll-cursor	scroll.txt	/*scroll-cursor*
 scroll-down	scroll.txt	/*scroll-down*
@@ -8925,6 +8931,7 @@
 startup	starting.txt	/*startup*
 startup-options	starting.txt	/*startup-options*
 startup-terminal	term.txt	/*startup-terminal*
+state()	eval.txt	/*state()*
 static-tag	tagsrch.txt	/*static-tag*
 status-line	windows.txt	/*status-line*
 statusmsg-variable	eval.txt	/*statusmsg-variable*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index b6fba8b..c0caa67 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.1.  Last change: 2019 Sep 08
+*terminal.txt*	For Vim version 8.1.  Last change: 2019 Sep 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1225,8 +1225,10 @@
  `:Run` [args]	    run the program with [args] or the previous arguments
  `:Arguments` {args}  set arguments for the next `:Run`
 
- *:Break*	set a breakpoint at the current line; a sign will be displayed
- *:Clear*	delete the breakpoint at the current line
+ *:Break*	set a breakpoint at the cursor position
+ :Break {position}
+ 		set a breakpoint at the specified position
+ *:Clear*	delete the breakpoint at the cursor position
 
  *:Step*	execute the gdb "step" command
  *:Over*	execute the gdb "next" command (`:Next` is a Vim command)
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 754f09c..b2dea42 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 10
+*todo.txt*      For Vim version 8.1.  Last change: 2019 Sep 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,9 +38,21 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Split off part of option.c: #4918
+Add test for state().
+Add test for using SafeState and SafeStateAgain autocommand.
+Then plugin can:
+- When callback is invoked and state() returns non-empty, add to work queue
+- When SafeState autocommand event triggers, process work queue
+
+Fix for "x" should be done by fixing "dl" ?  8.1.2052
+
+'completeopt' "popup" variant that uses a callback after the popup has been
+created, so the contents can be changed.  Make it hidden, callback
+or later has to make it visible. #4924  Setting the buffer contents later
+doesn't work well.
 
 Popup windows:
+- 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.
@@ -130,6 +142,11 @@
 E453, E454, E460, E489, E491, E565, E578, E610, E611, E653,
 E654, E856, E857, E860, E861, E863, E889, E900
 
+Improve running tests on MS-Windows: #4922
+
+Patch to properly break CJK lines: #3875
+Ready to include now?
+
 Remove check for cmd_silent when calling search_stat()? (Gary Johnson)
 
 undo result wrong: Masato Nishihata, #4798
@@ -510,9 +527,6 @@
 
 Difference between two regexp engines: #3373
 
-Patch to properly break CJK lines: #3875
-Requires more tests.  dbcs_ functions are not implemented.
-
 Patch to add ch_listen() (Yasuhiro Matsumoto, 2018 Nov 26, #3639)
 What is the practical use for this?
 
@@ -783,7 +797,7 @@
 MS-Windows: buffer completion doesn't work when using backslash (or slash)
 for a path separator. (xtal8, #2201)
 
-Would be nice for insert mode completion to highlight the text that was added
+Would be nice for Insert mode completion to highlight the text that was added
 (and may change when picking another completion).
 
 Test runtime files.
@@ -1894,9 +1908,6 @@
 only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
 21, Ben Fritz, 2010 Sep 14)
 
-'cursorline' works on a text line only.  Add 'cursorscreenline' for
-highlighting the screen line. (Christian Brabandt, 2012 Mar 31)
-
 Win32: Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 17)
 New feature, requires testing.  Made some remarks.