Update runtime files.
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index fe67774..7c547df 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.0.  Last change: 2018 Feb 10
+*autocmd.txt*   For Vim version 8.0.  Last change: 2018 Mar 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -21,7 +21,6 @@
 11. Disabling autocommands	|autocmd-disable|
 
 {Vi does not have any of these commands}
-{only when the |+autocmd| feature has not been disabled at compile time}
 
 ==============================================================================
 1. Introduction						*autocmd-intro*
@@ -324,6 +323,10 @@
 |CmdwinEnter|		after entering the command-line window
 |CmdwinLeave|		before leaving the command-line window
 
+|CmdlineChanged|	after a change was made to the command-line text
+|CmdlineEnter|		after the cursor moves to the command line
+|CmdlineLeave|		before the cursor leaves the command line
+
 |InsertEnter|		starting Insert mode
 |InsertChange|		when typing <Insert> while in Insert or Replace mode
 |InsertLeave|		when leaving Insert mode
@@ -506,9 +509,9 @@
 				always define the user command and have it
 				invoke an autoloaded function.  See |autoload|.
 							*CmdlineChanged*
-CmdlineChanged			After a change was made to the text inside
-				command line.  Be careful not to mess up the
-				command line, it may cause Vim to lock up.
+CmdlineChanged			After a change was made to the text in the
+				command line.  Be careful not to mess up
+				the command line, it may cause Vim to lock up.
 				<afile> is set to a single character,
 				indicating the type of command-line.
 				|cmdwin-char|
@@ -785,7 +788,7 @@
 				inserted literally.
 				It is not allowed to change the text |textlock|.
 				The event is not triggered when 'paste' is
-				set.
+				set. {only with the +eval feature}
 							*InsertEnter*
 InsertEnter			Just before starting Insert mode.  Also for
 				Replace mode and Virtual Replace mode.  The
@@ -931,6 +934,7 @@
 				It is not allowed to change to another buffer,
 				change a buffer name or change directory
 				here.
+				{only available with the +eval feature}
 							*Syntax*
 Syntax				When the 'syntax' option has been set.  The
 				pattern is matched against the syntax name.
@@ -1003,6 +1007,7 @@
 				called recursively.
 				It is not allowed to change the buffer text,
 				see |textlock|.
+				{only when compiled with the +eval feature}
 							*User*
 User				Never executed automatically.  To be used for
 				autocommands that are only executed with
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 51f059f..e153f2f 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.0.  Last change: 2018 Feb 27
+*eval.txt*	For Vim version 8.0.  Last change: 2018 Mar 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2435,6 +2435,7 @@
 term_list()			List	get the list of terminal buffers
 term_scrape({buf}, {row})	List	get row of a terminal screen
 term_sendkeys({buf}, {keys})	none	send keystrokes to a terminal
+term_setrestore({buf}, {command}) none	set command to restore terminal
 term_start({cmd}, {options})	Job	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})
@@ -4885,7 +4886,19 @@
 			[x-pos, y-pos]
 		{timeout} can be used to specify how long to wait in msec for
 		a response from the terminal.  When omitted 100 msec is used.
-
+		Use a longer time for a remote terminal.
+		When using a value less than 10 and no response is received
+		within that time, a previously reported position is returned,
+		if available.  This can be used to poll for the position and
+		do some work in the mean time: >
+			while 1
+			  let res = getwinpos(1)
+			  if res[0] >= 0
+			    break
+			  endif
+			  " Do some work here
+			endwhile
+<
 							*getwinposx()*
 getwinposx()	The result is a Number, which is the X coordinate in pixels of
 		the left hand side of the GUI Vim window. Also works for an
@@ -8348,6 +8361,16 @@
 		means the character CTRL-X.
 		{only available when compiled with the |+terminal| feature}
 
+term_setrestore({buf}, {command})			*term_setrestore()*
+		Set the command to write in a session file to restore the job
+		in this terminal.  The line written in the session file is: >
+			terminal ++curwin ++cols=%d ++rows=%d {command}
+<		Make sure to escape the command properly.
+
+		Use an empty {command} to run 'shell'.
+		Use "NONE" to not restore this window.
+		{only available when compiled with the |+terminal| feature}
+
 term_setsize({buf}, {expr})				*term_setsize()*
 		Not implemented yet.
 		{only available when compiled with the |+terminal| feature}
@@ -8391,6 +8414,8 @@
 				     window; fails if the current buffer
 				     cannot be |abandon|ed
 		   "hidden"	     do not open a window
+		   "norestore"	     do not add the terminal window to a
+				     session file
 		   "term_finish"     What to do when the job is finished:
 					"close": close any windows
 					"open": open window if needed
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index e6902a2..9cb116b 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 8.0.  Last change: 2017 Nov 09
+*gui.txt*       For Vim version 8.0.  Last change: 2018 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -134,7 +134,7 @@
 :winp[os]
 		Display current position of the top left corner of the GUI vim
 		window in pixels.  Does not work in all versions.
-		Also see |getwinposx()| and |getwinposy()|.
+		Also see |getwinpos()|, |getwinposx()| and |getwinposy()|.
 
 :winp[os] {X} {Y}							*E466*
 		Put the GUI vim window at the given {X} and {Y} coordinates.
@@ -992,10 +992,14 @@
 :popu[p] {name}			Popup the menu {name}.  The menu named must
 				have at least one subentry, but need not
 				appear on the menu-bar (see |hidden-menus|).
-				{only available for Win32 and GTK GUI}
+				{only available for Win32 and GTK GUI or in
+				the terminal when compiled with +insert_expand}
 
 :popu[p]! {name}		Like above, but use the position of the mouse
 				pointer instead of the cursor.
+				In the terminal this is the last known
+				position, which is usually at the last click
+				or release (mouse movement is irrelevalt).
 
 Example: >
 	:popup File
@@ -1006,6 +1010,10 @@
 	:popup ]Toolbar
 This creates a popup menu that doesn't exist on the main menu-bar.
 
+Note that in the GUI the :popup command will return immediately, before a
+selection has been made.  In the terminal the commands waits for the user to
+make a selection.
+
 Note that a menu that starts with ']' will not be displayed.
 
 ==============================================================================
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index ffc7091..ca31d3d 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.0.  Last change: 2018 Feb 25
+*options.txt*	For Vim version 8.0.  Last change: 2018 Mar 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -402,8 +402,8 @@
 			used to set the option value in, unless this is a help
 			window, in which case the window below help window is
 			used (skipping the option-window).
-			{not available when compiled without the |+eval| or
-			|+autocmd| features}
+			{not available when compiled without the |+eval|
+			feature}
 
 								*$HOME*
 Using "~" is like using "$HOME", but it is only recognized at the start of an
@@ -1385,8 +1385,7 @@
 			written
 	  nowrite	buffer which will not be written
 	  acwrite	buffer which will always be written with BufWriteCmd
-			autocommands. {not available when compiled without the
-			|+autocmd| feature}
+			autocommands.
 	  quickfix	quickfix buffer, contains list of errors |:cwindow|
 			or list of locations |:lwindow|
 	  help		help buffer (you are not supposed to set this
@@ -2466,8 +2465,6 @@
 'cursorbind' 'crb'	boolean  (default off)
 			local to window
 			{not in Vi}
-			{not available when compiled without the |+cursorbind|
-			feature}
 	When this option is set, as the cursor in the current
 	window moves other cursorbound windows (windows that also have
 	this option set) move their cursors to the corresponding line and
@@ -2918,8 +2915,6 @@
 'eventignore' 'ei'	string	(default "")
 			global
 			{not in Vi}
-			{not available when compiled without the |+autocmd|
-			feature}
 	A list of autocommand event names, which are to be ignored.
 	When set to "all" or when "all" is one of the items, all autocommand
 	events are ignored, autocommands will not be executed.
@@ -3168,8 +3163,6 @@
 'filetype' 'ft'		string (default: "")
 			local to buffer
 			{not in Vi}
-			{not available when compiled without the |+autocmd|
-			feature}
 	When this option is set, the FileType autocommand event is triggered.
 	All autocommands that match with the value of this option will be
 	executed.  Thus the value of 'filetype' is used in place of the file
@@ -5334,6 +5327,8 @@
 	an explanation.
 	When 'buftype' is "nowrite" or "nofile" this option may be set, but
 	will be ignored.
+	Note that the text may actually be the same, e.g. 'modified' is set
+	when using "rA" on an "A".
 
 						*'more'* *'nomore'*
 'more'			boolean	(Vim default: on, Vi default: off)
@@ -5422,6 +5417,8 @@
 
 	In the "popup" model the right mouse button produces a pop-up menu.
 	You need to define this first, see |popup-menu|.
+	In a terminal the popup menu works if Vim is compiled with the
+	|+insert_expand| option.
 
 	Note that you can further refine the meaning of buttons with mappings.
 	See |gui-mouse-mapping|.  But mappings are NOT used for modeless
@@ -6441,6 +6438,8 @@
 	to find files which replace a distributed runtime files.  You can put
 	a directory after $VIMRUNTIME to find files which add to distributed
 	runtime files.
+	When Vim is started with |--clean| the home directory entries are not
+	included.
 	This option cannot be set from a |modeline| or in the |sandbox|, for
 	security reasons.
 
@@ -6459,8 +6458,6 @@
 'scrollbind' 'scb'	boolean  (default off)
 			local to window
 			{not in Vi}
-			{not available when compiled without the |+scrollbind|
-			feature}
 	See also |scroll-binding|.  When this option is set, the current
 	window scrolls as other scrollbind windows (windows that also have
 	this option set) scroll.  This option is useful for viewing the
@@ -6498,8 +6495,6 @@
 						*'scrollopt'* *'sbo'*
 'scrollopt' 'sbo'	string	(default "ver,jump")
 			global
-			{not available when compiled without the |+scrollbind|
-			feature}
 			{not in Vi}
 	This is a comma-separated list of words that specifies how
 	'scrollbind' windows should behave.  'sbo' stands for ScrollBind
@@ -6589,7 +6584,7 @@
 
 						*'sessionoptions'* *'ssop'*
 'sessionoptions' 'ssop'	string	(default: "blank,buffers,curdir,folds,
-					       help,options,tabpages,winsize")
+					 help,options,tabpages,winsize,terminal")
 			global
 			{not in Vi}
 			{not available when compiled without the |+mksession|
@@ -6621,6 +6616,7 @@
 	   tabpages	all tab pages; without this only the current tab page
 			is restored, so that you can make a session for each
 			tab page separately
+	   terminal	include terminal windows where the command can be restored
 	   unix		with Unix end-of-line format (single <NL>), even when
 			on Windows or DOS
 	   winpos	position of the whole Vim window
@@ -7416,7 +7412,6 @@
 	W F   Preview window flag, text is ",PRV".
 	y F   Type of file in the buffer, e.g., "[vim]".  See 'filetype'.
 	Y F   Type of file in the buffer, e.g., ",VIM".  See 'filetype'.
-	      {not available when compiled without |+autocmd| feature}
 	q S   "[Quickfix List]", "[Location List]" or empty.
 	k S   Value of "b:keymap_name" or 'keymap' when |:lmap| mappings are
 	      being used: "<keymap>"
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 75ff404..bb71896 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 8.0.  Last change: 2017 Dec 13
+*quickfix.txt*  For Vim version 8.0.  Last change: 2018 Mar 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -330,9 +330,9 @@
 the error location may not be correct.  If you quit Vim and start again the
 marks are lost and the error locations may not be correct anymore.
 
-If vim is built with |+autocmd| support, two autocommands are available for
-running commands before and after a quickfix command (':make', ':grep' and so
-on) is executed. See |QuickFixCmdPre| and |QuickFixCmdPost| for details.
+Two autocommands are available for running commands before and after a
+quickfix command (':make', ':grep' and so on) is executed. See
+|QuickFixCmdPre| and |QuickFixCmdPost| for details.
 
 						*QuickFixCmdPost-example*
 When 'encoding' differs from the locale, the error messages may have a
@@ -657,8 +657,8 @@
 4. Using :make						*:make_makeprg*
 
 							*:mak* *:make*
-:mak[e][!] [arguments]	1. If vim was built with |+autocmd|, all relevant
-			   |QuickFixCmdPre| autocommands are executed.
+:mak[e][!] [arguments]	1. All relevant |QuickFixCmdPre| autocommands are
+			   executed.
 			2. If the 'autowrite' option is on, write any changed
 			   buffers
 			3. An errorfile name is made from 'makeef'.  If
@@ -670,9 +670,8 @@
 			   errorfile (for Unix it is also echoed on the
 			   screen).
 			5. The errorfile is read using 'errorformat'.
-			6. If vim was built with |+autocmd|, all relevant
-			   |QuickFixCmdPost| autocommands are executed.
-			   See example below.
+			6. All relevant |QuickFixCmdPost| autocommands are
+			   executed.  See example below.
 			7. If [!] is not given the first error is jumped to.
 			8. The errorfile is deleted.
 			9. You can now move through the errors with commands
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index e1e370c..6281040 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.0.  Last change: 2018 Feb 11
+*repeat.txt*    For Vim version 8.0.  Last change: 2018 Mar 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -265,6 +265,7 @@
 			loaded during initialization, see |load-plugins|.
 
 			Also see |pack-add|.
+			{only available when compiled with +eval}
 
 						*:packl* *:packloadall*
 :packl[oadall][!]	Load all packages in the "start" directory under each
@@ -288,6 +289,7 @@
 			An error only causes sourcing the script where it
 			happens to be aborted, further plugins will be loaded.
 			See |packages|.
+			{only available when compiled with +eval}
 
 :scripte[ncoding] [encoding]		*:scripte* *:scriptencoding* *E167*
 			Specify the character encoding used in the script.
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 2b3418b..2358460 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 8.0.  Last change: 2018 Feb 10
+*starting.txt*  For Vim version 8.0.  Last change: 2018 Mar 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 017ca31..35dc720 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6606,6 +6606,7 @@
 gettabvar()	eval.txt	/*gettabvar()*
 gettabwinvar()	eval.txt	/*gettabwinvar()*
 getwininfo()	eval.txt	/*getwininfo()*
+getwinpos()	eval.txt	/*getwinpos()*
 getwinposx()	eval.txt	/*getwinposx()*
 getwinposy()	eval.txt	/*getwinposy()*
 getwinvar()	eval.txt	/*getwinvar()*
@@ -8927,6 +8928,7 @@
 term_list()	eval.txt	/*term_list()*
 term_scrape()	eval.txt	/*term_scrape()*
 term_sendkeys()	eval.txt	/*term_sendkeys()*
+term_setrestore()	eval.txt	/*term_setrestore()*
 term_setsize()	eval.txt	/*term_setsize()*
 term_start()	eval.txt	/*term_start()*
 term_wait()	eval.txt	/*term_wait()*
@@ -8944,6 +8946,8 @@
 termdebug-starting	terminal.txt	/*termdebug-starting*
 termdebug-stepping	terminal.txt	/*termdebug-stepping*
 termdebug-variables	terminal.txt	/*termdebug-variables*
+termdebug_popup	terminal.txt	/*termdebug_popup*
+termdebug_wide	terminal.txt	/*termdebug_wide*
 terminal	terminal.txt	/*terminal*
 terminal-colors	os_unix.txt	/*terminal-colors*
 terminal-cursor-style	terminal.txt	/*terminal-cursor-style*
@@ -8959,6 +8963,7 @@
 terminal-output-codes	term.txt	/*terminal-output-codes*
 terminal-resizing	terminal.txt	/*terminal-resizing*
 terminal-screendump	terminal.txt	/*terminal-screendump*
+terminal-session	terminal.txt	/*terminal-session*
 terminal-size-color	terminal.txt	/*terminal-size-color*
 terminal-special-keys	terminal.txt	/*terminal-special-keys*
 terminal-testing	terminal.txt	/*terminal-testing*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 4bd0373..ff7950c 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.0.  Last change: 2018 Feb 20
+*terminal.txt*	For Vim version 8.0.  Last change: 2018 Mar 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -20,6 +20,7 @@
       Terminal Modes			|Terminal-mode|
       Cursor style			|terminal-cursor-style|
       Special keys			|terminal-special-keys|
+      Session				|terminal-session|
       Unix				|terminal-unix|
       MS-Windows			|terminal-ms-windows|
 2. Remote testing		|terminal-testing|
@@ -163,6 +164,8 @@
 					cannot be |abandon|ed.
 			++hidden	Open the terminal in a hidden buffer,
 					no window will be used.
+			++norestore	Do not include this terminal window
+					in a session file.
 			++rows={height} Use {height} for the terminal window
 					height.  If the terminal uses the full
 					Vim height (no window above or below
@@ -286,6 +289,22 @@
 blinking will also be inverted.
 
 
+Session ~
+							*terminal-session*
+A terminal window will be restored when using a session file, if possible and
+wanted.
+
+If "terminal" was removed from 'sessionoptions' then no terminal windows will
+be restored.
+
+If the job in the terminal was finished the window will not be restored.
+
+If the terminal can be restored, the command that was used to open it will be
+used again.  To change this use the |term_setrestore()| function.  This can
+also be used to not restore a specific terminal by setting the command to
+"NONE".
+
+
 Special keys ~
 							*terminal-special-keys*
 Since the terminal emulator simulates an xterm, only escape sequences that
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 9e704d5..ac647be 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2018 Feb 27
+*todo.txt*      For Vim version 8.0.  Last change: 2018 Mar 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,16 +39,7 @@
 No maintainer for Simplified Chinese translations.
 
 Terminal emulator window:
-- using feedkeys() does not work?  (Charles Sheridan, 2018 Feb 17)
 - Lots of stuff to implement, see src/terminal.c
-- Improve debugger interface:
-    - Implement the right-click popup menu for the terminal. Can use the
-      completion popup menu code and mouse dragging.
-      Use it for "set breakpoint", "remove breakpoint", etc.
-  - Look into the idevim plugin/script.
-- Improve screen dump testing:
-  Add docs for how to properly use the screen dumps for testing, e.g. for
-  syntax highlighting.
 
 Mode message isn't updated on vertical split. (Alexei Averchenko, 2018 Feb 2,
 #2611)
@@ -62,28 +53,28 @@
 - signed integer overflow in getdecchrs() (#2254)
 - undefined left shift in get_string_tv() (#2250)
 
-Patch to fix 'undolevels' in options window. (Yasuhiro Matsumoto, 2018 Feb 14,
-#2645)
-
-Patch to fix fd leak when using jobs. (ichizok, 2018 Feb 16, #2651)
-
-Popup menu is too wide, causing it not to be aligned. (Linwei, 2018 Feb 22,
-#2661)
-
 balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec
 20, #2481)
 Also see #2352, want better control over balloon, perhaps set the position.
 
+Try out background make plugin: 
+  https://github.com/AndrewVos/vim-make-background
+or asyncmake: 
+  https://github.com/yegappan/asyncmake
+
 Cursor in status line after search. (#2530)
 
 Cursor in wrong position when line wraps. (#2540)
 
 Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
 
+Does setting 'cursorline' cause syntax highlighting to slow down?  Perhaps is
+mess up the cache?  (Mike Lee Williams, 2018 Jan 27, #2539)
+
 When using :packadd files under "later" are not used, which is inconsistent
 with packages under "start". (xtal8, #1994)
 
-Column number is wrong whsn using 'linebreak' and 'wrap'. (Keith Smiley, 2018
+Column number is wrong when using 'linebreak' and 'wrap'. (Keith Smiley, 2018
 Jan 15, #2555)
 
 Check argument of systemlist(). (Pavlov)
@@ -94,13 +85,12 @@
 Starting job with cwd option, when the directory does not exist, gives a
 confusing error message. (Wang Shidong, 2018 Jan 2, #2519)
 
-7   Make "ga" show the digraph for a character, if it exists.
-Patch from Christian Brabandt, 2011 Aug 19.
-
 Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
 8, #1757)  Now part of #2322.  Or #2327?  #1757 was re-opened, include that
 first.
 
+Add the debug command line history to viminfo.
+
 ch_sendraw() with long string does not try to read inbetween, which may cause
 a deadlock if the reading side is waiting for the write to finish. (Nate
 Bosch, 2018 Jan 13, #2548)
@@ -115,9 +105,6 @@
 Problem with mouse scroll in tmux. (fcying, #2419)  Might be caused by patch
 8.0.1309.  Removing "held_button = MOUSE_RELEASE;" helps. (2018 Feb 5)
 
-Does setting 'cursorline' cause syntax highlighting to slow down?  Perhaps is
-mess up the cache?  (Mike Lee Williams, 2018 Jan 27, #2539)
-
 Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
 
 With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
@@ -600,8 +587,6 @@
 +channel:
 - Add a separate timeout for opening a socket.  Currently it's fixed at 50
   msec, which is too small for a remote connection. (tverniquet, #2130)
-- Try out background make plugin: 
-  https://github.com/AndrewVos/vim-make-background
 - Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
 - Writing raw mode to a buffer should still handle NL characters as line
   breaks. (Dmitry Zotikov, 2017 Aug 16)
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index f731888..537eb37 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.0.  Last change: 2018 Feb 13
+*usr_41.txt*	For Vim version 8.0.  Last change: 2018 Mar 03
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -885,8 +885,9 @@
 
 GUI:						*gui-functions*
 	getfontname()		get name of current font being used
-	getwinposx()		X position of the GUI Vim window
-	getwinposy()		Y position of the GUI Vim window
+	getwinpos()		position of the Vim window
+	getwinposx()		X position of the Vim window
+	getwinposy()		Y position of the Vim window
 	balloon_show()		set the balloon content
 	balloon_split()		split a message for a balloon
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index d026ea2..0e1e1ab 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.0.  Last change: 2018 Feb 27
+*various.txt*   For Vim version 8.0.  Last change: 2018 Mar 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -306,7 +306,7 @@
 			Here is an overview of the features.
 			The first column shows the smallest version in which
 			they are included:
-			   T	tiny
+			   T	tiny (always)
 			   S	small
 			   N	normal
 			   B	big
@@ -320,7 +320,7 @@
    *+acl*		|ACL| support included
    *+ARP*		Amiga only: ARP support included
 B  *+arabic*		|Arabic| language support
-N  *+autocmd*		|:autocmd|, automatic commands
+T  *+autocmd*		|:autocmd|, automatic commands
 H  *+autoservername*	Automatically enable |clientserver|
 m  *+balloon_eval*	|balloon-eval| support in the GUI. Included when
 			compiling with supported GUI (Motif, GTK, GUI) and
@@ -344,7 +344,7 @@
 B  *+conceal*		"conceal" support, see |conceal| |:syn-conceal| etc.
 N  *+cryptv*		encryption support |encryption|
 B  *+cscope*		|cscope| support
-m  *+cursorbind*	|'cursorbind'| support
+T  *+cursorbind*	|'cursorbind'| support
 m  *+cursorshape*	|termcap-cursor-shape| support
 m  *+debug*		Compiled for debugging.
 N  *+dialog_gui*	Support for |:confirm| with GUI dialog.
diff --git a/runtime/ftplugin/chicken.vim b/runtime/ftplugin/chicken.vim
index 8daa04c..4dc1e57 100644
--- a/runtime/ftplugin/chicken.vim
+++ b/runtime/ftplugin/chicken.vim
@@ -1,5 +1,5 @@
 " CHICKEN-specific Vim customizations
-" Last Change: 2018-01-06
+" Last Change: 2018-03-05
 " Author: Evan Hanson <evhan@foldling.org>
 " Maintainer: Evan Hanson <evhan@foldling.org>
 " URL: https://foldling.org/vim/ftplugin/chicken.vim
@@ -14,34 +14,37 @@
 setl keywordprg=chicken-doc
 
 setl lispwords+=and-let*
-setl lispwords+=begin-for-syntax
 setl lispwords+=compiler-typecase
 setl lispwords+=condition-case
 setl lispwords+=define-compiler-syntax
 setl lispwords+=define-constant
 setl lispwords+=define-external
 setl lispwords+=define-for-syntax
+setl lispwords+=define-foreign-type
 setl lispwords+=define-inline
+setl lispwords+=define-location
 setl lispwords+=define-record
 setl lispwords+=define-record-printer
 setl lispwords+=define-specialization
-setl lispwords+=define-syntax-rule
-setl lispwords+=eval-when
 setl lispwords+=fluid-let
+setl lispwords+=foreign-lambda*
+setl lispwords+=foreign-primitive
+setl lispwords+=foreign-safe-lambda*
+setl lispwords+=functor
 setl lispwords+=handle-exceptions
 setl lispwords+=let-compiler-syntax
+setl lispwords+=let-location
 setl lispwords+=let-optionals
 setl lispwords+=let-optionals*
 setl lispwords+=letrec-values
 setl lispwords+=match
-setl lispwords+=match-lambda
-setl lispwords+=match-lambda*
 setl lispwords+=match-let
 setl lispwords+=match-let*
+setl lispwords+=match-letrec
 setl lispwords+=module
 setl lispwords+=receive
-setl lispwords+=select
 setl lispwords+=set!-values
+setl lispwords+=test-group
 
 let b:undo_ftplugin = b:undo_ftplugin . ' keywordprg<'
 
diff --git a/runtime/ftplugin/scheme.vim b/runtime/ftplugin/scheme.vim
index b7f8e8b..62fd327 100644
--- a/runtime/ftplugin/scheme.vim
+++ b/runtime/ftplugin/scheme.vim
@@ -1,6 +1,6 @@
 " Vim filetype plugin file
 " Language: Scheme (R7RS)
-" Last Change: 2018-01-20
+" Last Change: 2018-03-05
 " Author: Evan Hanson <evhan@foldling.org>
 " Maintainer: Evan Hanson <evhan@foldling.org>
 " Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
@@ -14,25 +14,20 @@
 set cpo&vim
 
 setl lisp
-setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,ex:\|#
+setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,mb:\|,ex:\|#
 setl commentstring=;%s
 setl define=^\\s*(def\\k*
 setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126
 
 let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<'
 
-setl lispwords=begin
-setl lispwords+=case
-setl lispwords+=case-lambda
-setl lispwords+=cond
-setl lispwords+=cond-expand
+setl lispwords=case
 setl lispwords+=define
 setl lispwords+=define-record-type
 setl lispwords+=define-syntax
 setl lispwords+=define-values
 setl lispwords+=do
 setl lispwords+=guard
-setl lispwords+=import
 setl lispwords+=lambda
 setl lispwords+=let
 setl lispwords+=let*
diff --git a/runtime/indent/html.vim b/runtime/indent/html.vim
index 3769784..b105dca 100644
--- a/runtime/indent/html.vim
+++ b/runtime/indent/html.vim
@@ -2,7 +2,7 @@
 " Header: "{{{
 " Maintainer:	Bram Moolenaar
 " Original Author: Andy Wokula <anwoku@yahoo.de>
-" Last Change:	2017 Jun 13
+" Last Change:	2018 Mar 09
 " Version:	1.0
 " Description:	HTML indent script with cached state for faster indenting on a
 "		range of lines.
@@ -56,6 +56,9 @@
 set cpo-=C
 "}}}
 
+" Pattern to match the name of a tag, including custom elements.
+let s:tagname = '\w\+\(-\w\+\)*'
+
 " Check and process settings from b:html_indent and g:html_indent... variables.
 " Prefer using buffer-local settings over global settings, so that there can
 " be defaults for all HTML files and exceptions for specific types of HTML
@@ -280,7 +283,7 @@
   let s:nextrel = 0  " relative indent steps for next line [unit &sw]:
   let s:block = 0		" assume starting outside of a block
   let s:countonly = 1	" don't change state
-  call substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
+  call substitute(a:text, '<\zs/\=' . s:tagname . '\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
   let s:countonly = 0
 endfunc "}}}
 
@@ -292,7 +295,7 @@
   let s:nextrel = 0  " relative indent steps for next line [unit &sw]:
 
   let s:block = b:hi_newstate.block
-  let tmp = substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
+  let tmp = substitute(a:text, '<\zs/\=' . s:tagname . '\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
   if s:block == 3
     let b:hi_newstate.scripttype = s:GetScriptType(matchstr(tmp, '\C.*<SCRIPT\>\zs[^>]*'))
   endif
@@ -530,7 +533,7 @@
   let swendtag = match(text, '^\s*</') >= 0
 
   " If previous line ended in a closing tag, line up with the opening tag.
-  if !swendtag && text =~ '</\w\+\s*>\s*$'
+  if !swendtag && text =~ '</' . s:tagname . '\s*>\s*$'
     call cursor(state.lnum, 99999)
     normal! F<
     let start_lnum = HtmlIndent_FindStartTag()
@@ -860,7 +863,7 @@
   " The cursor must be on or before a closing tag.
   " If found, positions the cursor at the match and returns the line number.
   " Otherwise returns 0.
-  let tagname = matchstr(getline('.')[col('.') - 1:], '</\zs\w\+\ze')
+  let tagname = matchstr(getline('.')[col('.') - 1:], '</\zs' . s:tagname . '\ze')
   let start_lnum = searchpair('<' . tagname . '\>', '', '</' . tagname . '\>', 'bW')
   if start_lnum > 0
     return start_lnum
@@ -876,7 +879,7 @@
   " a self-closing tag, to the matching ">".
   " Limited to look up to b:html_indent_line_limit lines away.
   let text = getline('.')
-  let tagname = matchstr(text, '\w\+\|!--', col('.'))
+  let tagname = matchstr(text, s:tagname . '\|!--', col('.'))
   if tagname == '!--'
     call search('--\zs>')
   elseif s:get_tag('/' . tagname) != 0
@@ -921,9 +924,22 @@
     else
       let idx = match(text, '\s\zs[_a-zA-Z0-9-]\+="')
     endif
+    if idx == -1
+      " try <tag attr
+      let idx = match(text, '<' . s:tagname . '\s\+\zs\w')
+    endif
+    if idx == -1
+      " after just <tag indent one level more
+      let idx = match(text, '<' . s:tagname . '$')
+      if idx >= 0
+	call cursor(lnum, idx)
+	return virtcol('.') + shiftwidth()
+      endif
+    endif
     if idx > 0
-      " Found the attribute.  TODO: assumes spaces, no Tabs.
-      return idx
+      " Found the attribute to align with.
+      call cursor(lnum, idx)
+      return virtcol('.')
     endif
   endwhile
   return -1
diff --git a/runtime/syntax/chicken.vim b/runtime/syntax/chicken.vim
index f934d9d..c3f949f 100644
--- a/runtime/syntax/chicken.vim
+++ b/runtime/syntax/chicken.vim
@@ -1,6 +1,6 @@
 " Vim syntax file
 " Language: Scheme (CHICKEN)
-" Last Change: 2018 Jan 31
+" Last Change: 2018-02-05
 " Author: Evan Hanson <evhan@foldling.org>
 " Maintainer: Evan Hanson <evhan@foldling.org>
 " URL: https://foldling.org/vim/syntax/chicken.vim
@@ -14,7 +14,7 @@
 endif
 
 " Lighten parentheses.
-hi def link schemeParentheses Comment
+hi! def link schemeParentheses Comment
 
 " foo#bar
 syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/