updated for version 7.0097
diff --git a/runtime/syntax/screen.vim b/runtime/syntax/screen.vim
index eef74f2..553d1d5 100644
--- a/runtime/syntax/screen.vim
+++ b/runtime/syntax/screen.vim
@@ -1,93 +1,83 @@
 " Vim syntax file
-" Language:	    Screen Virtual Terminal Emulator/Manager Configuration File
-" Maintainer:	    Nikolai Weibull <source@pcppopper.org>
-" URL:		    http://www.pcppopper.org/vim/syntax/pcp/screen/
-" Latest Revision:  2004-05-22
-" arch-tag:	    6a97fb8f-fc88-497f-9c55-e946734ba034
+" Language:         screen(1) configuration 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
 
-" comments
-syn region  screenComment	matchgroup=screenComment start="#" end="$" contains=screenTodo
+let s:cpo_save = &cpo
+set cpo&vim
 
-" todo
-syn keyword screenTodo		contained TODO FIXME XXX NOTE
+syn match   screenEscape    '\\.'
 
-" string (can contain variables)
-syn region  screenString	matchgroup=screenString start='"' skip='\\"' end='"\|$' contains=screenVariable,screenSpecial
+syn keyword screenTodo      contained TODO FIXME XXX NOTE
 
-" literal string
-syn region  screenLiteral	matchgroup=screenLiteral start="'" skip="\\'" end="'\|$"
+syn region  screenComment   display oneline matchgroup=screenComment
+                            \ start='#' end='$' contains=screenTodo,@Spell
 
-" environment variables
-syn match   screenVariable	contained "$\(\h\w*\|{\h\w*}\)"
+syn region  screenString    display oneline matchgroup=screenString
+                            \ start=+"+ skip=+\\"+ end=+"\|$+
+                            \ contains=screenVariable,screenSpecial
 
-" booleans
-syn keyword screenBoolean	on off
+syn region  screenLiteral   display oneline matchgroup=screenLiteral
+                            \ start=+'+ skip=+\\'+ end=+'\|$+
 
-" numbers
-syn match   screenNumbers	"\<\d\+\>"
+syn match   screenVariable  contained display '$\(\h\w*\|{\h\w*}\)'
 
-" specials
-syn match   screenSpecials	contained "%\([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)"
+syn keyword screenBoolean   on off
 
-" commands
-syn keyword screenCommands	acladd aclchg acldel aclgrp aclumask activity addacl allpartial at attrcolor
-syn keyword screenCommands	autodetach bell_msg bind bindkey bufferfile caption chacl chdir clear colon
-syn keyword screenCommands	command compacthist console copy copy_regcrlf debug detach digraph dinfo crlf
-syn keyword screenCommands	displays dumptermcap echo exec fit focus height help history
-syn keyword screenCommands	info kill lastmsg license lockscreen markkeys meta msgminwait msgwait
-syn keyword screenCommands	multiuser nethack next nonblock number only other partial_state
-syn keyword screenCommands	password paste pastefont pow_break pow_detach_msg prev printcmd process
-syn keyword screenCommands	quit readbuf readreg redisplay register remove removebuf reset resize screen
-syn keyword screenCommands	select sessionname setenv shelltitle silencewait verbose
-syn keyword screenCommands	sleep sorendition split startup_message stuff su suspend time
-syn keyword screenCommands	title umask version wall width writebuf xoff xon defmode hardstatus
-syn keyword screenCommands	altscreen break breaktype copy_reg defbreaktype defencoding deflog encoding
-syn keyword screenCommands	eval ignorecase ins_reg maxwin partial pow_detach setsid source unsetenv
-syn keyword screenCommands	windowlist windows
-syn match   screenCommands	"\<\(def\)\=\(autonuke\|bce\|c1\|charset\|escape\|flow\|kanji\|login\|monitor\|hstatus\|obuflimit\)\>"
-syn match   screenCommands	"\<\(def\)\=\(scrollback\|shell\|silence\|slowpaste\|utf8\|wrap\|writelock\|zombie\|gr\)\>"
-syn match   screenCommands	"\<hard\(copy\(_append\|dir\)\=\|status\)\>"
-syn match   screenCommands	"\<log\(file\|in\|tstamp\)\=\>"
-syn match   screenCommands	"\<map\(default\|notnext\|timeout\)\>"
-syn match   screenCommands	"\<term\(cap\|info\|capinfo\)\=\>"
-syn match   screenCommands	"\<vbell\(_msg\|wait\)\=\>"
+syn match   screenNumbers   display '\<\d\+\>'
 
-if exists("screen_minlines")
-    let b:screen_minlines = screen_minlines
-else
-    let b:screen_minlines = 10
-endif
-exec "syn sync minlines=" . b:screen_minlines
+syn match   screenSpecials  contained
+                            \ '%\([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)'
 
-" 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_screen_syn_inits")
-  if version < 508
-    let did_screen_syn_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
+syn keyword screenCommands  acladd aclchg acldel aclgrp aclumask activity
+                            \ addacl allpartial at attrcolor autodetach
+                            \ bell_msg bind bindkey bufferfile caption chacl
+                            \ chdir clear colon command compacthist console
+                            \ copy copy_regcrlf debug detach digraph dinfo
+                            \ crlf displays dumptermcap echo exec fit focus
+                            \ height help history info kill lastmsg license
+                            \ lockscreen markkeys meta msgminwait msgwait
+                            \ multiuser nethack next nonblock number only
+                            \ other partial_state password paste pastefont
+                            \ pow_break pow_detach_msg prev printcmd process
+                            \ quit readbuf readreg redisplay register
+                            \ remove removebuf reset resize screen select
+                            \ sessionname setenv shelltitle silencewait
+                            \ verbose sleep sorendition split startup_message
+                            \ stuff su suspend time title umask version wall
+                            \ width writebuf xoff xon defmode hardstatus
+                            \ altscreen break breaktype copy_reg defbreaktype
+                            \ defencoding deflog encoding eval ignorecase
+                            \ ins_reg maxwin partial pow_detach setsid source
+                            \ unsetenv windowlist windows defautonuke autonuke
+                            \ defbce bce defc1 c1 defcharset charset defescape
+                            \ escape defflow flow defkanji kanji deflogin
+                            \ login defmonitor monitor defhstatus hstatus
+                            \ defobuflimit obuflimit defscrollback scrollback
+                            \ defshell shell defsilence silence defslowpaste
+                            \ slowpaste defutf8 utf8 defwrap wrap defwritelock
+                            \ writelock defzombie zombie defgr gr hardcopy
+                            \ hardcopy_append hardcopydir hardstatus log
+                            \ logfile login logtstamp mapdefault mapnotnext
+                            \ maptimeout term termcap terminfo termcapinfo
+                            \ vbell vbell_msg vbellwait
 
-  HiLink screenComment    Comment
-  HiLink screenTodo	  Todo
-  HiLink screenString	  String
-  HiLink screenLiteral    String
-  HiLink screenVariable   Identifier
-  HiLink screenBoolean    Boolean
-  HiLink screenNumbers    Number
-  HiLink screenSpecials   Special
-  HiLink screenCommands   Keyword
-  delcommand HiLink
-endif
+hi def link screenEscape    Special
+hi def link screenComment   Comment
+hi def link screenTodo      Todo
+hi def link screenString    String
+hi def link screenLiteral   String
+hi def link screenVariable  Identifier
+hi def link screenBoolean   Boolean
+hi def link screenNumbers   Number
+hi def link screenSpecials  Special
+hi def link screenCommands  Keyword
 
 let b:current_syntax = "screen"
 
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save