Updated runtime files.
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index dfdaf47..d6913b6 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.0.  Last change: 2016 Sep 03
+*autocmd.txt*   For Vim version 8.0.  Last change: 2016 Sep 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -983,7 +983,7 @@
 
 							*WinNew*
 WinNew				When a new window was created.  Not done for
-				the fist window, when Vim has just started.
+				the first window, when Vim has just started.
 				Before a WinEnter event.
 
 ==============================================================================
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index d3f7cfe..7c286f3 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 8.0.  Last change: 2016 Sep 11
+*channel.txt*      For Vim version 8.0.  Last change: 2016 Sep 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -33,7 +33,7 @@
 1. Overview						*job-channel-overview*
 
 There are four main types of jobs:
-1. A deamon, serving several Vim instances.
+1. A daemon, serving several Vim instances.
    Vim connects to it with a socket.
 2. One job working with one Vim instance, asynchronously.
    Uses a socket or pipes.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index b91f99b..658bc55 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.0.  Last change: 2016 Sep 07
+*eval.txt*	For Vim version 8.0.  Last change: 2016 Sep 22
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -125,7 +125,8 @@
 evaluates to FALSE.
 
 		*E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913*
-List, Dictionary, Funcref and Job types are not automatically converted.
+List, Dictionary, Funcref, Job and Channel types are not automatically
+converted.
 
 							*E805* *E806* *E808*
 When mixing Number and Float the Number is converted to Float.  Otherwise
@@ -643,7 +644,7 @@
 
 Expression syntax summary, from least to most significant:
 
-|expr1|   expr2
+|expr1|	expr2
 	expr2 ? expr1 : expr1	if-then-else
 
 |expr2|	expr3
@@ -691,7 +692,7 @@
 	expr8.name		entry in a |Dictionary|
 	expr8(expr1, ...)	function call with |Funcref| variable
 
-|expr9|   number		number constant
+|expr9|	number			number constant
 	"string"		string constant, backslash is special
 	'string'		string constant, ' is doubled
 	[expr1, ...]		|List|
@@ -957,7 +958,7 @@
 							*E909* *subscript*
 If expr8 is a Number or String this results in a String that contains the
 expr1'th single byte from expr8.  expr8 is used as a String, expr1 as a
-Number.  This doesn't recognize multi-byte encodings, see |byteidx()| for
+Number.  This doesn't recognize multi-byte encodings, see `byteidx()` for
 an alternative, or use `split()` to turn the string into a list of characters.
 
 Index zero gives the first byte.  This is like it works in C.  Careful:
@@ -1244,7 +1245,7 @@
 <	error function
 							*closure*
 Lambda expressions can access outer scope variables and arguments.  This is
-often called a closure.  Example where "i" a and "a:arg" are used in a lambda
+often called a closure.  Example where "i" and "a:arg" are used in a lambda
 while they exist in the function scope.  They remain valid even after the
 function returns: >
 	:function Foo(arg)
@@ -2072,8 +2073,8 @@
 feedkeys({string} [, {mode}])	Number	add key sequence to typeahead buffer
 filereadable({file})		Number	|TRUE| if {file} is a readable file
 filewritable({file})		Number	|TRUE| if {file} is a writable file
-filter({expr}, {string})	List/Dict  remove items from {expr} where
-					{string} is 0
+filter({expr1}, {expr2})	List/Dict  remove items from {expr1} where
+					{expr2} is 0
 finddir({name}[, {path}[, {count}]])
 				String	find directory {name} in {path}
 findfile({name}[, {path}[, {count}]])
@@ -2097,7 +2098,7 @@
 get({list}, {idx} [, {def}])	any	get item {idx} from {list} or {def}
 get({dict}, {key} [, {def}])	any	get item {key} from {dict} or {def}
 get({func}, {what})		any	get property of funcref/partial {func}
-getbufinfo([{expr}])		List  	information about buffers
+getbufinfo([{expr}])		List	information about buffers
 getbufline({expr}, {lnum} [, {end}])
 				List	lines {lnum} to {end} of buffer {expr}
 getbufvar({expr}, {varname} [, {def}])
@@ -2128,12 +2129,12 @@
 getreg([{regname} [, 1 [, {list}]]])
 				String or List   contents of register
 getregtype([{regname}])		String	type of register
-gettabinfo([{expr}])		List  	list of tab pages
+gettabinfo([{expr}])		List	list of tab pages
 gettabvar({nr}, {varname} [, {def}])
 				any	variable {varname} in tab {nr} or {def}
 gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
 				any	{name} in {winnr} in tab page {tabnr}
-getwininfo([{winid}])		List  	list of windows
+getwininfo([{winid}])		List	list of windows
 getwinposx()			Number	X coord in pixels of GUI Vim window
 getwinposy()			Number	Y coord in pixels of GUI Vim window
 getwinvar({nr}, {varname} [, {def}])
@@ -2197,7 +2198,7 @@
 log({expr})			Float	natural logarithm (base e) of {expr}
 log10({expr})			Float	logarithm of Float {expr} to base 10
 luaeval({expr}[, {expr}])	any	evaluate |Lua| expression
-map({expr}, {string})		List/Dict  change each item in {expr} to {expr}
+map({expr1}, {expr2})		List/Dict  change each item in {expr1} to {expr}
 maparg({name}[, {mode} [, {abbr} [, {dict}]]])
 				String or Dict
 					rhs of mapping {name} in mode {mode}
@@ -3701,9 +3702,10 @@
 		is zero remove the item from the |List| or |Dictionary|.
 		{expr2} must be a |string| or |Funcref|.
 		
-		if {expr2} is a |string|, inside {expr2} |v:val| has the value
+		If {expr2} is a |string|, inside {expr2} |v:val| has the value
 		of the current item.  For a |Dictionary| |v:key| has the key
-		of the current item.
+		of the current item and for a |List| |v:key| has the index of
+		the current item.
 		Examples: >
 			call filter(mylist, 'v:val !~ "OLD"')
 <		Removes the items where "OLD" appears. >
@@ -3725,7 +3727,11 @@
 			  return a:idx % 2 == 1
 			endfunc
 			call filter(mylist, function('Odd'))
-<
+<		It is shorter when using a |lambda|: >
+			call filter(myList, {idx, val -> idx * val <= 42})
+<		If you do not use "val" you can leave it out: >
+			call filter(myList, {idx -> idx % 2 == 1})
+
 		The operation is done in-place.  If you want a |List| or
 		|Dictionary| to remain unmodified make a copy first: >
 			:let l = filter(copy(mylist), 'v:val =~ "KEEP"')
@@ -5439,6 +5445,10 @@
 			  return a:key . '-' . a:val
 			endfunc
 			call map(myDict, function('KeyValue'))
+<		It is shorter when using a |lambda|: >
+			call map(myDict, {key, val -> key . '-' . val})
+<		If you do not use "val" you can leave it out: >
+			call map(myDict, {key -> 'item: ' . key})
 <
 		The operation is done in-place.  If you want a |List| or
 		|Dictionary| to remain unmodified make a copy first: >
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index f9961a8..5929bcf 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: 2016 Sep 01
+*if_pyth.txt*   For Vim version 8.0.  Last change: 2016 Sep 17
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -748,11 +748,11 @@
 The `:py3` and `:python3` commands work similar to `:python`.  A simple check
 if the `:py3` command is working: >
 	:py3 print("Hello")
-<							*:py3file*
+
 To see what version of Python you have: >
 	:py3 import sys
 	:py3 print(sys.version)
-
+<							*:py3file*
 The `:py3file` command works similar to `:pyfile`.
 							*:py3do*
 The `:py3do` command works similar to `:pydo`.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index c316c19..a17e195 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.0.  Last change: 2016 Sep 13
+*options.txt*	For Vim version 8.0.  Last change: 2016 Sep 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -6185,7 +6185,7 @@
 	NOTE: This option is set to 1 when 'compatible' is set.
 
 						*'scrolloff'* *'so'*
-'scrolloff' 'so'	number	(default 0)
+'scrolloff' 'so'	number	(default 0, set to 5 in |defaults.vim|)
 			global
 			{not in Vi}
 	Minimal number of screen lines to keep above and below the cursor.
@@ -7687,7 +7687,7 @@
 'timeout' 'to'		boolean (default on)
 			global
 						*'ttimeout'* *'nottimeout'*
-'ttimeout'		boolean (default off)
+'ttimeout'		boolean (default off, set in |defaults.vim|))
 			global
 			{not in Vi}
 	These two options together determine the behavior when part of a
@@ -7722,7 +7722,7 @@
 			global
 			{not in all versions of Vi}
 						*'ttimeoutlen'* *'ttm'*
-'ttimeoutlen' 'ttm'	number	(default -1)
+'ttimeoutlen' 'ttm'	number	(default -1, set to 100 in |defaults.vim|))
 			global
 			{not in Vi}
 	The time in milliseconds that is waited for a key code or mapped key
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 806cfff..3c3b657 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6370,6 +6370,8 @@
 g:vimsyn_minlines	syntax.txt	/*g:vimsyn_minlines*
 g:vimsyn_noerror	syntax.txt	/*g:vimsyn_noerror*
 g:yaml_schema	syntax.txt	/*g:yaml_schema*
+g:zipPlugin_ext	pi_zip.txt	/*g:zipPlugin_ext*
+g:zip_extractcmd	pi_zip.txt	/*g:zip_extractcmd*
 g:zip_nomax	pi_zip.txt	/*g:zip_nomax*
 g:zip_shq	pi_zip.txt	/*g:zip_shq*
 g:zip_unzipcmd	pi_zip.txt	/*g:zip_unzipcmd*
@@ -9386,6 +9388,7 @@
 zip-history	pi_zip.txt	/*zip-history*
 zip-manual	pi_zip.txt	/*zip-manual*
 zip-usage	pi_zip.txt	/*zip-usage*
+zip-x	pi_zip.txt	/*zip-x*
 zj	fold.txt	/*zj*
 zk	fold.txt	/*zk*
 zl	scroll.txt	/*zl*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index a4bf00b..3ef372e 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt*   For Vim version 8.0.  Last change: 2016 Aug 20
+*tagsrch.txt*   For Vim version 8.0.  Last change: 2016 Sep 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -91,7 +91,7 @@
 - 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
   contains an upper case character.
 
-The gnore-case matches are found when:
+The ignore-case matches are found when:
 - a pattern is used (starting with a "/")
 - for ":tselect"
 - when 'tagcase' is "followic" and 'ignorecase' is off
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 5bab822..8b3c477 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2016 Sep 16
+*todo.txt*      For Vim version 8.0.  Last change: 2016 Sep 22
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,10 +34,25 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Ukrainian translations (Anatolii Sakhnik, 2016 Sep 15)
+
 Netbeans test fails with Python 3. (jonathon, 2016 Sep 13, #1070)
 
 Revert 7.4.990?  (Christian Brabandt, 2016 Sep 16)
 
+Update for ratpoison (Magnus Woldrich, 2016 Sep 15)
+
+Crash when editing file with only encryption header. (igor2x, 2016 Sep 18,
+#1096) Patch by Christian, Sep 22.
+
+Idea from Sven: record sequence of keys.  Useful to show others what they are
+doing (look over the shoulder), and also to see what happened.
+Probably list of keystrokes, with some annotations for mode changes.
+Could store in logfile to be able to analyise it with an external command.
+E.g. to see when's the last time a plugin command was used.
+
+Patch for typos. (Matthew Brener, 2016 Sep 16, #1088)
+
 After 8.0 is released:
 - Drop support for older MS-Windows systems, before XP.
   Patch from Ken Takata, updated 2016 Sep 12.
@@ -110,6 +125,11 @@
   matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
   had_endbrace[] is set but not initialized or used.
 
+Strang syntax highlighting problem. (Brett Stahlman, 2016 Sep 17)
+
+Patch to convert test_command_count into new style. (Naruhiko Nishino, 2016
+Sep 17)
+
 json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
 What if there is an invalid character?
 
@@ -135,6 +155,7 @@
 Add tests for using number larger than number of lines in buffer.
 
 Invalid behavior with NULL list. (Nikolai Pavlov, #768)
+E.g. deepcopy(test_null_list())
 
 min() and max() spawn lots of error messages if sorted list/dictionary
 contains invalid data (Nikolay Pavlov, 2016 Sep 4, #1039)
@@ -148,12 +169,20 @@
 
 cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
 
+Patch to change order of compiler flags. (Yousong Zhou, 2016 Sep 19, #1100)
+
+Patch for :pyx, run python commands depending on the supported version.
+(Marc Weber, update from Ken Takata, 2016 Sep 19)
+
 When using ":diffput" through a mapping, undo in the target buffer isn't
 synced.  (Ryan Carney, 2016 Sep 14)
 
 Syntax highlighting for messages with RFC3339 timestamp (#946)
 Did maintainer reply?
 
+Patch to avoid problem with special characters in file name.
+(Shougo, 2016 Sept 19, #1099)  Not finished?
+
 ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
 Also with latest version.
 
@@ -183,6 +212,9 @@
 
 Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
 
+Patch to add separate highlighting for quickfix current line.
+(anishsane, 2016 Sep 16, #1080)
+
 Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
 
 Patch to improve map documentation. Issue #799.
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 13fee8e..844635e 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:	2016 Sep 15
+" Last Change:	2016 Sep 22
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -809,6 +809,10 @@
 au BufNewFile,BufRead */.gnupg/options		setf gpg
 au BufNewFile,BufRead */.gnupg/gpg.conf		setf gpg
 au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg
+if !empty($GNUPGHOME)
+  au BufNewFile,BufRead $GNUPGHOME/options	setf gpg
+  au BufNewFile,BufRead $GNUPGHOME/gpg.conf	setf gpg
+endif
 
 " gnash(1) configuration files
 au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
diff --git a/runtime/syntax/cdl.vim b/runtime/syntax/cdl.vim
index 23d7004..2a458d4 100644
--- a/runtime/syntax/cdl.vim
+++ b/runtime/syntax/cdl.vim
Binary files differ
diff --git a/runtime/tools/vim_vs_net.cmd b/runtime/tools/vim_vs_net.cmd
index bea6353..335236c 100644
--- a/runtime/tools/vim_vs_net.cmd
+++ b/runtime/tools/vim_vs_net.cmd
@@ -15,8 +15,7 @@
 @rem    :h --remote-silent for more details
 @rem
 @rem --servername VS_NET
-@rem This will create a new instance of vim called VS_NET.  So if you
-open
+@rem This will create a new instance of vim called VS_NET.  So if you open
 @rem multiple files from VS, they will use the same instance of Vim.
 @rem This allows you to have multiple copies of Vim running, but you can
 @rem control which one has VS files in it.