updated for version 7.0131
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index 1b6dee4..a49df3f 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: Jul 01, 2005
-" Version: 75
+" Last Change: Aug 16, 2005
+" Version: 76
" URL: http://www.erols.com/astronaut/vim/index.html#vimlinks_syntax
"
" Using the following VIM variables: {{{1
@@ -73,7 +73,7 @@
syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shNumber,shOperator,shPosnParm,shSpecial,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shSpecial,shPosnParm
-syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError
+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,shSpecial
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shSingleQuote,shDoubleQuote,shSpecial,shExpr,shDblBrace,shDeref,shDerefSimple
@@ -368,24 +368,25 @@
if exists("b:is_bash") || exists("b:is_kornshell")
syn match shDerefOp contained "#\{1,2}" nextgroup=@shDerefPatternList
syn match shDerefOp contained "%\{1,2}" nextgroup=@shDerefPatternList
- syn match shDerefPattern contained "[^{}]\+" contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub nextgroup=shDerefPattern
+ syn match shDerefPattern contained "[^{}]\+" contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern
syn region shDerefPattern contained start="{" end="}" contains=shDeref,shDerefSimple,shDerefString,shCommandSub nextgroup=shDerefPattern
+ syn match shDerefEscape contained '\%(\\\\\)*\\.'
endif
syn region shDerefString contained matchgroup=shOperator start=+'+ end=+'+ contains=shStringSpecial
syn region shDerefString contained matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial
syn match shDerefString contained "\\["']"
-" bash : ${parameter:offset}
-" bash : ${parameter:offset:length}
-" bash : ${parameter//pattern/string}
-" bash : ${parameter//pattern}
if exists("b:is_bash")
+ " bash : ${parameter:offset}
+ " bash : ${parameter:offset:length}
syn region shDerefOp contained start=":[$[:alnum:]_]"me=e-1 end=":"me=e-1 end="}"me=e-1 contains=@shCommandSubList nextgroup=shDerefPOL
- syn match shDerefPOL contained ":[^}]\{1,}" contains=@shCommandSubList
- syn match shDerefOp contained "/\{1,2}" nextgroup=shDerefPat
- syn match shDerefPat contained "[^/}]\{1,}" nextgroup=shDerefPatStringOp
- syn match shDerefPatStringOp contained "/" nextgroup=shDerefPatString
- syn match shDerefPatString contained "[^}]\{1,}"
+ syn match shDerefPOL contained ":[^}]\+" contains=@shCommandSubList
+
+ " bash : ${parameter//pattern/string}
+ " bash : ${parameter//pattern}
+ syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
+ syn region shDerefPPSleft contained start='.' skip=@\%(\\\)\/@ matchgroup=shDerefOp end='/' nextgroup=shDerefPPSright contains=@shCommandSubList
+ syn region shDerefPPSright contained start='.' end='\ze}' contains=@shCommandSubList
endif
" Useful sh Keywords: {{{1
@@ -441,9 +442,8 @@
hi def link shCmdSubRegion shShellVariables
hi def link shColon shStatement
hi def link shDerefOp shOperator
-hi def link shDerefPatStringOp shDerefOp
-hi def link shDerefPatString shDerefPattern
hi def link shDerefPOL shDerefOp
+hi def link shDerefPPS shDerefOp
hi def link shDeref shShellVariables
hi def link shDerefSimple shDeref
hi def link shDerefSpecial shDeref