updated for version 7.0097
diff --git a/runtime/syntax/sieve.vim b/runtime/syntax/sieve.vim
index 2923f44..1ce6713 100644
--- a/runtime/syntax/sieve.vim
+++ b/runtime/syntax/sieve.vim
@@ -1,70 +1,56 @@
 " Vim syntax file
-" Maintainer:	    Nikolai Weibull <source@pcppopper.org>
-" URL:		    http://www.pcppopper.org/
-" Latest Revision:  2004-11-11
-" arch-tag:	    356fad6d-ff6b-453c-bd25-7fc63c4758bc
+" Language:         Sieve filtering language input file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-29
 
-if version < 600
-  syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
   finish
 endif
 
-" Todo
-syn keyword sieveTodo	  contained TODO FIXME XXX NOTE
+let s:cpo_save = &cpo
+set cpo&vim
 
-" Comments
-syn region  sieveComment  matchgroup=sieveComment start='/\*' end='\*/' contains=sieveTodo
-syn region  sieveComment  matchgroup=sieveComment start='#' end='$' contains=sieveTodo
+syn keyword sieveTodo         contained TODO FIXME XXX NOTE
+
+syn region  sieveComment      matchgroup=sieveComment start='/\*' end='\*/'
+                              \ contains=sieveTodo,@Spell
+syn region  sieveComment      matchgroup=sieveComment start='#' end='$'
+                              \ contains=sieveTodo,@Spell
 
 syn case ignore
 
-" Tags
-syn match   sieveTag	  ':\h\w*'
+syn match   sieveTag          display ':\h\w*'
 
-" Numbers
-syn match   sieveNumber	  '\d\+[KMG]\='
+syn match   sieveNumber       display '\<\d\+[KMG]\=\>'
 
-" Specials
-syn match   sieveSpecial  '\\["\\]'
+syn match   sieveSpecial      display '\\["\\]'
 
-" Strings
-syn region  sieveString	  matchgroup=sieveString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=sieveSpecial
-syn region  sieveString	  matchgroup=sieveString start='text:' end='\n.\n'
+syn region  sieveString       matchgroup=sieveString start=+"+
+                              \ skip=+\\\\\|\\"+ end=+"+ contains=sieveSpecial
+syn region  sieveString       matchgroup=sieveString start='text:' end='\n.\n'
 
-" Keywords
 syn keyword sieveConditional  if elsif else
-syn keyword sieveTest	      address allof anyof envelope exists false header not size true
+syn keyword sieveTest         address allof anyof envelope exists false header
+                              \ not size true
 syn keyword sievePreProc      require stop
-syn keyword sieveAction	      reject fileinto redirect keep discard
+syn keyword sieveAction       reject fileinto redirect keep discard
 syn match   sieveKeyword      '\<\h\w*\>'
 
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_sieve_syn_inits")
-  if version < 508
-    let did_sieve_syn_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
+syn case match
 
-  HiLink sieveTodo	  Todo
-  HiLink sieveComment	  Comment
-  HiLink sieveTag	  Type
-  HiLink sieveNumber	  Number
-  HiLink sieveSpecial	  Special
-  HiLink sieveString	  String
-  HiLink sieveConditional Conditional
-  HiLink sieveTest	  Keyword
-  HiLink sievePreProc	  PreProc
-  HiLink sieveAction	  Keyword
-  HiLink sieveKeyword	  Keyword
-
-  delcommand HiLink
-endif
+hi def link sieveTodo        Todo
+hi def link sieveComment     Comment
+hi def link sieveTag         Type
+hi def link sieveNumber      Number
+hi def link sieveSpecial     Special
+hi def link sieveString      String
+hi def link sieveConditional Conditional
+hi def link sieveTest        Keyword
+hi def link sievePreProc     PreProc
+hi def link sieveAction      Keyword
+hi def link sieveKeyword     Keyword
 
 let b:current_syntax = "sieve"
 
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save