updated for version 7.0201
diff --git a/runtime/autoload/htmlcomplete.vim b/runtime/autoload/htmlcomplete.vim
index 0b4bc5f..c28e3d3 100644
--- a/runtime/autoload/htmlcomplete.vim
+++ b/runtime/autoload/htmlcomplete.vim
@@ -1,7 +1,7 @@
 " Vim completion script
 " Language:	XHTML 1.0 Strict
 " Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change:	2006 Feb 6
+" Last Change:	2006 Feb 18
 
 function! htmlcomplete#CompleteTags(findstart, base)
   if a:findstart
@@ -540,24 +540,26 @@
 		let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
 		return [opentag.">"]
 	endif
-	" Deal with tag completion.
-	let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
-	if opentag == ''
-		" Hack for sometimes failing GetLastOpenTag.
-		" As far as I tested fail isn't GLOT fault but problem
-		" of invalid document - not properly closed tags and other mish-mash.
-		" If returns empty string assume <body>. Safe bet.
-		let opentag = 'body'
-	endif
-	" }}}
 	" Load data {{{
 	if !exists("g:xmldata_xhtml10s")
 		runtime! autoload/xml/xhtml10s.vim
 	endif
 	" }}}
 	" Tag completion {{{
+	" Deal with tag completion.
+	let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
+	if opentag == ''
+		" Hack for sometimes failing GetLastOpenTag.
+		" As far as I tested fail isn't GLOT fault but problem
+		" of invalid document - not properly closed tags and other mish-mash.
+		" Also when document is empty. Return list of *all* tags.
+	    let tags = keys(g:xmldata_xhtml10s)
+		call filter(tags, 'v:val !~ "^vimxml"')
+	else
+		let tags = g:xmldata_xhtml10s[opentag][0]
+	endif
+	" }}}
 
-	let tags = g:xmldata_xhtml10s[opentag][0]
 
 	for m in sort(tags)
 		if m =~ '^'.context
diff --git a/runtime/autoload/xmlcomplete.vim b/runtime/autoload/xmlcomplete.vim
index 22e81a4..6b7b804 100644
--- a/runtime/autoload/xmlcomplete.vim
+++ b/runtime/autoload/xmlcomplete.vim
@@ -1,7 +1,7 @@
 " Vim completion script
 " Language:	XML
 " Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change:	2006 Feb 6
+" Last Change:	2006 Feb 18
 
 " This function will create Dictionary with users namespace strings and values
 " canonical (system) names of data files.  Names should be lowercase,
@@ -319,10 +319,13 @@
 	let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
 	let opentag = substitute(opentag, '^\k*:', '', '')
 	if opentag == ''
-		return []
+		"return []
+	    let tags = keys(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]})
+		call filter(tags, 'v:val !~ "^vimxml"')
+	else
+		let tags = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[opentag][0]
 	endif
 
-	let tags = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[opentag][0]
 	let context = substitute(context, '^\k*:', '', '')
 
 	for m in tags
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index c63d09b..1cf3241 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -89,6 +89,7 @@
 	starting.txt \
 	spell.txt \
 	syntax.txt \
+	tabpage.txt \
 	tagsrch.txt \
 	term.txt \
 	tips.txt \
@@ -211,6 +212,7 @@
 	starting.html \
 	spell.html \
 	syntax.html \
+	tabpage.html \
 	tagsrch.html \
 	tags.html \
 	term.html \
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 3688cda..2ca301b 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.0aa.  Last change: 2006 Feb 13
+*autocmd.txt*   For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -284,6 +284,8 @@
 
 |WinEnter|		after entering another window
 |WinLeave|		before leaving a window
+|TabEnterPost|		after entering another tab page
+|TabLeavePre|		before leaving a tab page
 |CmdwinEnter|		after entering the command-line window
 |CmdwinLeave|		before leaving the command-line window
 
@@ -704,6 +706,14 @@
 				where this option was set, and <amatch> for
 				the new value of 'syntax'.
 				See |:syn-on|.
+							*TabEnterPost*
+TabEnterPost			Just after entering a tab page. |tab-page|
+				Before triggering the WinEnter and BufEnter
+				events.
+							*TabLeavePre*
+TabLeavePre			Just before leaving a tab page. |tab-page|
+				BufLeave and WinLeave events will have been
+				triggered first.
 							*TermChanged*
 TermChanged			After the value of 'term' has changed.  Useful
 				for re-loading the syntax file to update the
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index b39e721..aaf21b0 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt*      For Vim version 7.0aa.  Last change: 2006 Jan 22
+*diff.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -41,6 +41,10 @@
 
 This only works when a standard "diff" command is available.  See 'diffexpr'.
 
+Diffs are local to the current tab page |tab-page|.  You can't see diffs with
+a window in another tab page.  This does make it possible to have several
+diffs at the same time, each in their own tab page.
+
 What happens is that Vim opens a window for each of the files.  This is like
 using the |-O| argument.  This uses vertical splits.  If you prefer horizontal
 splits add the |-o| argument: >
@@ -113,7 +117,7 @@
 							*:diffo* *:diffoff*
 :diffoff	Switch off diff mode for the current window.
 
-:diffoff!	Switch off diff mode for all windows.
+:diffoff!	Switch off diff mode for all windows in the current tab page.
 
 The ":diffoff" command resets the relevant options to their default value.
 This may be different from what the values were before diff mode was started,
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 25dc1a6..b29504c 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.0aa.  Last change: 2006 Jan 20
+*editing.txt*   For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1014,6 +1014,9 @@
 			Vim refuses to |abandon| the current buffer, and when
 			the last file in the argument list has not been
 			edited.
+			If there are other tab pages and quitting the last
+			window in the current tab page the current tab page is
+			closed |tab-page|.
 
 :conf[irm] q[uit]	Quit, but give prompt when changes have been made, or
 			the last file in the argument list has not been
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 0f339e1..9bad529 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 14
+*eval.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1690,6 +1690,7 @@
 				String	attribute {what} of syntax ID {synID}
 synIDtrans( {synID})		Number	translated syntax ID of {synID}
 system( {expr} [, {input}])	String	output of shell command/filter {expr}
+tabpage( [{expr}])		Number	number of current tab page
 taglist( {expr})			List	list of tags matching {expr}
 tagfiles()			List    tags files used
 tempname()			String	name for a temporary file
@@ -1705,7 +1706,7 @@
 wincol()			Number	window column of the cursor
 winheight( {nr})		Number	height of window {nr}
 winline()			Number	window line of the cursor
-winnr()				Number	number of current window
+winnr( [{expr}])		Number	number of current window
 winrestcmd()			String	returns command to restore window sizes
 winwidth( {nr})			Number	width of window {nr}
 writefile({list}, {fname} [, {binary}])
@@ -4447,6 +4448,14 @@
 		Use |:checktime| to force a check.
 
 
+tabpagenr([{arg}])						*tabpagenr()*
+		The result is a Number, which is the number of the current
+		tab page.  The first tab page has number 1.
+		When the optional argument is "$", the number of the last tab
+		page is returned (the tab page count).
+		The number can be used with the |:tab| command.
+
+
 taglist({expr})							*taglist()*
 		Returns a list of tags matching the regular expression {expr}.
 		Each list item is a dictionary with at least the following
@@ -4618,7 +4627,7 @@
 winnr([{arg}])	The result is a Number, which is the number of the current
 		window.  The top window has number 1.
 		When the optional argument is "$", the number of the
-		last window is returnd (the window count).
+		last window is returned (the window count).
 		When the optional argument is "#", the number of the last
 		accessed window is returned (where |CTRL-W_p| goes to).
 		If there is no previous window 0 is returned.
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 999a507..42f0eb1 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt*	For Vim version 7.0aa.  Last change: 2005 Nov 30
+*help.txt*	For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 			VIM - main help file
 									 k
@@ -122,6 +122,7 @@
 |tagsrch.txt|	tags and special searches
 |quickfix.txt|	commands for a quick edit-compile-fix cycle
 |windows.txt|	commands for using multiple windows and buffers
+|tabpage.txt|	commands for using multiple tab pages
 |syntax.txt|	syntax highlighting
 |spell.txt|	spell checking
 |diff.txt|	working with two or three versions of the same file
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index e1788b0..b265ee6 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.0aa.  Last change: 2006 Jan 26
+*index.txt*     For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1305,7 +1305,7 @@
 |:omap|		:om[ap]		like ":map" but for Operator-pending mode
 |:omapclear|	:omapc[lear]	remove all mappings for Operator-pending mode
 |:omenu|	:ome[nu]	add menu for Operator-pending mode
-|:only|		:on[ly]		close all windows except current one
+|:only|		:on[ly]		close all windows except the current one
 |:onoremap|	:ono[remap]	like ":noremap" but for Operator-pending mode
 |:onoremenu|	:onoreme[nu]	like ":noremenu" but for Operator-pending mode
 |:options|	:opt[ions]	open the options-window
@@ -1436,6 +1436,13 @@
 |:syncbind|	:sync[bind]	sync scroll binding
 |:t|		:t		same as ":copy"
 |:tNext|	:tN[ext]	jump to previous matching tag
+|:tabclose|	:tabc[lose]	close current tab page
+|:tabedit|	:tabe[dit]	edit a file in a new tab page
+|:tabfind|	:tabf[ind]	find file in 'path', edit it in a new tab page
+|:tabnew|	:tabn[ew]	edit a file in a new tab page
+|:tabonly|	:tabo[nly]	close all tab pages except the current one
+|:tabs|		:tabs		list the tab pages and what they contain
+|:tab|		:tab		jump to another tab page
 |:tag|		:ta[g]		jump to tag
 |:tags|		:tags		show the contents of the tag stack
 |:tcl|		:tc[l]		execute Tcl command
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index c9aa452..c17074c 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0aa.  Last change: 2006 Feb 14
+*options.txt*	For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5336,6 +5336,8 @@
 	   winsize	window sizes
 
 	Don't include both "curdir" and "sesdir".
+	There is no option to include tab pages yet, only the current tab page
+	is stored in the session. |tab-page|
 	When "curdir" nor "sesdir" is included, file names are stored with
 	absolute paths.
 	"slash" and "unix" are useful on Windows when sharing session files
@@ -6232,6 +6234,19 @@
 	'S' flag in 'cpoptions'.
 	Only normal file name characters can be used, "/\*?[|<>" are illegal.
 
+					*'tabline'* *'tal'*
+'tabline' 'tal'		number	(default 1)
+			global
+			{not in Vi}
+			{not available when compiled without the +windows
+			feature}
+	The value of this option specifies when the line with tab page labels
+	will be displayed:
+		0: never
+		1: only if there are at least two tab pages
+		2: always
+	|tab-page|
+
 					*'tabstop'* *'ts'*
 'tabstop' 'ts'		number	(default 8)
 			local to buffer
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index d21a52d..0b64ca3 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.0aa.  Last change: 2006 Feb 14
+*starting.txt*  For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -374,6 +374,13 @@
 		the command line determines how the windows will be split.
 		{not in Vi}
 
+							*-p*
+-p[N]		Open N tab pages.  If [N] is not given, one tab page is opened
+		for every file given as argument.  The maximum is 10 tab
+		pages.  If there are more tab pages than arguments, the last
+		few tab pages will be editing an empty file.
+		{not in Vi}
+
 							*-T*
 -T {terminal}	Set the terminal type to "terminal".  This influences the
 		codes that Vim will send to your terminal.  This is normally
@@ -831,6 +838,8 @@
 11. Open all windows
 	When the |-o| flag was given, windows will be opened (but not
 	displayed yet).
+	When the |-p| flag was given, tab pages will be created (but not
+	displayed yet).
 	When switching screens, it happens now.  Redrawing starts.
 	If the "-q" flag was given to Vim, the first error is jumped to.
 	Buffers for all windows will be loaded.
@@ -1203,6 +1212,9 @@
   :nmap <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>:so ~/sessions/
 This saves the current Session, and starts off the command to load another.
 
+A session only includes the current tab page.  There currently is no option to
+store all tab pages. |tab-page|
+
 The |SessionLoadPost| autocmd event is triggered after a session file is
 loaded/sourced.
 						*SessionLoad-variable*
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
new file mode 100644
index 0000000..cf95ca2
--- /dev/null
+++ b/runtime/doc/tabpage.txt
@@ -0,0 +1,125 @@
+*tabpage.txt*   For Vim version 7.0aa.  Last change: 2006 Feb 18
+
+
+		  VIM REFERENCE MANUAL    by Bram Moolenaar
+
+
+Editing with windows in multuple tab pages.		*tab-page* *tabpage*
+
+The commands which have been added to use multiple tab pages are explained
+here.  Additionally, there are explanations for commands that work differently
+when used in combination with more than one tab page.
+
+1.  Introduction			|tab-page-intro|
+2.  Commands				|tab-page-commands|
+3.  Other items				|tab-page-other|
+
+{Vi does not have any of these commands}
+{not able to use multiple tab pages when the |+windows| feature was disabled
+at compile time}
+
+==============================================================================
+1. Introduction						*tab-page-intro*
+
+A tab page holds one or more windows.  You can easily switch between tab
+pages, so that you have several collections of windows to work on different
+things.
+
+Usually you will see a list of labels at the top of the Vim window, one for
+each tab page.  With the mouse you can click on the label to jump to that tab
+page.  There are other ways to move between tab pages, see below.
+
+Most commands work only in the current tab page.  That includes the |CTRL-W|
+commands, |:windo|, |:all| and |:ball|.  The commands that are aware of
+other tab pages than the current one are mentioned below.
+
+Tabs are also a nice way to edit a buffer temporarily without changing the
+current window layout.  Open a new tab page, do whatever you want to do and
+close the tab page.
+
+==============================================================================
+2. Commands						*tab-page-commands*
+
+OPENING A NEW TAB PAGE:
+
+When starting Vim "vim -p filename ..." opens each file argument in a separate
+tab page (up to 10). |-p|
+
+:tabe[dit]						*:tabe* *:tabedit*
+:tabn[ew]	Open a new tab page with an empty window.
+
+:tabe[dit] [++opt] [+cmd] {file}
+:tabn[ew] [++opt] [+cmd] {file}
+		Open a new tab page and edit {file}, like with |:edit|.
+
+:tabf[ind] [++opt] [+cmd] {file}
+		Open a new tab page and edit {file} in 'path', like with
+		|:find|.
+		{not available when the |+file_in_path| feature was disabled
+		at compile time}
+
+
+CLOSING A TAB PAGE:
+
+Using |:close| in the last window of a tab page closes it.
+
+Using the mouse: If the tab page line is displayed you can click in the "X" at
+the top right to close the current tab page. |'tabline'|
+
+							*:tabc* *:tabclose*
+:tabc[lose][!]	Close current tab page.
+		This command fails when:
+		- There is only one tab page on the screen.		*E784*
+		- When 'hidden' is not set, [!] is not used, a buffer has
+		  changes, and there is no other window on this buffer.
+		Changes to the buffer are not written and won't get lost, so
+		this is a "safe" command.
+
+:tabc[lose][!] {count}
+		Close tab page {count}.  Fails in the same way as ':tabclose"
+		above.
+
+							*:tabo* *:tabonly*
+:tabo[nly][!]	Close all other tab pages.
+		When the 'hidden' option is set, all buffers in closed windows
+		become hidden.
+		When 'hidden' is not set, and the 'autowrite' option is set,
+		modified buffers are written.  Otherwise, windows that have
+		buffers that are modified are not removed, unless the [!] is
+		given, then they become hidden.  But modified buffers are
+		never abandoned, so changes cannot get lost.
+
+
+SWITCHING TO ANOTHER TAB PAGE:
+
+Using the mouse: If the tab page line is displayed you can click in a tab page
+label to switch to that tab page. |'tabline'|
+
+:tab							*:tab* *gt*
+gt		Go to the next tab page.  Wraps around from the last to the
+		first one.
+
+:tab {count}
+{count}gt	Go to tab page {count}.  The first tab page has number one.
+
+
+Other commands:
+							*:tabs*
+:tabs		List the tab pages and the windows they contain.  Shows a "+"
+		for modified buffers.
+
+==============================================================================
+3. Other items						*tab-page-other*
+
+You can use the 'tabline' option to specify when you want the line with tab
+page labels to appear: never, when there is more than one tab page or always.
+
+Diff mode works per tab page.  You can see the diffs between several files
+within one tab page.  Other tab pages can show differences between other
+files.
+
+The TabLeavePre and TabEnterPost autocommand events can be used to do
+something when switching from one tab page to another.
+
+
+ vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index fdaa136..514ca29 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -892,6 +892,7 @@
 't_vs'	term.txt	/*'t_vs'*
 't_xs'	term.txt	/*'t_xs'*
 'ta'	options.txt	/*'ta'*
+'tabline'	options.txt	/*'tabline'*
 'tabstop'	options.txt	/*'tabstop'*
 'tag'	options.txt	/*'tag'*
 'tagbsearch'	options.txt	/*'tagbsearch'*
@@ -899,6 +900,7 @@
 'tagrelative'	options.txt	/*'tagrelative'*
 'tags'	options.txt	/*'tags'*
 'tagstack'	options.txt	/*'tagstack'*
+'tal'	options.txt	/*'tal'*
 'tb'	options.txt	/*'tb'*
 'tbi'	options.txt	/*'tbi'*
 'tbidi'	options.txt	/*'tbidi'*
@@ -1224,6 +1226,7 @@
 -n	starting.txt	/*-n*
 -nb	starting.txt	/*-nb*
 -o	starting.txt	/*-o*
+-p	starting.txt	/*-p*
 -q	starting.txt	/*-q*
 -qf	starting.txt	/*-qf*
 -r	starting.txt	/*-r*
@@ -2638,6 +2641,14 @@
 :tN	tagsrch.txt	/*:tN*
 :tNext	tagsrch.txt	/*:tNext*
 :ta	tagsrch.txt	/*:ta*
+:tab	tabpage.txt	/*:tab*
+:tabc	tabpage.txt	/*:tabc*
+:tabclose	tabpage.txt	/*:tabclose*
+:tabe	tabpage.txt	/*:tabe*
+:tabedit	tabpage.txt	/*:tabedit*
+:tabo	tabpage.txt	/*:tabo*
+:tabonly	tabpage.txt	/*:tabonly*
+:tabs	tabpage.txt	/*:tabs*
 :tag	tagsrch.txt	/*:tag*
 :tags	tagsrch.txt	/*:tags*
 :tc	if_tcl.txt	/*:tc*
@@ -3875,6 +3886,7 @@
 E781	spell.txt	/*E781*
 E782	spell.txt	/*E782*
 E783	spell.txt	/*E783*
+E784	tabpage.txt	/*E784*
 E79	message.txt	/*E79*
 E80	message.txt	/*E80*
 E800	arabic.txt	/*E800*
@@ -4086,6 +4098,8 @@
 TERM	starting.txt	/*TERM*
 TTpro-telnet	syntax.txt	/*TTpro-telnet*
 Tab	intro.txt	/*Tab*
+TabEnterPost	autocmd.txt	/*TabEnterPost*
+TabLeavePre	autocmd.txt	/*TabLeavePre*
 Tcl	if_tcl.txt	/*Tcl*
 TermChanged	autocmd.txt	/*TermChanged*
 TermResponse	autocmd.txt	/*TermResponse*
@@ -5340,6 +5354,7 @@
 gs	various.txt	/*gs*
 gsp.vim	syntax.txt	/*gsp.vim*
 gstar	pattern.txt	/*gstar*
+gt	tabpage.txt	/*gt*
 gtk-tooltip-colors	gui_x11.txt	/*gtk-tooltip-colors*
 gu	change.txt	/*gu*
 gugu	change.txt	/*gugu*
@@ -5429,6 +5444,7 @@
 hebrew.txt	hebrew.txt	/*hebrew.txt*
 help	various.txt	/*help*
 help-context	help.txt	/*help-context*
+help-tags	tags	1
 help-translated	various.txt	/*help-translated*
 help-xterm-window	various.txt	/*help-xterm-window*
 help.txt	help.txt	/*help.txt*
@@ -6927,6 +6943,13 @@
 t_vs	term.txt	/*t_vs*
 t_xs	term.txt	/*t_xs*
 tab	intro.txt	/*tab*
+tab-page	tabpage.txt	/*tab-page*
+tab-page-commands	tabpage.txt	/*tab-page-commands*
+tab-page-intro	tabpage.txt	/*tab-page-intro*
+tab-page-other	tabpage.txt	/*tab-page-other*
+tabpage	tabpage.txt	/*tabpage*
+tabpage.txt	tabpage.txt	/*tabpage.txt*
+tabpagenr()	eval.txt	/*tabpagenr()*
 tag	tagsrch.txt	/*tag*
 tag-!	tagsrch.txt	/*tag-!*
 tag-any-white	tagsrch.txt	/*tag-any-white*
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index 2fc1bee..30c548d 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -1,4 +1,4 @@
-*tips.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 16
+*tips.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -450,11 +450,13 @@
 This example shows the use of a few advanced tricks:
 - using the |CursorMoved| autocommand event
 - using |searchpairpos()| to find a matching paren
+- using |synID()| to detect whether the cursor is in a string or comment
 - using |:match| to highlight something
 - using a |pattern| to match a specific position in the file.
 
 This should be put in a Vim script file, since it uses script-local variables.
-Note that it doesn't recognize strings or comments in the text.
+It skips matches in strings or comments, unless the cursor started in string
+or comment.  This requires syntax highlighting.
 >
 	let s:paren_hl_on = 0
 	function s:Highlight_Matching_Paren()
@@ -484,8 +486,11 @@
 	    let c = '\['
 	    let c2 = '\]'
 	  endif
+	  let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
+ 	  	\ '=~?  "string\\|comment"'
+ 	  execute 'if' s_skip '| let s_skip = 0 | endif'
 
-	  let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags)
+	  let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip)
 
 	  if m_lnum > 0 && m_lnum >= line('w0') && m_lnum <= line('w$')
 	    exe 'match Search /\(\%' . c_lnum . 'l\%' . c_col .
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 2912a58..4c65d1d 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 17
+*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -32,52 +32,15 @@
 
 Support WINDOW TABS.  Works like several pages, each with their own split
 windows.  Let's call them "tab pages".
-    - Add tabpage(): returns current tab page number.
-    - ":tabsplit" makes a copy of the current tab page.
-    - Add TabLeavePre and TabEnterPost autocommands
     - line at top of frame with tabs.
 	Add 'tabtext' option, like 'statusline'.
-    - check for E999
-    - docs:
-	General remark: commands that work on windows only work on the windows
-	    in the current tab page.  Including :windo.
-	Session file only contains the current tab page.
-	:tabedit
-	:tabfind
-	:tab N
-	:tabs
-	{count}gt
-	:close may close current tab page if there is one window.
-	:tabclose
-	:tabclose N - close tab N
-	:tabonly - close all other tabs.
-	:close and :quit (last window in tab)
-	"gt": Use "1gt" - "99gt" to switch to another tab.  "gt" goes to the
-	     next one.  Hint in docs: To mess with another buffer, without
-	     changing the window layout, do this in another tab.
-	'tabline' values 0/1/2
-	mouse click in tabline:
-	    select a tab page
-	    X closes current tab page
-	:argall and :ball only opens window for buffers that are not in any
-	      window in any tab page
-	:diffoff only works in the current tab page
-	diff works per tab page
-        "vim -p *" opens each file in a separate tab page (up to 10).
-    - add GUI Tabs for some systems.
-      Patch for GTK 1.2 passed on by Christian Michon, 2004 Jan 6.
-      Simple patch for GTK by Luis M (nov 7).
     - Need to be able to search the windows in inactive tabs, e.g. for the
-      quickfix window.
-Future enhancements:
-    tab page local variables?
-    tab page local options?  'diffopt' could differ between tab pages.
-    tab page local colors?
+      quickfix window?
+    - docs:
+	Add info to the user manual somewhere.
 
 Crash with X command server (Ciaran McCreesh).
 
-Motif: in diff mode dragging one scrollbar doesn't update the other one.
-
 Ctags still hasn't included the patch.  Darren is looking for someone to do
 maintanance.
 
@@ -494,6 +457,16 @@
 Check if file explorer can handle directory names and links with a single
 quote. (Nieko Maatjes, 2005 Jan 4)
 
+Future enhancements for tab pages:
+    - Add GUI Tabs for all systems.
+      Patch for GTK 1.2 passed on by Christian Michon, 2004 Jan 6.
+      Simple patch for GTK by Luis M (nov 7).
+    - ":tabsplit" makes a copy of the current tab page.
+    - Add local variables for each tab page?
+    - Add local options for each tab page?  E.g., 'diffopt' could differ
+      between tab pages.
+    - Add local highlighting for a tab page?
+
 
 Vi incompatibility:
 8   With undo/redo only marks in the changed lines should be changed.  Other
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 7f7c092..7f93bcf 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2006 Feb 17
+*version7.txt*  For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1707,4 +1707,7 @@
 When "umask" is set such that nothing is writable then the viminfo file would
 be written without write permission. (Julian Bridle)
 
+Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the
+other diff'ed window.
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 8e38965..a83bdd2 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.0aa.  Last change: 2006 Jan 27
+*windows.txt*   For Vim version 7.0aa.  Last change: 2006 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -68,6 +68,9 @@
 Note: All CTRL-W commands can also be executed with |:wincmd|, for those
 places where a Normal mode command can't be used or is inconvenient.
 
+The main Vim window can hold several split windows.  There are also tab pages
+|tab-page|, each of which can hold multiple windows.
+
 ==============================================================================
 2. Starting Vim						*windows-starting*
 
@@ -255,6 +258,9 @@
 :clo[se][!]	Close current window.  When the 'hidden' option is set, or
 		when the buffer was changed and the [!] is used, the buffer
 		becomes hidden (unless there is another window editing it).
+		When there is only one window in the current tab page and
+		there is another tab page, this closes the current tab page.
+		|tab-page|.
 		This command fails when:			*E444*
 		- There is only one window on the screen.
 		- When 'hidden' is not set, [!] is not used, the buffer has
@@ -271,6 +277,8 @@
 :hid[e]		Quit current window, unless it is the last window on the
 		screen.  The buffer becomes hidden (unless there is another
 		window editing it or 'bufhidden' is "unload" or "delete").
+		If the window is the last one in the current tab page the tab
+		page is closed. |tab-page|
 		The value of 'hidden' is irrelevant for this command.
 		Changes to the buffer are not written and won't get lost, so
 		this is a "safe" command.
@@ -551,6 +559,7 @@
 		Rearrange the screen to open one window for each argument.
 		All other windows are closed.  When a count is given, this is
 		the maximum number of windows to open.
+		Only uses the current tab page |tab-page|.
 		When the 'hidden' option is set, all buffers in closed windows
 		become hidden.
 		When 'hidden' is not set, and the 'autowrite' option is set,
@@ -620,7 +629,8 @@
 				CTRL-W w
 				:{cmd}
 				etc.
-<			When an error is detected on one window, further
+<			This only works in the current tab page.
+			When an error is detected on one window, further
 			windows will not be visited.
 			The last window (or where an error occurred) becomes
 			the current window.
@@ -1073,6 +1083,7 @@
 		of windows opened ('winwidth' if |:vertical| was prepended).
 		Buf/Win Enter/Leave autocommands are not executed for the new
 		windows here, that's only done when they are really entered.
+		Only uses the current tab page |tab-page|.
 
 Note: All the commands above that start editing another buffer, keep the
 'readonly' flag as it was.  This differs from the ":edit" command, which sets