aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/sed.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/sed.vim')
-rw-r--r--runtime/syntax/sed.vim80
1 files changed, 36 insertions, 44 deletions
diff --git a/runtime/syntax/sed.vim b/runtime/syntax/sed.vim
index f0f80300d6..63b39db81f 100644
--- a/runtime/syntax/sed.vim
+++ b/runtime/syntax/sed.vim
@@ -4,11 +4,8 @@
" URL: http://folk.uio.no/hakonrk/vim/syntax/sed.vim
" Last Change: 2010 May 29
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
- syn clear
-elseif exists("b:current_syntax")
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
finish
endif
@@ -49,8 +46,12 @@ syn match sedReplaceMeta "&\|\\\($\|.\)" contains=sedTab contained
" Metacharacters: $ * . \ ^ [ ~
" @ is used as delimiter and treated on its own below
let __at = char2nr("@")
-let __sed_i = char2nr(" ") " ASCII: 32
-let __sed_last = 126
+let __sed_i = char2nr(" ") " ASCII: 32, EBCDIC: 64
+if has("ebcdic")
+ let __sed_last = 255
+else
+ let __sed_last = 126
+endif
let __sed_metacharacters = '$*.\^[~'
while __sed_i <= __sed_last
let __sed_delimiter = escape(nr2char(__sed_i), __sed_metacharacters)
@@ -71,45 +72,36 @@ syn region sedReplacement64 matchgroup=Special start=+@\(\\\\\|\\@\)*+ skip=+[^\
" (y) does not allow any flags. To save memory, I ignore this problem.
syn match sedST "[sy]" nextgroup=sedRegexp\d\+
-if version >= 508 || !exists("did_sed_syntax_inits")
- if version < 508
- let did_sed_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sedAddress Macro
- HiLink sedACI NONE
- HiLink sedBranch Label
- HiLink sedComment Comment
- HiLink sedDelete Function
- HiLink sedError Error
- HiLink sedFlag Type
- HiLink sedFlagwrite Constant
- HiLink sedFunction Function
- HiLink sedLabel Label
- HiLink sedLineCont Special
- HiLink sedPutHoldspc Function
- HiLink sedReplaceMeta Special
- HiLink sedRegexpMeta Special
- HiLink sedRW Constant
- HiLink sedSemicolon Special
- HiLink sedST Function
- HiLink sedSpecial Special
- HiLink sedWhitespace NONE
- if exists("highlight_sedtabs")
- HiLink sedTab Todo
- endif
- let __sed_i = char2nr(" ") " ASCII: 32
- while __sed_i <= __sed_last
- exe "HiLink sedRegexp".__sed_i "Macro"
- exe "HiLink sedReplacement".__sed_i "NONE"
- let __sed_i = __sed_i + 1
- endwhile
- delcommand HiLink
+hi def link sedAddress Macro
+hi def link sedACI NONE
+hi def link sedBranch Label
+hi def link sedComment Comment
+hi def link sedDelete Function
+hi def link sedError Error
+hi def link sedFlag Type
+hi def link sedFlagwrite Constant
+hi def link sedFunction Function
+hi def link sedLabel Label
+hi def link sedLineCont Special
+hi def link sedPutHoldspc Function
+hi def link sedReplaceMeta Special
+hi def link sedRegexpMeta Special
+hi def link sedRW Constant
+hi def link sedSemicolon Special
+hi def link sedST Function
+hi def link sedSpecial Special
+hi def link sedWhitespace NONE
+if exists("highlight_sedtabs")
+hi def link sedTab Todo
endif
+let __sed_i = char2nr(" ") " ASCII: 32, EBCDIC: 64
+while __sed_i <= __sed_last
+exe "hi def link sedRegexp".__sed_i "Macro"
+exe "hi def link sedReplacement".__sed_i "NONE"
+let __sed_i = __sed_i + 1
+endwhile
+
unlet __sed_i __sed_last __sed_delimiter __sed_metacharacters