changeset 1215:1d08aac0aea9

updated for version 7.1b
author vimboss
date Thu, 10 May 2007 18:29:51 +0000
parents a91a2e0c4108
children 35a1d7bd6191
files runtime/doc/eval.txt runtime/doc/usr_31.txt runtime/ftplugin/ruby.vim runtime/syntax/cdrtoc.vim runtime/syntax/django.vim src/arabic.h src/gui_gtk.c
diffstat 7 files changed, 606 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.1a.  Last change: 2007 May 03
+*eval.txt*      For Vim version 7.1b.  Last change: 2007 May 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1684,7 +1684,7 @@ matchlist( {expr}, {pat}[, {start}[, {co
 matchstr( {expr}, {pat}[, {start}[, {count}]])
 				String	{count}'th match of {pat} in {expr}
 max({list})			Number	maximum value of items in {list}
-min({list})			Number	minumum value of items in {list}
+min({list})			Number	minimum value of items in {list}
 mkdir({name} [, {path} [, {prot}]])
 				Number	create directory {name}
 mode()				String	current editing mode
@@ -2511,7 +2511,7 @@ feedkeys({string} [, {mode}])				*feedke
 		{string}.
 		To include special keys into {string}, use double-quotes
 		and "\..." notation |expr-quote|. For example,
-		feedkeys("\<CR>") simulates pressing of the Enter key. But
+		feedkeys("\<CR>") simulates pressing of the <Enter> key. But
 		feedkeys('\<CR>') pushes 5 characters.
 		If {mode} is absent, keys are remapped.
 		{mode} is a String, which can contain these character flags:
@@ -3677,7 +3677,7 @@ max({list})	Return the maximum value of 
 		An empty |List| results in zero.
 
 							*min()*
-min({list})	Return the minumum value of all items in {list}.
+min({list})	Return the minimum value of all items in {list}.
 		If {list} is not a list or one of the items in {list} cannot
 		be used as a Number this results in an error.
 		An empty |List| results in zero.
--- a/runtime/doc/usr_31.txt
+++ b/runtime/doc/usr_31.txt
@@ -1,4 +1,4 @@
-*usr_31.txt*	For Vim version 7.1a.  Last change: 2006 Apr 24
+*usr_31.txt*	For Vim version 7.1b.  Last change: 2007 May 08
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -248,7 +248,7 @@ you can set the 'lines' option to set a 
 You don't want to do this in a terminal, since it's size is fixed (except for
 an xterm that supports resizing).
    The gvimrc file is searched for in the same locations as the vimrc file.
-Normally it's name is "~/.gvimrc" for Unix and "$VIM/_gvimrc" for MS-Windows.
+Normally its name is "~/.gvimrc" for Unix and "$VIM/_gvimrc" for MS-Windows.
 The $MYGVIMRC environment variable is set to it, thus you can use this command
 to edit the file, if you have one: >
 
--- a/runtime/ftplugin/ruby.vim
+++ b/runtime/ftplugin/ruby.vim
@@ -30,28 +30,21 @@ endif
 if exists("loaded_matchit") && !exists("b:match_words")
   let b:match_ignorecase = 0
 
- " TODO: improve optional do loops
   let b:match_words =
-	\ '\%(' .
-	\     '\%(\%(\.\|\:\:\)\s*\|\:\)\@<!\<\%(class\|module\|begin\|def\|case\|for\|do\)\>' .
-	\   '\|' .
-	\     '\%(\%(^\|\.\.\.\=\|[{\:\,;([<>~\*/%&^|+-]\|\%(\<[_[\:lower\:]][_[\:alnum\:]]*\)\@<![!=?]\)\s*\)\@<=\%(if\|unless\|while\|until\)\>' .
-	\ '\)' .
+	\ '\<\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|def\|begin\)\>=\@!' .
 	\ ':' .
-	\ '\%(' .
-	\     '\%(\%(\.\|\:\:\)\s*\|\:\)\@<!\<\%(else\|elsif\|ensure\|when\)\>' .
-	\   '\|' .
-	\     '\%(\%(^\|;\)\s*\)\@<=\<rescue\>' .
-	\ '\)' .
+	\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
 	\ ':' .
-	\ '\%(\%(\.\|\:\:\)\s*\|\:\)\@<!\<end\>' .
+	\ '\<end\>' .
 	\ ',{:},\[:\],(:)'
 
   let b:match_skip =
 	\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
-	\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Interpolation\\|" .
-	\ "NoInterpolation\\|Escape\\|Comment\\|Documentation\\)\\>'"
-
+	\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
+	\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
+	\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
+	\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
+	\ "InstanceVariable\\|GlobalVariable\\|Symbol\\)\\>'"
 endif
 
 setlocal formatoptions-=t formatoptions+=croql
@@ -103,9 +96,26 @@ if has("gui_win32") && !exists("b:browse
 endif
 
 let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< kp<"
-      \ "| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip"
-      \ "| if exists('&ofu') && has('ruby') | setl ofu< | endif"
-      \ "| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"
+      \."| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip"
+      \."| if exists('&ofu') && has('ruby') | setl ofu< | endif"
+      \."| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"
+
+if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
+
+  noremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b')<CR>
+  noremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','')<CR>
+  noremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b')<CR>
+  noremap <silent> <buffer> ]M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','')<CR>
+
+  noremap <silent> <buffer> [[ :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','b')<CR>
+  noremap <silent> <buffer> ]] :<C-U>call <SID>searchsyn('\<\%(class\<Bar>module\)\>','rubyModule\<Bar>rubyClass','')<CR>
+  noremap <silent> <buffer> [] :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','b')<CR>
+  noremap <silent> <buffer> ][ :<C-U>call <SID>searchsyn('\<end\>','rubyModule\<Bar>rubyClass','')<CR>
+
+  let b:undo_ftplugin = b:undo_ftplugin
+        \."| sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['"
+        \."| sil! exe 'unmap <buffer> [m' | sil! exe 'unmap <buffer> ]m' | sil! exe 'unmap <buffer> [M' | sil! exe 'unmap <buffer> ]M'"
+endif
 
 let &cpo = s:cpo_save
 unlet s:cpo_save
@@ -155,7 +165,7 @@ function! RubyBalloonexpr()
       return ''
     endif
     silent! let res = substitute(system("ri -f simple -T \"".str.'"'),'\n$','','')
-    if res =~ '^Nothing known about' || res =~ '^Bad argument:'
+    if res =~ '^Nothing known about' || res =~ '^Bad argument:' || res =~ '^More than one method'
       return ''
     endif
     return res
@@ -164,6 +174,28 @@ function! RubyBalloonexpr()
   endif
 endfunction
 
+function! s:searchsyn(pattern,syn,flags)
+    norm! m'
+    let i = 0
+    let cnt = v:count ? v:count : 1
+    while i < cnt
+        let i = i + 1
+        let line = line('.')
+        let col  = col('.')
+        let pos = search(a:pattern,'W'.a:flags)
+        while pos != 0 && s:synname() !~# a:syn
+            let pos = search(a:pattern,'W'.a:flags)
+        endwhile
+        if pos == 0
+            call cursor(line,col)
+            return
+        endif
+    endwhile
+endfunction
+
+function! s:synname()
+    return synIDattr(synID(line('.'),col('.'),0),'name')
+endfunction
 
 "
 " Instructions for enabling "matchit" support:
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/cdrtoc.vim
@@ -0,0 +1,537 @@
+" Vim syntax file
+" Language:         cdrdao(1) TOC file
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2007-05-10
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword cdrtocTodo
+      \ contained
+      \ TODO
+      \ FIXME
+      \ XXX
+      \ NOTE
+
+syn cluster cdrtocCommentContents
+      \ contains=
+      \   cdrtocTodo,
+      \   @Spell
+
+syn cluster cdrtocHeaderFollowsInitial
+      \ contains=
+      \   cdrtocHeaderCommentInitial,
+      \   cdrtocHeaderCatalog,
+      \   cdrtocHeaderTOCType,
+      \   cdrtocHeaderCDText,
+      \   cdrtocTrack
+
+syn match   cdrtocHeaderBegin
+      \ nextgroup=@cdrtocHeaderFollowsInitial
+      \ skipwhite skipempty
+      \ '\%^'
+
+let s:mmssff_pattern = '\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\>'
+let s:byte_pattern = '\<\%([01]\=\d\{1,2}\|2\%([0-4]\d\|5[0-5]\)\)\>'
+let s:length_pattern = '\%(\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\|\d\+\)\>'
+
+function s:def_comment(name, nextgroup)
+  execute 'syn match' a:name
+        \ 'nextgroup=' . a:nextgroup . ',' . a:name
+        \ 'skipwhite skipempty'
+        \ 'contains=@cdrtocCommentContents'
+        \ 'contained'
+        \ "'//.*$'"
+  execute 'hi def link' a:name 'cdrtocComment'
+endfunction
+
+function s:def_keywords(name, nextgroup, keywords)
+  let comment_group = a:name . 'FollowComment'
+  execute 'syn keyword' a:name
+        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
+        \ 'skipwhite skipempty'
+        \ 'contained'
+        \ join(a:keywords)
+
+  call s:def_comment(comment_group, a:nextgroup)
+endfunction
+
+function s:def_keyword(name, nextgroup, keyword)
+  call s:def_keywords(a:name, a:nextgroup, [a:keyword])
+endfunction
+
+" NOTE: Pattern needs to escape any “@”s.
+function s:def_match(name, nextgroup, pattern)
+  let comment_group = a:name . 'FollowComment'
+  execute 'syn match' a:name
+        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
+        \ 'skipwhite skipempty'
+        \ 'contained'
+        \ '@' . a:pattern . '@'
+
+  call s:def_comment(comment_group, a:nextgroup)
+endfunction
+
+function s:def_region(name, nextgroup, start, skip, end, matchgroup, contains)
+  let comment_group = a:name . 'FollowComment'
+  execute 'syn region' a:name
+        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
+        \ 'skipwhite skipempty'
+        \ 'contained'
+        \ 'matchgroup=' . a:matchgroup
+        \ 'contains=' . a:contains
+        \ 'start=@' . a:start . '@'
+        \ (a:skip != "" ? ('skip=@' . a:skip . '@') : "")
+        \ 'end=@' . a:end . '@'
+
+  call s:def_comment(comment_group, a:nextgroup)
+endfunction
+
+call s:def_comment('cdrtocHeaderCommentInitial', '@cdrtocHeaderFollowsInitial')
+
+call s:def_keyword('cdrtocHeaderCatalog', 'cdrtocHeaderCatalogNumber', 'CATALOG')
+
+call s:def_match('cdrtocHeaderCatalogNumber', '@cdrtocHeaderFollowsInitial', '"\d\{13\}"')
+
+call s:def_keywords('cdrtocHeaderTOCType', '@cdrtocHeaderFollowsInitial', ['CD_DA', 'CD_ROM', 'CD_ROM_XA'])
+
+call s:def_keyword('cdrtocHeaderCDText', 'cdrtocHeaderCDTextStart', 'CD_TEXT')
+
+" TODO: Actually, language maps aren’t required by TocParser.g, but let’s keep
+" things simple (and in agreement with what the manual page says).
+call s:def_match('cdrtocHeaderCDTextStart', 'cdrtocHeaderCDTextLanguageMap', '{')
+
+call s:def_keyword('cdrtocHeaderCDTextLanguageMap', 'cdrtocHeaderLanguageMapStart', 'LANGUAGE_MAP')
+
+call s:def_match('cdrtocHeaderLanguageMapStart', 'cdrtocHeaderLanguageMapLanguageNumber', '{')
+
+call s:def_match('cdrtocHeaderLanguageMapLanguageNumber', 'cdrtocHeaderLanguageMapColon', '\<[0-7]\>')
+
+call s:def_match('cdrtocHeaderLanguageMapColon', 'cdrtocHeaderLanguageMapCountryCode,cdrtocHeaderLanguageMapCountryCodeName', ':')
+
+syn cluster cdrtocHeaderLanguageMapCountryCodeFollow
+      \ contains=
+      \   cdrtocHeaderLanguageMapLanguageNumber,
+      \   cdrtocHeaderLanguageMapEnd
+
+call s:def_match('cdrtocHeaderLanguageMapCountryCode',
+               \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
+               \ s:byte_pattern)
+
+call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName',
+                 \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
+                 \ 'EN')
+
+call s:def_match('cdrtocHeaderLanguageMapEnd',
+               \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
+               \ '}')
+
+call s:def_keyword('cdrtocHeaderLanguage', 'cdrtocHeaderLanguageNumber', 'LANGUAGE')
+
+call s:def_match('cdrtocHeaderLanguageNumber', 'cdrtocHeaderLanguageStart', '\<[0-7]\>')
+
+call s:def_match('cdrtocHeaderLanguageStart',
+               \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
+               \ '{')
+
+syn cluster cdrtocHeaderCDTextData
+      \ contains=
+      \   cdrtocHeaderCDTextDataString,
+      \   cdrtocHeaderCDTextDataBinaryStart
+
+call s:def_keywords('cdrtocHeaderCDTextItem',
+                  \ '@cdrtocHeaderCDTextData',
+                  \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER',
+                  \  'ARRANGER', 'MESSAGE', 'DISC_ID', 'GENRE', 'TOC_INFO1',
+                  \  'TOC_INFO2', 'UPC_EAN', 'ISRC', 'SIZE_INFO'])
+
+call s:def_region('cdrtocHeaderCDTextDataString',
+                \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
+                \ '"',
+                \ '\\\\\|\\"',
+                \ '"',
+                \ 'cdrtocHeaderCDTextDataStringDelimiters',
+                \ 'cdrtocHeaderCDTextDataStringSpecialChar')
+
+syn match   cdrtocHeaderCDTextDataStringSpecialChar
+      \ contained
+      \ display
+      \ '\\\%(\o\o\o\|["\\]\)'
+
+call s:def_match('cdrtocHeaderCDTextDataBinaryStart',
+               \ 'cdrtocHeaderCDTextDataBinaryInteger',
+               \ '{')
+
+call s:def_match('cdrtocHeaderCDTextDataBinaryInteger',
+               \ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd',
+               \ s:byte_pattern)
+
+call s:def_match('cdrtocHeaderCDTextDataBinarySeparator',
+               \ 'cdrtocHeaderCDTextDataBinaryInteger',
+               \ ',')
+
+call s:def_match('cdrtocHeaderCDTextDataBinaryEnd',
+               \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
+               \ '}')
+
+call s:def_match('cdrtocHeaderLanguageEnd',
+               \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
+               \ '}')
+
+call s:def_match('cdrtocHeaderCDTextEnd',
+               \ 'cdrtocTrack',
+               \ '}')
+
+syn cluster cdrtocTrackFollow
+      \ contains=
+      \   @cdrtocTrackFlags,
+      \   cdrtocTrackCDText,
+      \   cdrtocTrackPregap,
+      \   @cdrtocTrackContents
+
+call s:def_keyword('cdrtocTrack', 'cdrtocTrackMode', 'TRACK')
+
+call s:def_keywords('cdrtocTrackMode',
+                  \ 'cdrtocTrackSubChannelMode,@cdrtocTrackFollow',
+                  \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
+                  \  'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])
+
+call s:def_keywords('cdrtocTrackSubChannelMode',
+                  \ '@cdrtocTrackFollow',
+                  \ ['RW', 'RW_RAW'])
+
+syn cluster cdrtocTrackFlags
+      \ contains=
+      \   cdrtocTrackFlagNo,
+      \   cdrtocTrackFlagCopy,
+      \   cdrtocTrackFlagPreEmphasis,
+      \   cdrtocTrackFlag
+
+call s:def_keyword('cdrtocTrackFlagNo',
+                 \ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis',
+                 \ 'NO')
+
+call s:def_keyword('cdrtocTrackFlagCopy', '@cdrtocTrackFollow', 'COPY')
+
+call s:def_keyword('cdrtocTrackFlagPreEmphasis', '@cdrtocTrackFollow', 'PRE_EMPHASIS')
+
+call s:def_keywords('cdrtocTrackFlag',
+                  \ '@cdrtocTrackFollow',
+                  \ ['TWO_CHANNEL_AUDIO', 'FOUR_CHANNEL_AUDIO'])
+
+call s:def_keyword('cdrtocTrackFlag', 'cdrtocTrackISRC', 'ISRC')
+
+call s:def_match('cdrtocTrackISRC',
+               \ '@cdrtocTrackFollow',
+               \ '"[[:upper:][:digit:]]\{5}\d\{7}"')
+
+call s:def_keyword('cdrtocTrackCDText', 'cdrtocTrackCDTextStart', 'CD_TEXT')
+
+call s:def_match('cdrtocTrackCDTextStart', 'cdrtocTrackCDTextLanguage', '{')
+
+call s:def_keyword('cdrtocTrackCDTextLanguage', 'cdrtocTrackCDTextLanguageNumber', 'LANGUAGE')
+
+call s:def_match('cdrtocTrackCDTextLanguageNumber', 'cdrtocTrackCDTextLanguageStart', '\<[0-7]\>')
+
+call s:def_match('cdrtocTrackCDTextLanguageStart',
+               \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
+               \ '{')
+
+syn cluster cdrtocTrackCDTextData
+      \ contains=
+      \   cdrtocTrackCDTextDataString,
+      \   cdrtocTrackCDTextDataBinaryStart
+
+call s:def_keywords('cdrtocTrackCDTextItem',
+                  \ '@cdrtocTrackCDTextData',
+                  \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', 'ARRANGER',
+                  \  'MESSAGE', 'ISRC'])
+
+call s:def_region('cdrtocTrackCDTextDataString',
+                \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
+                \ '"',
+                \ '\\\\\|\\"',
+                \ '"',
+                \ 'cdrtocTrackCDTextDataStringDelimiters',
+                \ 'cdrtocTrackCDTextDataStringSpecialChar')
+
+syn match   cdrtocTrackCDTextDataStringSpecialChar
+      \ contained
+      \ display
+      \ '\\\%(\o\o\o\|["\\]\)'
+
+call s:def_match('cdrtocTrackCDTextDataBinaryStart',
+               \ 'cdrtocTrackCDTextDataBinaryInteger',
+               \ '{')
+
+call s:def_match('cdrtocTrackCDTextDataBinaryInteger',
+               \ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd',
+               \ s:byte_pattern)
+
+call s:def_match('cdrtocTrackCDTextDataBinarySeparator',
+               \ 'cdrtocTrackCDTextDataBinaryInteger',
+               \ ',')
+
+call s:def_match('cdrtocTrackCDTextDataBinaryEnd',
+               \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
+               \ '}')
+
+call s:def_match('cdrtocTrackCDTextLanguageEnd',
+               \ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd',
+               \ '}')
+
+call s:def_match('cdrtocTrackCDTextEnd',
+               \ 'cdrtocTrackPregap,@cdrtocTrackContents',
+               \ '}')
+
+call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP')
+
+call s:def_match('cdrtocTrackPregapMMSSFF',
+               \ '@cdrtocTrackContents',
+               \ s:mmssff_pattern)
+
+syn cluster cdrtocTrackContents
+      \ contains=
+      \   cdrtocTrackSubTrack,
+      \   cdrtocTrackMarker
+
+syn cluster cdrtocTrackContentsFollow
+      \ contains=
+      \   @cdrtocTrackContents,
+      \   cdrtocTrackIndex,
+      \   cdrtocTrack
+
+call s:def_keywords('cdrtocTrackSubTrack',
+                  \ 'cdrtocTrackSubTrackFileFilename',
+                  \ ['FILE', 'AUDIOFILE'])
+
+call s:def_region('cdrtocTrackSubTrackFileFilename',
+                \ 'cdrtocTrackSubTrackFileStart',
+                \ '"',
+                \ '\\\\\|\\"',
+                \ '"',
+                \ 'cdrtocTrackSubTrackFileFilenameDelimiters',
+                \ 'cdrtocTrackSubTrackFileFilenameSpecialChar')
+
+syn match   cdrtocTrackSubTrackFileFilenameSpecialChar
+      \ contained
+      \ display
+      \ '\\\%(\o\o\o\|["\\]\)'
+
+call s:def_match('cdrtocTrackSubTrackFileStart',
+               \ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow',
+               \ s:length_pattern)
+
+call s:def_match('cdrtocTrackSubTrackFileLength',
+               \ '@cdrtocTrackContentsFollow',
+               \ s:length_pattern)
+
+call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE')
+
+call s:def_region('cdrtocTrackSubTrackDatafileFilename',
+                \ 'cdrtocTrackSubTrackDatafileLength',
+                \ '"',
+                \ '\\\\\|\\"',
+                \ '"',
+                \ 'cdrtocTrackSubTrackDatafileFilenameDelimiters',
+                \ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar')
+
+syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
+      \ contained
+      \ display
+      \ '\\\%(\o\o\o\|["\\]\)'
+
+call s:def_match('cdrtocTrackDatafileLength',
+               \ '@cdrtocTrackContentsFollow',
+               \ s:length_pattern)
+
+call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE')
+
+call s:def_region('cdrtocTrackSubTrackFifoFilename',
+                \ 'cdrtocTrackSubTrackFifoLength',
+                \ '"',
+                \ '\\\\\|\\"',
+                \ '"',
+                \ 'cdrtocTrackSubTrackFifoFilenameDelimiters',
+                \ 'cdrtocTrackSubTrackFifoFilenameSpecialChar')
+
+syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
+      \ contained
+      \ display
+      \ '\\\%(\o\o\o\|["\\]\)'
+
+call s:def_match('cdrtocTrackFifoLength',
+               \ '@cdrtocTrackContentsFollow',
+               \ s:length_pattern)
+
+call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE')
+
+call s:def_match('cdrtocTrackSilenceLength',
+               \ '@cdrtocTrackContentsFollow',
+               \ s:length_pattern)
+
+call s:def_keyword('cdrtocTrackSubTrack',
+                 \ 'cdrtocTrackSubTrackZeroDataMode,' .
+                 \ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' .
+                 \ 'cdrtocTrackSubTrackZeroDataLength',
+                 \ 'ZERO')
+
+call s:def_keywords('cdrtocTrackSubTrackZeroDataMode',
+                  \ 'cdrtocTrackSubTrackZeroSubChannelMode,cdrtocTrackSubTrackZeroDataLength',
+                  \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
+                  \  'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])
+
+call s:def_keywords('cdrtocTrackSubTrackZeroDataSubChannelMode',
+                  \ 'cdrtocTrackSubTrackZeroDataLength',
+                  \ ['RW', 'RW_RAW'])
+
+call s:def_match('cdrtocTrackSubTrackZeroDataLength',
+               \ '@cdrtocTrackContentsFollow',
+               \ s:length_pattern)
+
+call s:def_keyword('cdrtocTrackMarker',
+                 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF',
+                 \ 'START')
+
+call s:def_match('cdrtocTrackMarkerStartMMSSFF',
+               \ '@cdrtocTrackContentsFollow',
+               \ s:mmssff_pattern)
+
+call s:def_keyword('cdrtocTrackMarker',
+                 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF',
+                 \ 'END')
+
+call s:def_match('cdrtocTrackMarkerEndMMSSFF',
+               \ '@cdrtocTrackContentsFollow',
+               \ s:mmssff_pattern)
+
+call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX')
+
+call s:def_match('cdrtocTrackIndexMMSSFF',
+               \ 'cdrtocTrackIndex,cdrtocTrack',
+               \ s:mmssff_pattern)
+
+delfunction s:def_region
+delfunction s:def_match
+delfunction s:def_keyword
+delfunction s:def_keywords
+delfunction s:def_comment
+
+syn sync fromstart
+
+hi def link cdrtocKeyword                                  Keyword
+hi def link cdrtocHeaderKeyword                            cdrtocKeyword
+hi def link cdrtocHeaderCDText                             cdrtocHeaderKeyword
+hi def link cdrtocDelimiter                                Delimiter
+hi def link cdrtocCDTextDataBinaryEnd                      cdrtocDelimiter
+hi def link cdrtocHeaderCDTextDataBinaryEnd                cdrtocHeaderCDTextDataBinaryEnd
+hi def link cdrtocNumber                                   Number
+hi def link cdrtocCDTextDataBinaryInteger                  cdrtocNumber
+hi def link cdrtocHeaderCDTextDataBinaryInteger            cdrtocCDTextDataBinaryInteger
+hi def link cdrtocCDTextDataBinarySeparator                cdrtocDelimiter
+hi def link cdrtocHeaderCDTextDataBinarySeparator          cdrtocCDTextDataBinarySeparator
+hi def link cdrtocCDTextDataBinaryStart                    cdrtocDelimiter
+hi def link cdrtocHeaderCDTextDataBinaryStart              cdrtocCDTextDataBinaryStart
+hi def link cdrtocString                                   String
+hi def link cdrtocCDTextDataString                         cdrtocString
+hi def link cdrtocHeaderCDTextDataString                   cdrtocCDTextDataString
+hi def link cdrtocCDTextDataStringDelimiters               cdrtocDelimiter
+hi def link cdrtocHeaderCDTextDataStringDelimiters         cdrtocCDTextDataStringDelimiters
+hi def link cdrtocCDTextDataStringSpecialChar              SpecialChar
+hi def link cdrtocHeaderCDTextDataStringSpecialChar        cdrtocCDTextDataStringSpecialChar
+hi def link cdrtocCDTextEnd                                cdrtocDelimiter
+hi def link cdrtocHeaderCDTextEnd                          cdrtocCDTextEnd
+hi def link cdrtocType                                     Type
+hi def link cdrtocCDTextItem                               cdrtocType
+hi def link cdrtocHeaderCDTextItem                         cdrtocCDTextItem
+hi def link cdrtocHeaderCDTextLanguageMap                  cdrtocHeaderKeyword
+hi def link cdrtocCDTextStart                              cdrtocDelimiter
+hi def link cdrtocHeaderCDTextStart                        cdrtocCDTextStart
+hi def link cdrtocHeaderCatalog                            cdrtocHeaderKeyword
+hi def link cdrtocHeaderCatalogNumber                      cdrtocString
+hi def link cdrtocComment                                  Comment
+hi def link cdrtocHeaderCommentInitial                     cdrtocComment
+hi def link cdrtocHeaderLanguage                           cdrtocKeyword
+hi def link cdrtocLanguageEnd                              cdrtocDelimiter
+hi def link cdrtocHeaderLanguageEnd                        cdrtocLanguageEnd
+hi def link cdrtocHeaderLanguageMapColon                   cdrtocDelimiter
+hi def link cdrtocIdentifier                               Identifier
+hi def link cdrtocHeaderLanguageMapCountryCode             cdrtocNumber
+hi def link cdrtocHeaderLanguageMapCountryCodeName         cdrtocIdentifier
+hi def link cdrtocHeaderLanguageMapEnd                     cdrtocDelimiter
+hi def link cdrtocHeaderLanguageMapLanguageNumber          cdrtocNumber
+hi def link cdrtocHeaderLanguageMapStart                   cdrtocDelimiter
+hi def link cdrtocLanguageNumber                           cdrtocNumber
+hi def link cdrtocHeaderLanguageNumber                     cdrtocLanguageNumber
+hi def link cdrtocLanguageStart                            cdrtocDelimiter
+hi def link cdrtocHeaderLanguageStart                      cdrtocLanguageStart
+hi def link cdrtocHeaderTOCType                            cdrtocType
+hi def link cdrtocTodo                                     Todo
+hi def link cdrtocTrackKeyword                             cdrtocKeyword
+hi def link cdrtocTrack                                    cdrtocTrackKeyword
+hi def link cdrtocTrackCDText                              cdrtocTrackKeyword
+hi def link cdrtocTrackCDTextDataBinaryEnd                 cdrtocHeaderCDTextDataBinaryEnd
+hi def link cdrtocTrackCDTextDataBinaryInteger             cdrtocHeaderCDTextDataBinaryInteger
+hi def link cdrtocTrackCDTextDataBinarySeparator           cdrtocHeaderCDTextDataBinarySeparator
+hi def link cdrtocTrackCDTextDataBinaryStart               cdrtocHeaderCDTextDataBinaryStart
+hi def link cdrtocTrackCDTextDataString                    cdrtocHeaderCDTextDataString
+hi def link cdrtocTrackCDTextDataStringDelimiters          cdrtocCDTextDataStringDelimiters
+hi def link cdrtocTrackCDTextDataStringSpecialChar         cdrtocCDTextDataStringSpecialChar
+hi def link cdrtocTrackCDTextEnd                           cdrtocCDTextEnd
+hi def link cdrtocTrackCDTextItem                          cdrtocCDTextItem
+hi def link cdrtocTrackCDTextStart                         cdrtocCDTextStart
+hi def link cdrtocLength                                   cdrtocNumber
+hi def link cdrtocTrackDatafileLength                      cdrtocLength
+hi def link cdrtocTrackFifoLength                          cdrtocLength
+hi def link cdrtocPreProc                                  PreProc
+hi def link cdrtocTrackFlag                                cdrtocPreProc
+hi def link cdrtocTrackFlagCopy                            cdrtocTrackFlag
+hi def link cdrtocSpecial                                  Special
+hi def link cdrtocTrackFlagNo                              cdrtocSpecial
+hi def link cdrtocTrackFlagPreEmphasis                     cdrtocTrackFlag
+hi def link cdrtocTrackISRC                                cdrtocTrackFlag
+hi def link cdrtocTrackIndex                               cdrtocTrackKeyword
+hi def link cdrtocMMSSFF                                   cdrtocLength
+hi def link cdrtocTrackIndexMMSSFF                         cdrtocMMSSFF
+hi def link cdrtocTrackCDTextLanguage                      cdrtocTrackKeyword
+hi def link cdrtocTrackCDTextLanguageEnd                   cdrtocLanguageEnd
+hi def link cdrtocTrackCDTextLanguageNumber                cdrtocLanguageNumber
+hi def link cdrtocTrackCDTextLanguageStart                 cdrtocLanguageStart
+hi def link cdrtocTrackContents                            StorageClass
+hi def link cdrtocTrackMarker                              cdrtocTrackContents
+hi def link cdrtocTrackMarkerEndMMSSFF                     cdrtocMMSSFF
+hi def link cdrtocTrackMarkerStartMMSSFF                   cdrtocMMSSFF
+hi def link cdrtocTrackMode                                Type
+hi def link cdrtocTrackPregap                              cdrtocTrackContents
+hi def link cdrtocTrackPregapMMSSFF                        cdrtocMMSSFF
+hi def link cdrtocTrackSilenceLength                       cdrtocLength
+hi def link cdrtocTrackSubChannelMode                      cdrtocPreProc
+hi def link cdrtocTrackSubTrack                            cdrtocTrackContents
+hi def link cdrtocFilename                                 cdrtocString
+hi def link cdrtocTrackSubTrackDatafileFilename            cdrtocFilename
+hi def link cdrtocTrackSubTrackDatafileFilenameDelimiters  cdrtocTrackSubTrackDatafileFilename
+hi def link cdrtocSpecialChar                              SpecialChar
+hi def link cdrtocTrackSubTrackDatafileFilenameSpecialChar cdrtocSpecialChar
+hi def link cdrtocTrackSubTrackDatafileLength              cdrtocLength
+hi def link cdrtocTrackSubTrackFifoFilename                cdrtocFilename
+hi def link cdrtocTrackSubTrackFifoFilenameDelimiters      cdrtocTrackSubTrackFifoFilename
+hi def link cdrtocTrackSubTrackFifoFilenameSpecialChar     cdrtocSpecialChar
+hi def link cdrtocTrackSubTrackFifoLength                  cdrtocLength
+hi def link cdrtocTrackSubTrackFileFilename                cdrtocFilename
+hi def link cdrtocTrackSubTrackFileFilenameDelimiters      cdrtocTrackSubTrackFileFilename
+hi def link cdrtocTrackSubTrackFileFilenameSpecialChar     cdrtocSpecialChar
+hi def link cdrtocTrackSubTrackFileLength                  cdrtocLength
+hi def link cdrtocTrackSubTrackFileStart                   cdrtocLength
+hi def link cdrtocTrackSubTrackZeroDataLength              cdrtocLength
+hi def link cdrtocTrackSubTrackZeroDataMode                Type
+hi def link cdrtocTrackSubTrackZeroDataSubChannelMode      cdrtocPreProc
+hi def link cdrtocTrackSubTrackdatafileFilenameSpecialChar cdrtocSpecialChar
+
+let b:current_syntax = "cdrtoc"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/syntax/django.vim
+++ b/runtime/syntax/django.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Django template
 " Maintainer:	Dave Hodder <dmh@dmh.org.uk>
-" Last Change:	2007 Jan 26
+" Last Change:	2007 Apr 21
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -27,7 +27,7 @@ syn keyword djangoStatement contained pa
 syn keyword djangoStatement contained endspaceless ssi templatetag openblock
 syn keyword djangoStatement contained closeblock openvariable closevariable
 syn keyword djangoStatement contained openbrace closebrace opencomment
-syn keyword djangoStatement contained closecomment widthratio with
+syn keyword djangoStatement contained closecomment widthratio url with endwith
 syn keyword djangoStatement contained get_current_language trans noop blocktrans
 syn keyword djangoStatement contained endblocktrans get_available_languages
 syn keyword djangoStatement contained get_current_language_bidi plural
@@ -53,8 +53,8 @@ syn keyword djangoTodo contained TODO FI
 syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/
 
 " Mark illegal characters within tag and variables blocks
-syn match djangoTagError contained "#}\|{{\|[^%]}}\|[<>!=&#]"
-syn match djangoVarError contained "#}\|{%\|%}\|[<>!=&#%]"
+syn match djangoTagError contained "#}\|{{\|[^%]}}\|[<>!&#]"
+syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]"
 
 " Django template tag and variable blocks
 syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display
--- a/src/arabic.h
+++ b/src/arabic.h
@@ -7,7 +7,7 @@
  */
 
 /*
- * Arabic characters are catagorized into following types:
+ * Arabic characters are categorized into following types:
  *
  * Isolated	- iso-8859-6 form	  char denoted with	a_*
  * Initial	- unicode form-B start	  char denoted with	a_i_*
--- a/src/gui_gtk.c
+++ b/src/gui_gtk.c
@@ -53,6 +53,9 @@
 # ifdef bindtextdomain
 #  undef bindtextdomain
 # endif
+# ifdef bindtextdomain_codeset
+#  undef bindtextdomain_codeset
+# endif
 # if defined(FEAT_GETTEXT) && !defined(ENABLE_NLS)
 #  define ENABLE_NLS	/* so the texts in the dialog boxes are translated */
 # endif
@@ -449,8 +452,8 @@ menu_item_new(vimmenu_T *menu, GtkWidget
  *
  * gtk_menu_item_new_with_label(menu->dname);
  *
- * This is neccessary, since there is no other way in GTK+ 1 to get the
- * not automatically parsed accellerator stuff right.
+ * This is necessary, since there is no other way in GTK+ 1 to get the
+ * not automatically parsed accelerator stuff right.
  */
     static void
 menu_item_new(vimmenu_T *menu, GtkWidget *parent_widget)
@@ -828,7 +831,7 @@ gui_mch_set_text_area_pos(int x, int y, 
 
 #if defined(FEAT_MENU) || defined(PROTO)
 /*
- * Enable or disable accelators for the toplevel menus.
+ * Enable or disable accelerators for the toplevel menus.
  */
     void
 gui_gtk_set_mnemonics(int enable)
@@ -2493,7 +2496,7 @@ find_key_press_event(
 	return TRUE;
 #endif
 
-    /* It would be delightfull if it where possible to do search history
+    /* It would be delightful if it where possible to do search history
      * operations on the K_UP and K_DOWN keys here.
      */