changeset 14945:4ee65b4150fd

Update runtime files commit https://github.com/vim/vim/commit/2c64ca1802b2c99b16d2fdf581b68b5baffb082a Author: Bram Moolenaar <Bram@vim.org> Date: Fri Oct 19 16:22:31 2018 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Fri, 19 Oct 2018 16:30:08 +0200
parents ea95565c96ef
children 8ca1dc213836
files runtime/autoload/phpcomplete.vim runtime/doc/autocmd.txt runtime/doc/cmdline.txt runtime/doc/eval.txt runtime/doc/gui_x11.txt runtime/doc/help.txt runtime/doc/indent.txt runtime/doc/options.txt runtime/doc/os_390.txt runtime/doc/os_win32.txt runtime/doc/todo.txt runtime/indent/python.vim runtime/syntax/named.vim runtime/syntax/nsis.vim runtime/tutor/tutor.de runtime/tutor/tutor.de.utf-8
diffstat 16 files changed, 198 insertions(+), 96 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/phpcomplete.vim
+++ b/runtime/autoload/phpcomplete.vim
@@ -3,7 +3,7 @@
 " Maintainer:	Dávid Szabó ( complex857 AT gmail DOT com )
 " Previous Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
 " URL: https://github.com/shawncplus/phpcomplete.vim
-" Last Change:  2016 Oct 10
+" Last Change:  2018 Oct 10
 "
 "	OPTIONS:
 "
@@ -146,6 +146,8 @@ function! phpcomplete#CompletePHP(findst
 	end
 
 	try
+		let eventignore = &eventignore
+		let &eventignore = 'all'
 		let winheight = winheight(0)
 		let winnr = winnr()
 
@@ -216,6 +218,7 @@ function! phpcomplete#CompletePHP(findst
 		endif
 	finally
 		silent! exec winnr.'resize '.winheight
+		let &eventignore = eventignore
 	endtry
 endfunction
 " }}}
@@ -1393,23 +1396,28 @@ function! phpcomplete#GetCallChainReturn
 			for classstructure in classcontents
 				let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
 				let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
-				if doc_str != ''
+				let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(split(classstructure.content, '\n'), 'function\s\+&\?'.method.'\>')
+				if doc_str != '' || return_type_hint != ''
 					break
 				endif
 			endfor
-			if doc_str != ''
+			if doc_str != '' || return_type_hint != ''
 				let docblock = phpcomplete#ParseDocBlock(doc_str)
-				if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0
-					let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
+				if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0 || return_type_hint != ''
+					if return_type_hint == ''
+						let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
 
-					if type == ''
-						for property in docblock.properties
-							if property.description =~? method
-								let type = property.type
-								break
-							endif
-						endfor
-					endif
+						if type == ''
+							for property in docblock.properties
+								if property.description =~? method
+									let type = property.type
+									break
+								endif
+							endfor
+						endif
+					else
+						let type = return_type_hint
+					end
 
 					" there's a namespace in the type, threat the type as FQCN
 					if type =~ '\\'
@@ -1483,7 +1491,7 @@ function! phpcomplete#GetMethodStack(lin
 			continue
 		endif
 
-		" if it's looks like a string
+		" if it looks like a string
 		if current_char == "'" || current_char == '"'
 			" and it is not escaped
 			if prev_char != '\' || (prev_char == '\' && prev_prev_char == '\')
@@ -1587,9 +1595,11 @@ function! phpcomplete#GetClassName(start
 		elseif function_file != '' && filereadable(function_file)
 			let file_lines = readfile(function_file)
 			let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>')
+			let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(file_lines, 'function\s*&\?'.function_name.'\>')
 			let docblock = phpcomplete#ParseDocBlock(docblock_str)
-			if has_key(docblock.return, 'type')
-				let classname_candidate = docblock.return.type
+			let type = has_key(docblock.return, 'type') ? docblock.return.type : return_type_hint
+			if type != ''
+				let classname_candidate = type
 				let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
 				" try to expand the classname of the returned type with the context got from the function's source file
 
@@ -1821,9 +1831,11 @@ function! phpcomplete#GetClassName(start
 				elseif function_file != '' && filereadable(function_file)
 					let file_lines = readfile(function_file)
 					let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>')
+					let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(file_lines, 'function\s*&\?'.function_name.'\>')
 					let docblock = phpcomplete#ParseDocBlock(docblock_str)
-					if has_key(docblock.return, 'type')
-						let classname_candidate = docblock.return.type
+					let type = has_key(docblock.return, 'type') ? docblock.return.type : return_type_hint
+					if type != ''
+						let classname_candidate = type
 						let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
 						" try to expand the classname of the returned type with the context got from the function's source file
 						let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
@@ -2413,6 +2425,44 @@ function! phpcomplete#ParseDocBlock(docb
 endfunction
 " }}}
 
+function! phpcomplete#GetFunctionReturnTypeHint(sccontent, search)
+	let i = 0
+	let l = 0
+	let function_line_start = -1
+	let function_line_end = -1
+	let sccontent_len = len(a:sccontent)
+	let return_type = ''
+
+	while (i < sccontent_len)
+		let line = a:sccontent[i]
+		" search for a function declaration
+		if line =~? a:search
+			let l = i
+			let function_line_start = i
+			" now search for the first { where the function body starts
+			while l < sccontent_len
+				let line = a:sccontent[l]
+				if line =~? '\V{'
+					let function_line_end = l
+					break
+				endif
+				let l += 1
+			endwhile
+			break
+		endif
+		let i += 1
+	endwhile
+
+	" now grab the lines that holds the function declaration line
+	if function_line_start != -1 && function_line_end != -1
+		let function_line = join(a:sccontent[function_line_start :function_line_end], " ")
+		let class_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
+		let return_type = matchstr(function_line, '\c\s*:\s*\zs'.class_name_pattern.'\ze\s*{')
+	endif
+	return return_type
+
+endfunction
+
 function! phpcomplete#GetTypeFromDocBlockParam(docblock_type) " {{{
 	if a:docblock_type !~ '|'
 		return a:docblock_type
@@ -2572,7 +2622,7 @@ function! phpcomplete#GetCurrentNameSpac
 			" find kind flags from tags or built in methods for the objects we extracted
 			" they can be either classes, interfaces or namespaces, no other thing is importable in php
 			for [key, import] in items(imports)
-				" if theres a \ in the name we have it's definetly not a built in thing, look for tags
+				" if theres a \ in the name we have it's definitely not a built in thing, look for tags
 				if import.name =~ '\\'
 					let patched_ctags_detected = 0
 					let [classname, namespace_for_classes] = phpcomplete#ExpandClassName(import.name, '\', {})
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -301,6 +301,7 @@ Name			triggered by ~
 |FileChangedShellPost|	After handling a file changed since editing started
 |FileChangedRO|		before making the first change to a read-only file
 
+|DiffUpdated|		after diffs have been updated
 |DirChanged|		after the working directory has changed
 
 |ShellCmdPost|		after executing a shell command
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -534,8 +534,46 @@ after a command causes the rest of the l
 to add comments.  Example: >
 	:set ai		"set 'autoindent' option
 It is not possible to add a comment to a shell command ":!cmd" or to the
-":map" command and a few others, because they see the '"' as part of their
-argument.  This is mentioned where the command is explained.
+":map" command and a few others (mainly commands that expect expressions)
+that see the '"' as part of their argument:
+
+    :argdo
+    :autocmd
+    :bufdo
+    :cexpr (and the like)
+    :call
+    :cdo (and the like)
+    :command
+    :cscope (and the like)
+    :debug
+    :display
+    :echo (and the like)
+    :elseif
+    :execute
+    :folddoopen
+    :folddoclosed
+    :for
+    :grep (and the like)
+    :help (and the like)
+    :if
+    :let
+    :make
+    :map (and the like including :abbrev commands)
+    :menu (and the like)
+    :mkspell
+    :normal
+    :ownsyntax
+    :popup
+    :promptfind (and the like)
+    :registers
+    :return
+    :sort
+    :syntax
+    :tabdo
+    :tearoff
+    :vimgrep (and the like)
+    :while
+    :windo
 
 							*:bar* *:\bar*
 '|' can be used to separate commands, so you can give multiple commands in one
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2038,7 +2038,8 @@ assert_equalfile({fname-one}, {fname-two
 				Number	assert file contents is equal
 assert_exception({error} [, {msg}])
 				Number	assert {error} is in v:exception
-assert_fails({cmd} [, {error}])	Number	assert {cmd} fails
+assert_fails({cmd} [, {error} [, {msg}]])
+				Number	assert {cmd} fails
 assert_false({actual} [, {msg}])
 				Number	assert {actual} is false
 assert_inrange({lower}, {upper}, {actual} [, {msg}])
@@ -2461,7 +2462,7 @@ term_setkill({buf}, {how})	none	set sign
 term_setrestore({buf}, {command}) none	set command to restore terminal
 term_setsize({buf}, {rows}, {cols})
 				none	set the size of a terminal
-term_start({cmd}, {options})	Job	open a terminal window and run a job
+term_start({cmd}, {options})	Number	open a terminal window and run a job
 term_wait({buf} [, {time}])	Number  wait for screen to be updated
 test_alloc_fail({id}, {countdown}, {repeat})
 				none	make memory allocation fail
@@ -2475,8 +2476,8 @@ test_null_job()			Job	null value for tes
 test_null_list()		List	null value for testing
 test_null_partial()		Funcref	null value for testing
 test_null_string()		String	null value for testing
-test_option_not_set({name})    none	reset flag indicating option was set
-test_override({expr}, {val})    none	test with Vim internal overrides
+test_option_not_set({name})	none	reset flag indicating option was set
+test_override({expr}, {val})	none	test with Vim internal overrides
 test_scrollbar({which}, {value}, {dragging})
 				none	scroll in the GUI for testing
 test_settime({expr})		none	set current time for testing
@@ -2671,7 +2672,7 @@ assert_exception({error} [, {msg}])			*a
 			  call assert_exception('E492:')
 			endtry
 
-assert_fails({cmd} [, {error}])					*assert_fails()*
+assert_fails({cmd} [, {error} [, {msg}]])			*assert_fails()*
 		Run {cmd} and add an error message to |v:errors| if it does
 		NOT produce an error.  Also see |assert-return|.
 		When {error} is given it must match in |v:errmsg|.
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -496,7 +496,7 @@ unexpectedly less attractive or even det
 in mind always when you try improving a theme.
 
 
-Example 3.  border color
+Example 3.  border color ~
 
 To eliminate borders when maximized: >
 
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -225,4 +225,4 @@ will try to find help for it.  Especiall
 'compatible'.
 
 ------------------------------------------------------------------------------
- vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:noet:ft=help:norl:
+ vim:tw=78:isk=!-~,^*,^\|,^\":ts=8:noet:ft=help:norl:
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -941,6 +941,11 @@ Indent after a nested paren: >
 Indent for a continuation line: >
 	let g:pyindent_continue = '&sw * 2'
 
+The method uses searchpair() to look back for unclosed parenthesis.  This can
+sometimes be slow, thus it timeouts after 150 msec.  If you notice the
+indenting isn't correct, you can set a larger timeout in msec: >
+	let g:pyindent_searchpair_timeout = 500
+
 
 R								*ft-r-indent*
 
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -3895,8 +3895,8 @@ A jump table for the options with a shor
 	screen.
 
 						*'guioptions'* *'go'*
-'guioptions' 'go'	string	(default "egmrLtT"   (MS-Windows, "t" is
-						   removed in |defaults.vim|),
+'guioptions' 'go'	string	(default "egmrLtT"   (MS-Windows,
+					   "t" is removed in |defaults.vim|),
 					 "aegimrLtT" (GTK, Motif and Athena),
 					 )
 			global
--- a/runtime/doc/os_390.txt
+++ b/runtime/doc/os_390.txt
@@ -83,10 +83,10 @@ 5. Limitations     			*OS390-limitations
   ctags out there, that does it right, but we can't be sure.  So this seems to
   be a permanent restriction.
 
-- The cscope interface (|cscope|) doesn't work for the version of cscope
-  that we use on our mainframe.  We have a copy of version 15.0b12, and it
-  causes Vim to hang when using the "cscope add" command.  I'm guessing that
-  the binary format of the cscope database isn't quite what Vim is expecting.
+- The cscope interface (|cscope|) doesn't work for the version of cscope that
+  we use on our mainframe.  We have a copy of version 15.0b12, and it causes
+  Vim to hang when using the "cscope add" command.  I'm guessing that the
+  binary format of the cscope database isn't quite what Vim is expecting.
   I've tried to port the current version of cscope (15.3) to z/OS, without
   much success.  If anyone is interested in trying, drop me a line if you
   make any progress.
@@ -131,4 +131,4 @@ Also look at:
 
 
 ------------------------------------------------------------------------------
- vim:tw=78:fo=tcq2:ts=8:noet:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -303,4 +303,4 @@ A. Yes, place your favorite icon in bitm
    'runtimepath'.  For example ~/vimfiles/bitmaps/vim.ico.
 
 
- vim:tw=78:fo=tcq2:ts=8:noet:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,17 +38,8 @@ browser use: https://github.com/vim/vim/
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Test_scrollbars() fails with X11-Athena GUI or X11-Motif GUI
-(Dominique, #3451)
-
-Flashing highlighting with 'rnu' and folding.
-(Vitaly Yashin, 2018 Sep 26, #3484)
-
-Still a cursorline problem. (Justin Keyes, #3488)
-
-Crash with recursive use of getcmdline() from Timer.  save_ccline isn't used
-then.  Turn it around: When getcmdline() is called it checks if it is a
-recursive call, and saves the cmdline then. (#3493)
+Using freed memory in quickfix. (Dominique Pelle, Yegappan is looking into a
+fix).
 
 'incsearch' with :s: (#3321)
 - :s/foo  using CTRL-G moves to another line, should not happen, or use the
@@ -59,8 +50,6 @@ recursive call, and saves the cmdline th
   isn't one?
   Then :%s?foo should take the first match above the cursor line.
 
-Don't set diffexpr when generating _vimrc for MS-Windows.
-
 Prompt buffer:
 - Add a command line history.
 - delay next prompt until plugin gives OK?
@@ -75,6 +64,7 @@ Terminal debugger:
 Terminal emulator window:
 - GUI: When using ":set go+=!" a system() call causes the hit-enter prompt.
   (#3327)
+- GUI: hang until key typed. (#3530)
 - When the job in the terminal doesn't use mouse events, let the scroll wheel
   scroll the scrollback, like a terminal does at the shell prompt. #2490
   And use modeless selection.  #2962
@@ -105,6 +95,9 @@ Terminal emulator window:
 Key mapping times out when using a timer in Gvim. (Michael Henry, 2018 Sep 9,
 #3417)
 
+Patch to check for directory access in term_start(). (Jason Franklin, 2018 Oct
+15)
+
 Does not build with MinGW out of the box:
 - _stat64 is not defined, need to use "struct stat" in vim.h
 - WINVER conflict, should use 0x0600 by default?
@@ -115,33 +108,55 @@ 13, #2910)  Can't reproduce?
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
+Win32 key codes are messy.  Mike Williams tried to fix that, but now old
+mappings no longer work.  Create a new terminal for the better solution?
+
 Improve fallback for menu translations, to avoid having to create lots of
 files that source the actual file.  E.g. menu_da_de -> menu_da
 Include part of #3242?
 
+When a terminal exit_cb closes the window, a following typed key is lost, if
+it's in a mapping. (2018 Oct 6, #2302, #3522)
+
 Completion mixes results from the current buffer with tags and other files.
 Happens when typing CTRL-N while still search for results.  E.g., type "b_" in
 terminal.c and then CTRL-N twice.
 Should do current file first and not split it up when more results are found.
 (Also #1890)
 
+C syntax: {} inside () causes following {} to be highlighted as error.
+(Michalis Giannakidis, 2006 Jun 1)
+
 More warnings from static analysis:
 https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
 
+Quickfix accessing free memory. (Dominique, 2018 Oct 13, #3538)
+Yegappan will look into it.
+
+Patch for this: (Aron Widforss, 2018 Oct 13, #3539)
+    missing a test.
+7   Make 'scrolloff' a global-local option, so that it can be different in the
+    quickfix window, for example. (Gary Holloway)
+    Also do 'sidescrolloff'.
+
 Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
 Related to bracketed paste.  I cannot reproduce it.
 
 ":mksession" cannot handle a very long 'runtimepath'. (Timothy Madden, 21 Sep
-2018, #3466)
+2018, #3466)  Christian is working on a patch.
 
 Patch in pull request #2967: Allow white space in sign text. (Ben Jackson)
 Test fails in AppVeyor.
 
-Job_info() returns command without backslashes. (Daniel Hahler, 2018 Sep 3,
-#3404)
-
 Patch to simplify nsis installer. (Ken Takata, 2018 Sep 24, was #3479)
-Now included in #3501, using MUI2.
+Now included in #3501, using MUI2.  Use the zip file to get the binary files:
+https://github.com/vim/vim/files/2475621/nsis-icons.zip
+Still being worked on.
+
+ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
+
+Patch to convert temp file name. (Yasuhiro Matsumoto, #3520)
+Not ready to include yet.
 
 Removing flags from 'cpoptions' breaks the Winbar buttons in termdebug.
 (Dominique Pelle, 2018 Jul 16)
@@ -156,24 +171,11 @@ Invalid memory access with old regexp en
 Add function to make use of internal diff, working on two lists and returning
 unified diff (list of lines).
 
-Memory leak in test_assert:
-==19127==    by 0x2640D7: alloc (misc2.c:874)
-==19127==    by 0x2646D6: vim_strsave (misc2.c:1315)
-==19127==    by 0x1B68D2: f_getcwd (evalfunc.c:4950)
-And:
-==19127==    by 0x2640D7: alloc (misc2.c:874)
-==19127==    by 0x1A9477: set_var (eval.c:7601)
-==19127==    by 0x19F96F: set_var_lval (eval.c:2233)
-==19127==    by 0x19EA3A: ex_let_one (eval.c:1810)
-==19127==    by 0x19D737: ex_let_vars (eval.c:1294)
-==19127==    by 0x19D6B4: ex_let (eval.c:1259)
+Patch to implement 'diffref' option. (#3535)
+  Easier to use a 'diffmaster' option, is the extra complexity needed?
+
 Memory leaks in test_channel? (or is it because of fork())
 Using uninitialized value in test_crypt.
-Memory leaks in test_escaped_glob
-==20651==    by 0x2640D7: alloc (misc2.c:874)
-==20651==    by 0x2646D6: vim_strsave (misc2.c:1315)
-==20651==    by 0x3741EA: get_function_args (userfunc.c:131)
-==20651==    by 0x378779: ex_function (userfunc.c:2036)
 Memory leak in test_terminal:
 ==23530==    by 0x2640D7: alloc (misc2.c:874)
 ==23530==    by 0x2646D6: vim_strsave (misc2.c:1315)
@@ -198,6 +200,9 @@ Not ready to include.
 
 Patch to support menus in terminal: ":tlmenu". (Yee Cheng Chin, #3439)
 
+:pedit resets the 'buflisted' option unexpectedly. (Wang Shidong, 2018 Oct 12,
+#3536)
+
 home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9)
 
 When the status line uses term_gettitle(), it does not get updated when the
@@ -233,6 +238,9 @@ Update Mar 5. Update Apr 7.  Update Jun 
 When the last line wraps, selecting with the mouse below that line only
 includes the first screen line. (2018 Aug 23, #3368)
 
+Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
+#2322)  Patch now in #2856.
+
 Refactored HTML indent file. (Michael Lee, #1821)
 
 Patch to add getregpoint() and setreg() with an option to set "".
@@ -260,6 +268,11 @@ characters. (#3246)
 
 'foldtext' is evaluated too often. (Daniel Hahler, #2773)
 
+ml_get error when using a Python script. (Yggdroot, 2017 Jun 1, #1737)
+Lemonboy can reproduce (2017 Jun 5)
+Also reproduced by Benjamin Doherty, 2018 Oct 4.
+Simpler way: Ken Takata, Oct 6.
+
 Height of quickfix window is not retained with vertical splits. (Lifepillar,
 2018 Aug 24, #2998)
 
@@ -275,6 +288,9 @@ is cleared, to avoid going back to the l
 windows with it).  Can we just remove the jump list entries for the quickfix
 buffer?
 
+Patch to fix that executable() may fail on very long filename in MS-Windows.
+(Ken Takata, 2016 Feb 1, update 2018 Oct 7)
+
 Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
 Update Sep 7.  Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
 
@@ -292,9 +308,6 @@ Add v:motion_force. (Kana Natsuno, 2008 
 Maybe call it v:motiontype.  Update in #3490)
 Alternaitve: add the force flag to mode(), after "no".
 
-Patch to fix that executable() may fail on very long filename in MS-Windows.
-(Ken Takata, 2016 Feb 1)
-
 Try out background make plugin: 
   https://github.com/AndrewVos/vim-make-background
 or asyncmake: 
@@ -450,9 +463,6 @@ option_save({list})					*option_save()*
 directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
 Also see #1689.
 
-ml_get error when using a Python script. (Yggdroot, 2017 Jun 1, #1737)
-Lemonboy can reproduce (2017 Jun 5)
-
 crash when removing an element while inside map(). (Nikolai Pavlov, 2018 Feb
 17, #2652)
 
@@ -636,9 +646,6 @@ stack trace. (Yggdroot, 2017 Jul 28, #18
 Profile of a dict function is lost when the dict is deleted.  Would it be
 possible to collect this?  (Daniel Hahler, #2350)
 
-Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
-#2322)  Patch now in #2856.
-
 When checking if a bufref is valid, also check the buffer number, to catch the
 case of :bwipe followed by :new.
 
@@ -2412,9 +2419,6 @@ Syntax highlighting wrong for transparen
 Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007
 Jul 31)
 
-C syntax: {} inside () causes following {} to be highlighted as error.
-(Michalis Giannakidis, 2006 Jun 1)
-
 When 'diffopt' has "context:0" a single deleted line causes two folds to merge
 and mess up syncing. (Austin Jennings, 2008 Jan 31)
 
@@ -2877,8 +2881,6 @@ More patches:
 -   Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11)
     Needs a few tests.
 -   Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
--   Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs
-    patch May 10)
 -   Extra argument to strtrans() to translate special keys to their name (Eric
     Arnold, 2006 May 22)
 -   'threglookexp' option: only match with first word in thesaurus file.
@@ -5574,9 +5576,6 @@ 8   Add commands to save and restore an 
     that marks if the option was set.  Useful to keep the effect of setting
     'compatible' after ":syntax on" has been used.
 7   There is 'titleold', why is there no 'iconold'? (Chazelas)
-7   Make 'scrolloff' a global-local option, so that it can be different in the
-    quickfix window, for example. (Gary Holloway)
-    Also do 'sidescrolloff'.
 
 
 External commands:
--- a/runtime/indent/python.vim
+++ b/runtime/indent/python.vim
@@ -53,6 +53,11 @@ function GetPythonIndent(lnum)
     return 0
   endif
 
+  " searchpair() can be slow sometimes, limit the time to 100 msec or what is
+  " put in g:pyindent_searchpair_timeout
+  let searchpair_stopline = 0
+  let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
+
   " If the previous line is inside parenthesis, use the indent of the starting
   " line.
   " Trick: use the non-existing "dummy" variable to break out of the loop when
@@ -61,7 +66,8 @@ function GetPythonIndent(lnum)
   let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
 	  \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
 	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
-	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'")
+	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
+	  \ searchpair_stopline, searchpair_timeout)
   if parlnum > 0
     let plindent = indent(parlnum)
     let plnumstart = parlnum
@@ -80,14 +86,16 @@ function GetPythonIndent(lnum)
   let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
 	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
 	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
-	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'")
+	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
+	  \ searchpair_stopline, searchpair_timeout)
   if p > 0
     if p == plnum
       " When the start is inside parenthesis, only indent one 'shiftwidth'.
       let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
 	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
 	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
-	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'")
+	  \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
+	  \ searchpair_stopline, searchpair_timeout)
       if pp > 0
 	return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
       endif
--- 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:	2007-01-30
 " Filenames:	named.conf, rndc.conf
 " Location:	http://www.van-laarhoven.org/vim/syntax/named.vim
 "
--- a/runtime/syntax/nsis.vim
+++ b/runtime/syntax/nsis.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Ken Takata
 " URL:			https://github.com/k-takata/vim-nsis
 " Previous Maintainer:	Alex Jakushev <Alex.Jakushev@kemek.lt>
-" Last Change:		2018-02-07
+" Last Change:		2018-10-02
 
 " quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -104,8 +104,8 @@ syn match nsisSysVar		"$\$"
 syn match nsisSysVar		"$\\["'`]"
 
 "LABELS (4.3)
-syn match nsisLocalLabel	contained "[^-+!$0-9;#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
-syn match nsisGlobalLabel	contained "\.[^-+!$0-9;# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
+syn match nsisLocalLabel	contained "[^-+!$0-9;"'#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
+syn match nsisGlobalLabel	contained "\.[^-+!$0-9;"'# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
 
 "CONSTANTS
 syn keyword nsisBoolean		contained true false
--- a/runtime/tutor/tutor.de
+++ b/runtime/tutor/tutor.de
@@ -905,7 +905,7 @@ Anmerkung: Um die Schreibweise für eine einzige Suche zu ignorieren, benutze \c
 
   1. Stelle sicher, dass Vim nicht im Vi-Kompatibilitätsmodus ist:  :set nocp
 
-  2. Siehe nach, welche Dateien im Verzeichnis existieren:  :!ls  oder  :dir
+  2. Siehe nach, welche Dateien im Verzeichnis existieren:  :!ls  oder  :!dir
 
   3. Tippe den Beginn eines Kommandos:  :e
 
--- a/runtime/tutor/tutor.de.utf-8
+++ b/runtime/tutor/tutor.de.utf-8
@@ -905,7 +905,7 @@ Anmerkung: Um die Schreibweise für eine einzige Suche zu ignorieren, benutze \c
 
   1. Stelle sicher, dass Vim nicht im Vi-Kompatibilitätsmodus ist:  :set nocp
 
-  2. Siehe nach, welche Dateien im Verzeichnis existieren:  :!ls  oder  :dir
+  2. Siehe nach, welche Dateien im Verzeichnis existieren:  :!ls  oder  :!dir
 
   3. Tippe den Beginn eines Kommandos:  :e