updated for version 7.0097
diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim
index 9834267..502ac70 100644
--- a/runtime/syntax/calendar.vim
+++ b/runtime/syntax/calendar.vim
@@ -1,104 +1,111 @@
 " Vim syntax file
-" Language:	    calendar(1) file.
-" Maintainer:	    Nikolai Weibull <source@pcppopper.org>
-" URL:		    http://www.pcppopper.org/vim/syntax/pcp/calendar/
-" Latest Revision:  2004-05-06
-" arch-tag:	    d714127d-469d-43bd-9c79-c2a46ec54535
+" Language:         calendar(1) 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 calendarTodo	contained TODO FIXME XXX NOTE
+let s:cpo_save = &cpo
+set cpo&vim
 
-" Comments
-syn region  calendarComment	matchgroup=calendarComment start='/\*' end='\*/' contains=calendarTodo
+syn keyword calendarTodo          contained TODO FIXME XXX NOTE
 
-" Strings
-syn region  calendarCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=calendarSpecial
-syn match   calendarSpecial	display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
-syn match   calendarSpecial	display contained "\\\(u\x\{4}\|U\x\{8}\)"
+syn region  calendarComment       matchgroup=calendarComment
+                                  \ start='/\*' end='\*/'
+                                  \ contains=calendarTodo,@Spell
 
-" cpp(1) Preprocessor directives (adapted from syntax/c.vim)
+syn region  calendarCppString     start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl
+                                  \ end=+"+ end='$' contains=calendarSpecial
+syn match   calendarSpecial       display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
+syn match   calendarSpecial       display contained "\\\(u\x\{4}\|U\x\{8}\)"
 
-syn region  calendarPreCondit	start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>' skip='\\$' end='$' contains=calendarComment,calendarCppString
-syn match   calendarPreCondit	display '^\s*#\s*\%(else\|endif\)\>'
-syn region  calendarCppOut	start='^\s*#\s*if\s\+0\+' end='.\@=\|$' contains=calendarCppOut2
-syn region  calendarCppOut2	contained start='0' end='^\s*#\s*\%(endif\|else\|elif\)\>' contains=calendarSpaceError,calendarCppSkip
-syn region  calendarCppSkip	contained start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>' skip='\\$' end='^\s*#\s*endif\>' contains=calendarSpaceError,calendarCppSkip
-syn region  calendarIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
-syn match   calendarIncluded	display contained '<[^>]*>'
-syn match   calendarInclude	display '^\s*#\s*include\>\s*["<]' contains=calendarIncluded
-syn cluster calendarPreProcGroup    contains=calendarPreCondit,calendarIncluded,calendarInclude,calendarDefine,calendarCppOut,calendarCppOut2,calendarCppSkip,calendarString,calendarSpecial,calendarTodo
-syn region  calendarDefine	start='^\s*#\s*\%(define\|undef\)\>' skip='\\$' end='$' contains=ALLBUT,@calendarPreProcGroup
-syn region  calendarPreProc	start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>' skip='\\$' end='$' keepend contains=ALLBUT,@calendarPreProcGroup
+syn region  calendarPreCondit     start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>'
+                                  \ skip='\\$' end='$'
+                                  \ contains=calendarComment,calendarCppString
+syn match   calendarPreCondit     display '^\s*#\s*\%(else\|endif\)\>'
+syn region  calendarCppOut        start='^\s*#\s*if\s\+0\+' end='.\@=\|$'
+                                  \ contains=calendarCppOut2
+syn region  calendarCppOut2       contained start='0'
+                                  \ end='^\s*#\s*\%(endif\|else\|elif\)\>'
+                                  \ contains=calendarSpaceError,calendarCppSkip
+syn region  calendarCppSkip       contained
+                                  \ start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>'
+                                  \ skip='\\$' end='^\s*#\s*endif\>'
+                                  \ contains=calendarSpaceError,calendarCppSkip
+syn region  calendarIncluded      display contained start=+"+ skip=+\\\\\|\\"+
+                                  \ end=+"+
+syn match   calendarIncluded      display contained '<[^>]*>'
+syn match   calendarInclude       display '^\s*#\s*include\>\s*["<]'
+                                  \ contains=calendarIncluded
+syn cluster calendarPreProcGroup  contains=calendarPreCondit,calendarIncluded,
+                                  \ calendarInclude,calendarDefine,
+                                  \ calendarCppOut,calendarCppOut2,
+                                  \ calendarCppSkip,calendarString,
+                                  \ calendarSpecial,calendarTodo
+syn region  calendarDefine        start='^\s*#\s*\%(define\|undef\)\>'
+                                  \ skip='\\$' end='$'
+                                  \ contains=ALLBUT,@calendarPreProcGroup
+syn region  calendarPreProc       start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>'
+                                  \ skip='\\$' end='$' keepend
+                                  \ contains=ALLBUT,@calendarPreProcGroup
 
-" Keywords
-syn keyword calendarKeyword	CHARSET BODUN LANG
+syn keyword calendarKeyword       CHARSET BODUN LANG
 syn case ignore
-syn keyword calendarKeyword	Easter Pashka
+syn keyword calendarKeyword       Easter Pashka
 syn case match
 
-" Dates
 syn case ignore
-syn match   calendarNumber	'\<\d\+\>'
-syn keyword calendarMonth	Jan[uary] Feb[ruary] Mar[ch] Apr[il] May Jun[e]
-syn keyword calendarMonth	Jul[y] Aug[ust] Sep[tember] Oct[ober]
-syn keyword calendarMonth	Nov[ember] Dec[ember]
-syn match   calendarMonth	'\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
-syn keyword calendarWeekday	Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
-syn keyword calendarWeekday	Fri[day] Sat[urday] Sun[day]
-syn match   calendarWeekday	'\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.' nextgroup=calendarWeekdayMod
-syn match   calendarWeekdayMod	'[+-]\d\+\>'
+syn match   calendarNumber        display '\<\d\+\>'
+syn keyword calendarMonth         Jan[uary] Feb[ruary] Mar[ch] Apr[il] May
+                                  \ Jun[e] Jul[y] Aug[ust] Sep[tember]
+                                  \ Oct[ober] Nov[ember] Dec[ember]
+syn match   calendarMonth         display '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
+syn keyword calendarWeekday       Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
+syn keyword calendarWeekday       Fri[day] Sat[urday] Sun[day]
+syn match   calendarWeekday       display '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.'
+                                  \ nextgroup=calendarWeekdayMod
+syn match   calendarWeekdayMod    display '[+-]\d\+\>'
 syn case match
 
-" Times
-syn match   calendarTime	'\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
-syn match   calendarTime	'\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'
+syn match   calendarTime          display '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
+syn match   calendarTime          display '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'
 
-" Variables
-syn match calendarVariable	'\*'
+syn match calendarVariable        '\*'
 
-let b:c_minlines = 50		" #if 0 constructs can be long
+if exists("c_minlines")
+  let b:c_minlines = c_minlines
+else
+  if !exists("c_no_if0")
+    let b:c_minlines = 50       " #if 0 constructs can be long
+  else
+    let b:c_minlines = 15       " mostly for () constructs
+  endif
+endif
 exec "syn sync ccomment calendarComment minlines=" . b:c_minlines
 
-" 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_calendar_syn_inits")
-  if version < 508
-    let did_calendar_syn_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
-
-  HiLink calendarTodo		Todo
-  HiLink calendarComment	Comment
-  HiLink calendarCppString	String
-  HiLink calendarSpecial	SpecialChar
-  HiLink calendarPreCondit	PreCondit
-  HiLink calendarCppOut	Comment
-  HiLink calendarCppOut2	calendarCppOut
-  HiLink calendarCppSkip	calendarCppOut
-  HiLink calendarIncluded	String
-  HiLink calendarInclude	Include
-  HiLink calendarDefine	Macro
-  HiLink calendarPreProc	PreProc
-  HiLink calendarKeyword	Keyword
-  HiLink calendarNumber	Number
-  HiLink calendarMonth	String
-  HiLink calendarWeekday	String
-  HiLink calendarWeekdayMod	Special
-  HiLink calendarTime		Number
-  HiLink calendarVariable	Identifier
-
-  delcommand HiLink
-endif
+hi def link calendarTodo          Todo
+hi def link calendarComment       Comment
+hi def link calendarCppString     String
+hi def link calendarSpecial       SpecialChar
+hi def link calendarPreCondit     PreCondit
+hi def link calendarCppOut        Comment
+hi def link calendarCppOut2       calendarCppOut
+hi def link calendarCppSkip       calendarCppOut
+hi def link calendarIncluded      String
+hi def link calendarInclude       Include
+hi def link calendarDefine        Macro
+hi def link calendarPreProc       PreProc
+hi def link calendarKeyword       Keyword
+hi def link calendarNumber        Number
+hi def link calendarMonth         String
+hi def link calendarWeekday       String
+hi def link calendarWeekdayMod    Special
+hi def link calendarTime          Number
+hi def link calendarVariable      Identifier
 
 let b:current_syntax = "calendar"
 
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save