updated for version 7.0064
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 8ff4bac..dc20786 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 17
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Mar 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1452,7 +1452,6 @@
 diff_filler( {lnum})		Number	diff filler lines about {lnum}
 diff_hlID( {lnum}, {col})	Number	diff highlighting at {lnum}/{col}
 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
 eventhandler( )			Number	TRUE if inside an event handler
@@ -1489,6 +1488,7 @@
 getftype( {fname})		String	description of type of file {fname}
 getline( {lnum})		String	line {lnum} of current buffer
 getline( {lnum}, {end})		List	lines {lnum} to {end} of current buffer
+getqflist()			List	list of quickfix items
 getreg( [{regname}])		String	contents of register
 getregtype( [{regname}])	String	type of register
 getwinposx()			Number	X coord in pixels of GUI Vim window
@@ -1574,6 +1574,7 @@
 setbufvar( {expr}, {varname}, {val})	set {varname} in buffer {expr} to {val}
 setcmdpos( {pos})		Number	set cursor position in command-line
 setline( {lnum}, {line})	Number	set line {lnum} to {line}
+setqflist( {list} )		Number	set list of quickfix items using {list}
 setreg( {n}, {v}[, {opt}])	Number	set register to value and type
 setwinvar( {nr}, {varname}, {val})	set {varname} in window {nr} to {val}
 simplify( {filename})		String	simplify filename as much as possible
@@ -2023,28 +2024,6 @@
 		For a long List this is much faster then comparing the length
 		with zero.
 
-errorlist()						*errorlist()*
-		Returns a list with all the current quickfix errors.  Each
-		list item is a dictionary with these entries:
-			bufnr	number of buffer that has the file name, use
-				bufname() to get the name
-			lnum	line number in the buffer (first line is 1)
-			col	column number (first column is 1)
-			vcol	non-zero: column number is visual column
-				zero: column number is byte index
-			nr	error number
-			text	description of the error
-			type	type of the error, 'E', '1', etc.
-			valid	non-zero: recognized error message
-
-		Useful application: Find pattern matches in multiple files and
-		do something with them: >
-			:vimgrep /theword/jg *.c
-			:for d in errorlist()
-			:   echo bufname(d.bufnr) ':' d.lnum '=' d.text
-			:endfor
-
-
 escape({string}, {chars})				*escape()*
 		Escape the characters in {chars} that occur in {string} with a
 		backslash.  Example: >
@@ -2548,6 +2527,28 @@
 			:let lines = getline(start, end)
 
 
+getqflist()						*getqflist()*
+		Returns a list with all the current quickfix errors.  Each
+		list item is a dictionary with these entries:
+			bufnr	number of buffer that has the file name, use
+				bufname() to get the name
+			lnum	line number in the buffer (first line is 1)
+			col	column number (first column is 1)
+			vcol	non-zero: column number is visual column
+				zero: column number is byte index
+			nr	error number
+			text	description of the error
+			type	type of the error, 'E', '1', etc.
+			valid	non-zero: recognized error message
+
+		Useful application: Find pattern matches in multiple files and
+		do something with them: >
+			:vimgrep /theword/jg *.c
+			:for d in getqflist()
+			:   echo bufname(d.bufnr) ':' d.lnum '=' d.text
+			:endfor
+
+
 getreg([{regname}])					*getreg()*
 		The result is a String, which is the contents of register
 		{regname}. Example: >
@@ -3590,6 +3591,34 @@
 			:call setline(5, strftime("%c"))
 <		Note: The '[ and '] marks are not set.
 
+
+setqflist({list})					*setqflist()*
+		Creates a quickfix list using the items in {list}.  Each item
+		in {list} is a dictionary.  Non-dictionary items in {list} are
+		ignored.  Each dictionary item can contain the following
+		entries:
+
+		    filename	name of a file
+		    lnum	line number in the file
+		    col		column number
+		    pattern	search pattern used to locate the error
+		    text	description of the error
+
+		The "col" and "text" entries are optional.  Either "lnum" or
+		"pattern" entry can be used to locate a matching error line.
+		If the "filename" entry is not present or neither the "lnum"
+		or "pattern" entries are present, then the item will not be
+		handled as an error line.
+		If both "pattern" and "lnum" are present then "pattern" will
+		be used.
+
+		Returns zero for success, -1 for failure.
+
+		This function can be used to create a quickfix list
+		independent of the 'errorformat' setting.  Use a command like
+		":cc 1" to jump to the first position.
+
+
 							*setreg()*
 setreg({regname}, {value} [,{options}])
 		Set the register {regname} to {value}.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index a1b79f8..ecf5fcf 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4689,7 +4689,6 @@
 errorformat-multi-line	quickfix.txt	/*errorformat-multi-line*
 errorformat-separate-filename	quickfix.txt	/*errorformat-separate-filename*
 errorformats	quickfix.txt	/*errorformats*
-errorlist()	eval.txt	/*errorlist()*
 escape	intro.txt	/*escape*
 escape()	eval.txt	/*escape()*
 escape-bar	version4.txt	/*escape-bar*
@@ -4977,6 +4976,7 @@
 getftime()	eval.txt	/*getftime()*
 getftype()	eval.txt	/*getftype()*
 getline()	eval.txt	/*getline()*
+getqflist()	eval.txt	/*getqflist()*
 getreg()	eval.txt	/*getreg()*
 getregtype()	eval.txt	/*getregtype()*
 getwinposx()	eval.txt	/*getwinposx()*
@@ -6175,6 +6175,7 @@
 setbufvar()	eval.txt	/*setbufvar()*
 setcmdpos()	eval.txt	/*setcmdpos()*
 setline()	eval.txt	/*setline()*
+setqflist()	eval.txt	/*setqflist()*
 setreg()	eval.txt	/*setreg()*
 setting-guifont	gui.txt	/*setting-guifont*
 setwinvar()	eval.txt	/*setwinvar()*
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 2734989..e765b33 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.0aa.  Last change: 2005 Mar 15
+*usr_41.txt*	For Vim version 7.0aa.  Last change: 2005 Mar 25
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -723,7 +723,7 @@
 	input()			get a line from the user
 	inputsecret()		get a line from the user without showing it
 	inputdialog()		get a line from the user in a dialog
-	inputresave		save and clear typeahead
+	inputsave()		save and clear typeahead
 	inputrestore()		restore typeahead
 
 Vim server:
@@ -745,7 +745,7 @@
 	maparg()		get rhs of a mapping
 	exists()		check if a variable, function, etc. exists
 	has()			check if a feature is supported in Vim
-	errorlist()		list of quickfix errors
+	getqflist()		list of quickfix errors
 	cscope_connection()	check if a cscope connection exists
 	did_filetype()		check if a FileType autocommand was used
 	eventhandler()		check if invoked by an event handler
@@ -757,6 +757,7 @@
 	libcallnr()		idem, returning a number
 	getreg()		get contents of a register
 	getregtype()		get type of a register
+	setqflist()		create a quickfix list
 	setreg()		set contents and type of a register
 	taglist()		get list of matching tags
 
diff --git a/runtime/ftplugin.vim b/runtime/ftplugin.vim
index d081326..9226566 100644
--- a/runtime/ftplugin.vim
+++ b/runtime/ftplugin.vim
@@ -1,7 +1,7 @@
 " Vim support file to switch on loading plugins for file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2004 Nov 22
+" Last change:	2005 Mar 25
 
 if exists("did_load_ftplugin")
   finish
@@ -11,11 +11,11 @@
 augroup filetypeplugin
   au FileType * call s:LoadFTPlugin()
   func! s:LoadFTPlugin()
+    if exists("b:undo_ftplugin")
+      exe b:undo_ftplugin
+      unlet! b:undo_ftplugin b:did_ftplugin
+    endif
     if expand("<amatch>") != ""
-      if exists("b:undo_ftplugin")
-	exe b:undo_ftplugin
-	unlet! b:undo_ftplugin b:did_ftplugin
-      endif
       if &cpo =~# "S" && exists("b:did_ftplugin")
 	" In compatible mode options are reset to the global values, need to
 	" set the local values also when a plugin was already used.
diff --git a/runtime/lang/menu_ko_kr.utf-8.vim b/runtime/lang/menu_ko_kr.utf-8.vim
index e08d9ba..8e507d5 100644
--- a/runtime/lang/menu_ko_kr.utf-8.vim
+++ b/runtime/lang/menu_ko_kr.utf-8.vim
@@ -48,7 +48,7 @@
 menutrans Put\ &Before<Tab>[p		앞에\ 붙이기(&B)<Tab>[p
 menutrans Put\ &After<Tab>]p		뒤에\ 붙이기(&A)<Tab>]p
 menutrans &Delete<Tab>x			지우기(&D)<Tab>x
-menutrans &Select\ all<Tab>ggVG		모두\ 고르기(&S)<Tab>ggVG
+menutrans &Select\ All<Tab>ggVG		모두\ 고르기(&S)<Tab>ggVG
 menutrans &Find\.\.\.			찾기(&F)\.\.\.
 menutrans Find\ and\ Rep&lace\.\.\.	찾아서\ 바꾸기(&l)\.\.\.
 menutrans Settings\ &Window		설정\ 창(&W)
@@ -229,7 +229,7 @@
 
 " Syntax menu
 menutrans &Syntax		문법(&S)
-menutrans &Show\ individual\ choices  모든\ 선택가능한\ 항목\ 보기(&S)
+menutrans &Show\ filetypes\ in\ menu	모든\ 선택가능한\ 항목\ 보기(&S)
 menutrans Set\ '&syntax'\ only	'syntax'만\ 설정(&s)
 menutrans Set\ '&filetype'\ too	'filetype'도\ 설정(&f)
 menutrans &Off			끄기(&O)
diff --git a/runtime/spell/en.spl b/runtime/spell/en.spl
index 9279da1..7ebdb0f 100644
--- a/runtime/spell/en.spl
+++ b/runtime/spell/en.spl
@@ -1,6 +1,6 @@
 # Language:   English
 # Maintainer: Charles E. Campbell, Jr.  <charles.e.campbell.1@gsfc.nasa.gov>
-# Last Change: 2005 Mar 22
+# Last Change: 2005 Mar 23
 a
 aardvark
 aardvarks
@@ -186689,6 +186689,7 @@
 you've
 MS-Windows
 MS-DOS
+Ltd.
 
 # What may come after any word
 +'s
diff --git a/runtime/syntax/mail.vim b/runtime/syntax/mail.vim
index eca30f4..a45eb61 100644
--- a/runtime/syntax/mail.vim
+++ b/runtime/syntax/mail.vim
@@ -2,7 +2,7 @@
 " Language:		Mail file
 " Previous Maintainer:	Felix von Leitner <leitner@math.fu-berlin.de>
 " Maintainer:		Gautam Iyer <gautam@math.uchicago.edu>
-" Last Change:		Thu 10 Feb 2005 09:46:26 AM CST
+" Last Change:		2005 Mar 23
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -36,14 +36,14 @@
 syn match	mailSubject	contained "\v(^(\> ?)*)@<=subject:.*$"
 
 " Anything in the header between < and > is an email address
-syn match	mailHeaderEmail	contained "<.\{-}>"
+syn match	mailHeaderEmail	contained "<.\{-}>" contains=@NoSpell
 
 " Mail Signatures. (Begin with "-- ", end with change in quote level)
 syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps start="^\z(\(> \?\)*\)-- $" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1
 
 " URLs start with a known protocol or www,web,w3.
-syn match mailURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' 	<>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' 	<>"]+)[a-z0-9/]`
-syn match mailEmail "\v[_=a-z\./+0-9-]+\@[a-z0-9._-]+\a{2}"
+syn match mailURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' 	<>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' 	<>"]+)[a-z0-9/]` contains=@NoSpell
+syn match mailEmail "\v[_=a-z\./+0-9-]+\@[a-z0-9._-]+\a{2}" contains=@NoSpell
 
 " Make sure quote markers in regions (header / signature) have correct color
 syn match mailQuoteExp1	contained "\v^(\> ?)"
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index ac52ce2..ab76273 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Dr. Charles E. Campbell, Jr.  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:		Mar 02, 2005
-" Version:		73
+" Last Change:		Mar 24, 2005
+" Version:		74
 " URL:		http://www.erols.com/astronaut/vim/index.html#vimlinks_syntax
 "
 " Using the following VIM variables: {{{1
@@ -169,7 +169,7 @@
 " ====
 syn match   shCaseBar	contained skipwhite "[^|"`'()]\{-}|"hs=e		nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
 syn match   shCaseStart	contained skipwhite skipnl "("			nextgroup=shCase,shCaseBar
-syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="[^$()]\{-})"ms=s,hs=e  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,,shComment
+syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="[^#$()]\{-})"ms=s,hs=e  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,,shComment
 syn region  shCaseEsac	matchgroup=shConditional start="\<case\>" end="\<esac\>"	contains=@shCaseEsacList
 syn keyword shCaseIn	contained skipwhite skipnl in			nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
 if exists("b:is_bash")
diff --git a/runtime/syntax/vimspell.vim b/runtime/syntax/vimspell.vim
index 379fe31..4c4149b 100644
--- a/runtime/syntax/vimspell.vim
+++ b/runtime/syntax/vimspell.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Vim spell file
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2005 Mar 22
+" Last Change:	2005 Mar 24
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -11,7 +11,7 @@
 syn match vimspellError		".*"
 syn match vimspellRegion	"^---$"
 syn match vimspellRegion	"^\(-\l\l\)\+$"
-syn match vimspellOK		"^!\=[>+]\=[[:alpha:]]\S*"
+syn match vimspellOK		"^!\=[>+]\=[[:alpha:]].*"
 syn match vimspellOK		"^!\=+\S*"
 syn match vimspellError		"\s\+$"
 syn match vimspellOK		"^$"