updated for version 7.1b
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index f42b1bf..8842e3d 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt*  For Vim version 7.1a.  Last change: 2007 May 03
+*if_mzsch.txt*  For Vim version 7.1b.  Last change: 2007 May 03
 
 
 		  VIM REFERENCE MANUAL    by Sergey Khorev
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index 930522d..82235f2 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt*   For Vim version 7.1a.  Last change: 2006 Mar 06
+*if_perl.txt*   For Vim version 7.1b.  Last change: 2006 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Sven Verdoolaege
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index fd8aea5..f9d1d56 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.1a.  Last change: 2007 Mar 17
+*indent.txt*    For Vim version 7.1b.  Last change: 2007 May 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -113,7 +113,7 @@
 "<!>", respectively, for those keys.
 
 For an emacs-style indent mode where lines aren't indented every time you
-press Enter but only if you press Tab, I suggest:
+press <Enter> but only if you press Tab, I suggest:
 	:set cinkeys=0{,0},:,0#,!<Tab>,!^F
 You might also want to switch off 'autoindent' then.
 
@@ -515,6 +515,28 @@
 	let g:pyindent_continue = '&sw * 2'
 
 
+SHELL							*ft-sh-indent*
+
+The amount of indent applied under various circumstances in a shell file can
+be configured by setting the following keys in the |Dictionary|
+b:sh_indent_defaults to a specific amount or to a |Funcref| that references a
+function that will return the amount desired:
+
+b:sh_indent_options['default']	Default amount of indent.
+
+b:sh_indent_options['continuation-line']
+				Amount of indent to add to a continued line.
+
+b:sh_indent_options['case-labels']
+				Amount of indent to add for case labels.
+
+b:sh_indent_options['case-statement']
+				Amount of indent to add for case statements.
+
+b:sh_indent_options['case-breaks']
+				Amount of indent to add (or more likely
+				remove) for case breaks.
+
 VERILOG							*ft-verilog-indent*
 
 General block statements such as if, for, case, always, initial, function,
diff --git a/runtime/doc/os_risc.txt b/runtime/doc/os_risc.txt
index 2756f22..8311080 100644
--- a/runtime/doc/os_risc.txt
+++ b/runtime/doc/os_risc.txt
@@ -1,4 +1,4 @@
-*os_risc.txt*   For Vim version 7.1a.  Last change: 2005 Mar 29
+*os_risc.txt*   For Vim version 7.1b.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Thomas Leonard
diff --git a/runtime/doc/pi_getscript.txt b/runtime/doc/pi_getscript.txt
index 10d9387..23eee4e 100644
--- a/runtime/doc/pi_getscript.txt
+++ b/runtime/doc/pi_getscript.txt
@@ -1,4 +1,4 @@
-*pi_getscript.txt*  For Vim version 7.1a.  Last change: 2007 Apr 26
+*pi_getscript.txt*  For Vim version 7.1b.  Last change: 2007 May 08
 >
 		GETSCRIPT REFERENCE MANUAL  by Charles E. Campbell, Jr.
 <
@@ -136,7 +136,7 @@
 out-of-date.
 
 The SourceID is extracted by GetLatestVimScripts from the script's page on
-vim.sf.net; whenever its greater than the one stored in the
+vim.sf.net; whenever it's greater than the one stored in the
 GetLatestVimScripts.dat file, the script will be downloaded
 (see |GetLatestVimScripts_dat|).
 
@@ -309,7 +309,7 @@
 
 is a line specifying the latest source-id (src_id).  The source identifier
 numbers are always increasing, hence if the src_id is greater than the one
-recorded for the script in GetLatestVimScripts then its time to download a
+recorded for the script in GetLatestVimScripts then it's time to download a
 newer copy of that script.
 
 GetLatestVimScripts will then download the script and update its internal
@@ -335,6 +335,8 @@
 ==============================================================================
 9. GetLatestVimScripts History		*getscript-history* *glvs-hist* {{{1
 
+v24 Apr 16, 2007 : * removed save&restore of the fo option during script
+                     loading
 v23 Nov 03, 2006 : * ignores comments (#...)
                    * handles vimballs
 v22 Oct 13, 2006 : * supports automatic use of curl if wget is not
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
index 75eae34..6c19d9a 100644
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -1,4 +1,4 @@
-*pi_vimball.txt*	For Vim version 7.1a.  Last change: 2007 Jan 03
+*pi_vimball.txt*	For Vim version 7.1b.  Last change: 2007 May 08
 
 			       ----------------
 			       Vimball Archiver
@@ -90,6 +90,7 @@
 ==============================================================================
 3. Vimball History					*vimball-history* {{{1
 
+	22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter
 	21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
 	                    handling problem and it now changes \s to /s
 	20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag
@@ -114,7 +115,7 @@
 	10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
 			    functions.  Included some more settings in them
 			    which frequently cause trouble.
-	9  : Apr 26, 2006 * various changes to support Windows prediliction
+	9  : Apr 26, 2006 * various changes to support Windows predilection
 			    for backslashes and spaces in file and directory
 			    names.
 	7  : Apr 25, 2006 * bypasses foldenable
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index cedd911..fe2ebbe 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt*	For Vim version 7.1a.  Last change: 2006 Sep 29
+*pi_zip.txt*	For Vim version 7.1b.  Last change: 2007 May 08
 
 				+====================+
 				| Zip File Interface |
@@ -6,7 +6,7 @@
 
 Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
-Copyright: Copyright (C) 2005,2006 Charles E Campbell, Jr {{{1 *zip-copyright*
+Copyright: Copyright (C) 2005,2006 Charles E Campbell, Jr *zip-copyright*
            Permission is hereby granted to use and distribute this code,
 	   with or without modifications, provided that this copyright
 	   notice is copied with it. Like anything else that's free,
@@ -18,9 +18,10 @@
 
 ==============================================================================
 1. Contents					*zip* *zip-contents*
-   1. Contents..................................................|zip-contents|
-   2. Usage.....................................................|zip-usage|
-   3. History...................................................|zip-history|
+   1. Contents................................................|zip-contents|
+   2. Usage...................................................|zip-usage|
+   3. Additional Extensions...................................|zip-extension|
+   4. History.................................................|zip-history|
 
 ==============================================================================
 2. Usage					*zip-usage* *zip-manual*
@@ -31,14 +32,45 @@
    also write to the file.  Currently, one may not make a new file in
    zip archives via the plugin.
 
-   The zip program supports one option: >
-   	g:zip_shq
+   OPTIONS
+							*zip_shq*
+   Different operating systems may use one or more shells to execute
+   commands.  Zip will try to guess the correct quoting mechanism to
+   allow spaces and whatnot in filenames; however, if it is incorrectly
+   guessing the quote to use for your setup, you may use >
+	g:zip_shq
 <  which by default is a single quote under Unix (') and a double quote
    under Windows (").  If you'd rather have no quotes, simply set
    g:zip_shq to the empty string (let g:zip_shq= "") in your <.vimrc>.
 
+   							*g:zip_unzipcmd*
+   Use this option to specify the program which does the duty of "unzip".
+   Its used during browsing. By default: >
+   	let g:zip_unzipcmd= "unzip"
+<
+							*g:zip_zipcmd*
+   Use this option to specify the program which does the duty of "zip".
+   Its used during the writing (updating) of a file already in a zip
+   file; by default: >
+   	let g:zip_zipcmd= "zip"
+<
+
 ==============================================================================
-3. History					*zip-history*
+3. Additional Extensions					*zip-extension*
+
+   Apparently there are a number of archivers who generate zip files that
+   don't use the .zip extension (.jar, .xpi, etc).  To handle such files,
+   place a line in your <.vimrc> file: >
+
+	au BufReadCmd *.jar,*.xpi call zip#Browse(expand("<amatch>"))
+<
+   One can simply extend this line to accomdate additional extensions that
+   are actually zip files.
+
+==============================================================================
+4. History					*zip-history* {{{1
+   v14 May 07, 2007 * using b:zipfile instead of w:zipfile to avoid problem
+                      when editing alternate file to bring up a zipfile
    v10 May 02, 2006 * now using "redraw then echo" to show messages, instead
                       of "echo and prompt user"
 		    * g:zip_shq provided to allow for quoting control for the
@@ -62,4 +94,4 @@
    v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
 
 ==============================================================================
-vim:tw=78:ts=8:ft=help
+vim:tw=78:ts=8:ft=help:fdm=marker
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index e782754..c1d5086 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -1,4 +1,4 @@
-*usr_02.txt*	For Vim version 7.1a.  Last change: 2007 Feb 28
+*usr_02.txt*	For Vim version 7.1b.  Last change: 2007 Feb 28
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt
index 48b4b92..08c2d29 100644
--- a/runtime/doc/usr_44.txt
+++ b/runtime/doc/usr_44.txt
@@ -1,4 +1,4 @@
-*usr_44.txt*	For Vim version 7.1a.  Last change: 2006 Apr 24
+*usr_44.txt*	For Vim version 7.1b.  Last change: 2006 Apr 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/indent/dictconf.vim b/runtime/indent/dictconf.vim
index adb0961..adbc1a5 100644
--- a/runtime/indent/dictconf.vim
+++ b/runtime/indent/dictconf.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:         dict(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2006-12-20
 
 if exists("b:did_indent")
   finish
@@ -9,4 +9,5 @@
 let b:did_indent = 1
 
 setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
+setlocal nosmartindent
 inoremap <buffer> # X#
diff --git a/runtime/spell/en.ascii.spl b/runtime/spell/en.ascii.spl
index 64bff26..b0735c6 100644
--- a/runtime/spell/en.ascii.spl
+++ b/runtime/spell/en.ascii.spl
Binary files differ
diff --git a/runtime/spell/en.latin1.sug b/runtime/spell/en.latin1.sug
index f75c28b..e4800bf 100644
--- a/runtime/spell/en.latin1.sug
+++ b/runtime/spell/en.latin1.sug
Binary files differ
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index 4edff04..ce98ac6 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:		Sep 15, 2006
-" Version:		88
+" Last Change:		Dec 12, 2006
+" Version:		89
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Using the following VIM variables: {{{1
@@ -75,19 +75,22 @@
 syn cluster shColonList	contains=@shCaseList
 syn cluster shCommandSubList	contains=shArithmetic,shDeref,shDerefSimple,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq
 syn cluster shCurlyList	contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
-syn cluster shDblQuoteList	contains=shCommandSub,shDeref,shDerefSimple,shPosnParm,shExSingleQuote,shCtrlSeq
+syn cluster shDblQuoteList	contains=shCommandSub,shDeref,shDerefSimple,shPosnParm,shExSingleQuote,shCtrlSeq,shSpecial
 syn cluster shDerefList	contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPPS
 syn cluster shDerefVarList	contains=shDerefOp,shDerefVarArray,shDerefOpError
 syn cluster shEchoList	contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq
 syn cluster shExprList1	contains=shCharClass,shNumber,shOperator,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
 syn cluster shExprList2	contains=@shExprList1,@shCaseList,shTest
 syn cluster shFunctionList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shFunctionStart,shCtrlSeq
+if exists("b:is_kornshell") || exists("b:is_bash")
+ syn cluster shFunctionList	add=shDblBrace,shDblParen
+endif
 syn cluster shHereBeginList	contains=@shCommandSubList
 syn cluster shHereList	contains=shBeginHere,shHerePayload
 syn cluster shHereListDQ	contains=shBeginHere,@shDblQuoteList,shHerePayload
 syn cluster shIdList	contains=shCommandSub,shWrapLineOperator,shIdWhiteSpace,shDeref,shDerefSimple,shRedir,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq
 syn cluster shLoopList	contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest
-syn cluster shSubShList	contains=@shCaseList
+syn cluster shSubShList	contains=@shCaseList,shOperator
 syn cluster shTestList	contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq
 
 
@@ -127,8 +130,16 @@
 syn match   shOption  "\s[\-+][a-zA-Z0-9]\+\>"ms=s+1
 syn match   shOption  "\s--[^ \t$`'"|]\+"ms=s+1
 
+" File Redirection Highlighted As Operators: {{{1
+"===========================================
+syn match      shRedir	"\d\=>\(&[-0-9]\)\="
+syn match      shRedir	"\d\=>>-\="
+syn match      shRedir	"\d\=<\(&[-0-9]\)\="
+syn match      shRedir	"\d<<-\="
+
 " Operators: {{{1
 " ==========
+syn match   shOperator	"<<\|>>"		contained
 syn match   shOperator	"[!&;|]"
 syn match   shOperator	"\[[[^:]\|\]]"
 syn match   shOperator	"!\=="		skipwhite nextgroup=shPattern
@@ -186,7 +197,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="\([^#$()'" \t]\|\\.\)\{-})"ms=s,hs=e  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
 if g:sh_fold_enabled
  syn region  shCaseEsac	fold matchgroup=shConditional start="\<case\>" end="\<esac\>"	contains=@shCaseEsacList
 else
@@ -255,21 +266,16 @@
 syn region  shSingleQuote	matchgroup=shOperator start=+'+ end=+'+		contains=shStringSpecial,@Spell
 syn region  shDoubleQuote	matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell
 syn match   shStringSpecial	"[^[:print:]]"	contained
-syn match   shSpecial	"\\[\\\"\'`$()#]"
+syn match   shStringSpecial	"\%(\\\\\)*\\[\\"'`$()#]"
+syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
+syn match   shSpecial	"^\%(\\\\\)*\\[\\"'`$()#]"
 
 " Comments: {{{1
 "==========
 syn cluster    shCommentGroup	contains=shTodo,@Spell
 syn keyword    shTodo	contained	COMBAK FIXME TODO XXX
-syn match      shComment	"^#.*$"	contains=@shCommentGroup
-syn match      shComment	"[^0-9]#.*$"	contains=@shCommentGroup
-
-" File Redirection Highlighted As Operators: {{{1
-"===========================================
-syn match      shRedir	"\d\=>\(&[-0-9]\)\="
-syn match      shRedir	"\d\=>>-\="
-syn match      shRedir	"\d\=<\(&[-0-9]\)\="
-syn match      shRedir	"\d<<-\="
+syn match      shComment	"^\s*\zs#.*$"	contains=@shCommentGroup
+syn match      shComment	"#.*$"	contains=@shCommentGroup
 
 " Here Documents: {{{1
 " =========================================
@@ -338,10 +344,11 @@
 
 " Functions: {{{1
 syn keyword shFunctionKey function	skipwhite skipnl nextgroup=shFunctionTwo
-syn match   shFunctionStart	"^\s*{"	contained
+" COMBAK -- look at bash09.  function foo() (line#35) is folding 38 lines.  Not being terminated properly
+"syn match   shFunctionStart	"{"	contained
 if g:sh_fold_enabled
- syn region shFunctionOne transparent fold	start="^\s*\h\w*\s*()\_s*\ze{"    matchgroup=shFunctionStart end="}"	contains=@shFunctionList
- syn region shFunctionTwo transparent fold	start="\h\w*\s*\%(()\)\=\_s*\ze{" matchgroup=shFunctionStart end="}"	contains=shFunctionKey,@shFunctionList contained
+ syn region shFunctionOne transparent fold	start="^\s*\h\w*\s*()\_s*\ze{"    matchgroup=shFunctionStart end="}"	contains=@shFunctionList			skipwhite skipnl nextgroup=shFunctionStart
+ syn region shFunctionTwo transparent fold	start="\h\w*\s*\%(()\)\=\_s*\ze{" matchgroup=shFunctionStart end="}"	contains=shFunctionKey,@shFunctionList contained	skipwhite skipnl nextgroup=shFunctionStart
 else
  syn region shFunctionOne transparent	start="^\s*\h\w*\s*()\_s*\ze{"    matchgroup=shFunctionStart end="}"	contains=@shFunctionList
  syn region shFunctionTwo transparent	start="\h\w*\s*\%(()\)\=\_s*\ze{" matchgroup=shFunctionStart end="}"	contains=shFunctionKey,@shFunctionList contained