diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 9e4f850..0e8d3fc 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Mar 07
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Mar 15
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -9,7 +9,7 @@
 Using expressions is introduced in chapter 41 of the user manual |usr_41.txt|.
 
 Note: Expression evaluation can be disabled at compile time.  If this has been
-done, the features in this document are not available.  See |+eval| and 
+done, the features in this document are not available.  See |+eval| and
 |no-eval-feature|.
 
 1.  Variables			|variables|
@@ -445,7 +445,7 @@
 adict.
 
 Weeding out entries from a Dictionary can be done with |filter()|: >
-	:call filter(dict 'v:val =~ "x"') 
+	:call filter(dict 'v:val =~ "x"')
 This removes all entries from "dict" with a value not matching 'x'.
 
 
@@ -1454,7 +1454,7 @@
 empty( {expr})			Number	TRUE if {expr} is empty
 errorlist()			List	list of quickfix items
 escape( {string}, {chars})	String	escape {chars} in {string} with '\'
-eval( {string})			any	evaluate {string} into its value 
+eval( {string})			any	evaluate {string} into its value
 eventhandler( )			Number	TRUE if inside an event handler
 executable( {expr})		Number	1 if executable {expr} exists
 exists( {expr})			Number	TRUE if {expr} exists
@@ -1597,6 +1597,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}
+taglist({expr})			List	list of tags matching {expr}
 tempname()			String	name for a temporary file
 tolower( {expr})		String	the String {expr} switched to lowercase
 toupper( {expr})		String	the String {expr} switched to uppercase
@@ -2494,7 +2495,7 @@
 			:echo getfperm("/etc/passwd")
 <		This will hopefully (from a security point of view) display
 		the string "rw-r--r--" or even "rw-------".
-  
+
 getftime({fname})					*getftime()*
 		The result is a Number, which is the last modification time of
 		the given file {fname}.  The value is measured as seconds
@@ -3706,7 +3707,7 @@
 			:let comma1 = stridx(line, ",")
 			:let comma2 = stridx(line, ",", comma1 + 1)
 <		The search is done case-sensitive.
-		For pattern searches use |match()|. 
+		For pattern searches use |match()|.
 		-1 is returned if the {needle} does not occur in {haystack}.
 		See also |strridx()|.
 		Examples: >
@@ -3852,6 +3853,7 @@
 		"reverse"	"1" if reverse
 		"inverse"	"1" if inverse (= reverse)
 		"underline"	"1" if underlined
+		"undercurl"	"1" if undercurled
 
 		Example (echoes the color of the syntax item under the
 		cursor): >
@@ -3891,6 +3893,39 @@
 		Unlike ":!cmd" there is no automatic check for changed files.
 		Use |:checktime| to force a check.
 
+
+taglist({expr})							*taglist()*
+		Returns a list of tags matching the regular expression {expr}.
+		Each list item is a dictionary with the following entries:
+			name		name of the tag.
+			filename	name of the file where the tag is
+					defined.
+			cmd		Ex command used to locate the tag in
+					the file.
+			kind		type of the tag. The value for this
+					entry depends on the language specific
+					kind values generated by the ctags
+					tool.
+			static		a file specific tag.  Refer to
+					|static-tag| for more information.
+		More entries may be present, depending on the content of the
+		tags file: access, implementation, inherits and signature.
+		Refer to the ctags documentation for information about these
+		fields.  For C code the fields "struct", "class" and "enum"
+		may appear, they give the name of the entity the tag is
+		contained in.
+
+		If there are no matching tags, then an empty list is returned.
+
+		To get an exact tag match, the anchors '^' and '$' should be
+		used in {expr}.  Refer to |tag-regexp| for more information
+		about the tag search regular expression pattern.
+
+		Refer to |'tags'| for information about how the tags file is
+		located by Vim. Refer to |tags-file-format| for the format of
+		the tags file generated by the different ctags tools.
+
+
 tempname()					*tempname()* *temp-file-name*
 		The result is a String, which is the name of a file that
 		doesn't exist.  It can be used for a temporary file.  The name
