summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2010-11-16 20:34:40 +0100
committerBram Moolenaar <bram@vim.org>2010-11-16 20:34:40 +0100
commita75a223cf6c7c3ccc4c2926d6548cbc646441118 (patch)
treebb0a36bf36f4827a8c5f9e2b56cd0117e9680512 /runtime
parenta3b14317ed316e608912803ef087a6bf5ee8bc4c (diff)
downloadvim-a75a223cf6c7c3ccc4c2926d6548cbc646441118.tar.gz
Updated runtime files.
Diffstat (limited to 'runtime')
-rw-r--r--runtime/autoload/tohtml.vim457
-rw-r--r--runtime/doc/arabic.txt4
-rw-r--r--runtime/doc/diff.txt6
-rw-r--r--runtime/doc/eval.txt4
-rw-r--r--runtime/doc/gui.txt42
-rw-r--r--runtime/doc/insert.txt10
-rw-r--r--runtime/doc/intro.txt6
-rw-r--r--runtime/doc/map.txt24
-rw-r--r--runtime/doc/options.txt14
-rw-r--r--runtime/doc/pi_tar.txt14
-rw-r--r--runtime/doc/quotes.txt23
-rw-r--r--runtime/doc/syntax.txt83
-rw-r--r--runtime/doc/tags2
-rw-r--r--runtime/doc/todo.txt105
-rw-r--r--runtime/doc/usr_01.txt17
-rw-r--r--runtime/doc/usr_41.txt3
-rw-r--r--runtime/doc/various.txt3
-rw-r--r--runtime/doc/version7.txt4
-rw-r--r--runtime/doc/vim2html.pl2
-rw-r--r--runtime/plugin/tohtml.vim43
-rw-r--r--runtime/syntax/2html.vim19
-rw-r--r--runtime/syntax/help.vim3
-rw-r--r--runtime/syntax/xf86conf.vim8
23 files changed, 689 insertions, 207 deletions
diff --git a/runtime/autoload/tohtml.vim b/runtime/autoload/tohtml.vim
index c24d6ff4..c9dd2f76 100644
--- a/runtime/autoload/tohtml.vim
+++ b/runtime/autoload/tohtml.vim
@@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
-" Last Change: 2010 Aug 12
+" Last Change: 2010 Oct 07
"
" Additional contributors:
"
@@ -13,10 +13,284 @@
let s:cpo_sav = &cpo
set cpo-=C
-func! tohtml#Convert2HTML(line1, line2)
+" Automatically find charsets from all encodings supported natively by Vim. With
+" the 8bit- and 2byte- prefixes, Vim can actually support more encodings than
+" this. Let the user specify these however since they won't be supported on
+" every system. TODO: how? g:html_charsets and g:html_encodings?
+"
+" Note, not all of Vim's supported encodings have a charset to use.
+"
+" Names in this list are from:
+" http://www.iana.org/assignments/character-sets
+" g:tohtml#encoding_to_charset: {{{
+let g:tohtml#encoding_to_charset = {
+ \ 'latin1' : 'ISO-8859-1',
+ \ 'iso-8859-2' : 'ISO-8859-2',
+ \ 'iso-8859-3' : 'ISO-8859-3',
+ \ 'iso-8859-4' : 'ISO-8859-4',
+ \ 'iso-8859-5' : 'ISO-8859-5',
+ \ 'iso-8859-6' : 'ISO-8859-6',
+ \ 'iso-8859-7' : 'ISO-8859-7',
+ \ 'iso-8859-8' : 'ISO-8859-8',
+ \ 'iso-8859-9' : 'ISO-8859-9',
+ \ 'iso-8859-10' : '',
+ \ 'iso-8859-13' : 'ISO-8859-13',
+ \ 'iso-8859-14' : '',
+ \ 'iso-8859-15' : 'ISO-8859-15',
+ \ 'koi8-r' : 'KOI8-R',
+ \ 'koi8-u' : 'KOI8-U',
+ \ 'macroman' : 'macintosh',
+ \ 'cp437' : '',
+ \ 'cp775' : '',
+ \ 'cp850' : '',
+ \ 'cp852' : '',
+ \ 'cp855' : '',
+ \ 'cp857' : '',
+ \ 'cp860' : '',
+ \ 'cp861' : '',
+ \ 'cp862' : '',
+ \ 'cp863' : '',
+ \ 'cp865' : '',
+ \ 'cp866' : 'IBM866',
+ \ 'cp869' : '',
+ \ 'cp874' : '',
+ \ 'cp1250' : 'windows-1250',
+ \ 'cp1251' : 'windows-1251',
+ \ 'cp1253' : 'windows-1253',
+ \ 'cp1254' : 'windows-1254',
+ \ 'cp1255' : 'windows-1255',
+ \ 'cp1256' : 'windows-1256',
+ \ 'cp1257' : 'windows-1257',
+ \ 'cp1258' : 'windows-1258',
+ \ 'euc-jp' : 'EUC-JP',
+ \ 'sjis' : 'Shift_JIS',
+ \ 'cp932' : 'Shift_JIS',
+ \ 'cp949' : '',
+ \ 'euc-kr' : 'EUC-KR',
+ \ 'cp936' : 'GBK',
+ \ 'euc-cn' : 'GB2312',
+ \ 'big5' : 'Big5',
+ \ 'cp950' : 'Big5',
+ \ 'utf-8' : 'UTF-8',
+ \ 'ucs-2' : 'UTF-8',
+ \ 'ucs-2le' : 'UTF-8',
+ \ 'utf-16' : 'UTF-8',
+ \ 'utf-16le' : 'UTF-8',
+ \ 'ucs-4' : 'UTF-8',
+ \ 'ucs-4le' : 'UTF-8',
+ \ }
+lockvar g:tohtml#encoding_to_charset
+" Notes:
+" 1. All UCS/UTF are converted to UTF-8 because it is much better supported
+" 2. Any blank spaces are there because Vim supports it but at least one major
+" web browser does not according to http://wiki.whatwg.org/wiki/Web_Encodings.
+" }}}
+
+" Only automatically find encodings supported natively by Vim, let the user
+" specify the encoding if it's not natively supported. This function is only
+" used when the user specifies the charset, they better know what they are
+" doing!
+"
+" Names in this list are from:
+" http://www.iana.org/assignments/character-sets
+" g:tohtml#charset_to_encoding: {{{
+let g:tohtml#charset_to_encoding = {
+ \ 'iso_8859-1:1987' : 'latin1',
+ \ 'iso-ir-100' : 'latin1',
+ \ 'iso_8859-1' : 'latin1',
+ \ 'iso-8859-1' : 'latin1',
+ \ 'latin1' : 'latin1',
+ \ 'l1' : 'latin1',
+ \ 'ibm819' : 'latin1',
+ \ 'cp819' : 'latin1',
+ \ 'csisolatin1' : 'latin1',
+ \ 'iso_8859-2:1987' : 'iso-8859-2',
+ \ 'iso-ir-101' : 'iso-8859-2',
+ \ 'iso_8859-2' : 'iso-8859-2',
+ \ 'iso-8859-2' : 'iso-8859-2',
+ \ 'latin2' : 'iso-8859-2',
+ \ 'l2' : 'iso-8859-2',
+ \ 'csisolatin2' : 'iso-8859-2',
+ \ 'iso_8859-3:1988' : 'iso-8859-3',
+ \ 'iso-ir-109' : 'iso-8859-3',
+ \ 'iso_8859-3' : 'iso-8859-3',
+ \ 'iso-8859-3' : 'iso-8859-3',
+ \ 'latin3' : 'iso-8859-3',
+ \ 'l3' : 'iso-8859-3',
+ \ 'csisolatin3' : 'iso-8859-3',
+ \ 'iso_8859-4:1988' : 'iso-8859-4',
+ \ 'iso-ir-110' : 'iso-8859-4',
+ \ 'iso_8859-4' : 'iso-8859-4',
+ \ 'iso-8859-4' : 'iso-8859-4',
+ \ 'latin4' : 'iso-8859-4',
+ \ 'l4' : 'iso-8859-4',
+ \ 'csisolatin4' : 'iso-8859-4',
+ \ 'iso_8859-5:1988' : 'iso-8859-5',
+ \ 'iso-ir-144' : 'iso-8859-5',
+ \ 'iso_8859-5' : 'iso-8859-5',
+ \ 'iso-8859-5' : 'iso-8859-5',
+ \ 'cyrillic' : 'iso-8859-5',
+ \ 'csisolatincyrillic' : 'iso-8859-5',
+ \ 'iso_8859-6:1987' : 'iso-8859-6',
+ \ 'iso-ir-127' : 'iso-8859-6',
+ \ 'iso_8859-6' : 'iso-8859-6',
+ \ 'iso-8859-6' : 'iso-8859-6',
+ \ 'ecma-114' : 'iso-8859-6',
+ \ 'asmo-708' : 'iso-8859-6',
+ \ 'arabic' : 'iso-8859-6',
+ \ 'csisolatinarabic' : 'iso-8859-6',
+ \ 'iso_8859-7:1987' : 'iso-8859-7',
+ \ 'iso-ir-126' : 'iso-8859-7',
+ \ 'iso_8859-7' : 'iso-8859-7',
+ \ 'iso-8859-7' : 'iso-8859-7',
+ \ 'elot_928' : 'iso-8859-7',
+ \ 'ecma-118' : 'iso-8859-7',
+ \ 'greek' : 'iso-8859-7',
+ \ 'greek8' : 'iso-8859-7',
+ \ 'csisolatingreek' : 'iso-8859-7',
+ \ 'iso_8859-8:1988' : 'iso-8859-8',
+ \ 'iso-ir-138' : 'iso-8859-8',
+ \ 'iso_8859-8' : 'iso-8859-8',
+ \ 'iso-8859-8' : 'iso-8859-8',
+ \ 'hebrew' : 'iso-8859-8',
+ \ 'csisolatinhebrew' : 'iso-8859-8',
+ \ 'iso_8859-9:1989' : 'iso-8859-9',
+ \ 'iso-ir-148' : 'iso-8859-9',
+ \ 'iso_8859-9' : 'iso-8859-9',
+ \ 'iso-8859-9' : 'iso-8859-9',
+ \ 'latin5' : 'iso-8859-9',
+ \ 'l5' : 'iso-8859-9',
+ \ 'csisolatin5' : 'iso-8859-9',
+ \ 'iso-8859-10' : 'iso-8859-10',
+ \ 'iso-ir-157' : 'iso-8859-10',
+ \ 'l6' : 'iso-8859-10',
+ \ 'iso_8859-10:1992' : 'iso-8859-10',
+ \ 'csisolatin6' : 'iso-8859-10',
+ \ 'latin6' : 'iso-8859-10',
+ \ 'iso-8859-13' : 'iso-8859-13',
+ \ 'iso-8859-14' : 'iso-8859-14',
+ \ 'iso-ir-199' : 'iso-8859-14',
+ \ 'iso_8859-14:1998' : 'iso-8859-14',
+ \ 'iso_8859-14' : 'iso-8859-14',
+ \ 'latin8' : 'iso-8859-14',
+ \ 'iso-celtic' : 'iso-8859-14',
+ \ 'l8' : 'iso-8859-14',
+ \ 'iso-8859-15' : 'iso-8859-15',
+ \ 'iso_8859-15' : 'iso-8859-15',
+ \ 'latin-9' : 'iso-8859-15',
+ \ 'koi8-r' : 'koi8-r',
+ \ 'cskoi8r' : 'koi8-r',
+ \ 'koi8-u' : 'koi8-u',
+ \ 'macintosh' : 'macroman',
+ \ 'mac' : 'macroman',
+ \ 'csmacintosh' : 'macroman',
+ \ 'ibm437' : 'cp437',
+ \ 'cp437' : 'cp437',
+ \ '437' : 'cp437',
+ \ 'cspc8codepage437' : 'cp437',
+ \ 'ibm775' : 'cp775',
+ \ 'cp775' : 'cp775',
+ \ 'cspc775baltic' : 'cp775',
+ \ 'ibm850' : 'cp850',
+ \ 'cp850' : 'cp850',
+ \ '850' : 'cp850',
+ \ 'cspc850multilingual' : 'cp850',
+ \ 'ibm852' : 'cp852',
+ \ 'cp852' : 'cp852',
+ \ '852' : 'cp852',
+ \ 'cspcp852' : 'cp852',
+ \ 'ibm855' : 'cp855',
+ \ 'cp855' : 'cp855',
+ \ '855' : 'cp855',
+ \ 'csibm855' : 'cp855',
+ \ 'ibm857' : 'cp857',
+ \ 'cp857' : 'cp857',
+ \ '857' : 'cp857',
+ \ 'csibm857' : 'cp857',
+ \ 'ibm860' : 'cp860',
+ \ 'cp860' : 'cp860',
+ \ '860' : 'cp860',
+ \ 'csibm860' : 'cp860',
+ \ 'ibm861' : 'cp861',
+ \ 'cp861' : 'cp861',
+ \ '861' : 'cp861',
+ \ 'cp-is' : 'cp861',
+ \ 'csibm861' : 'cp861',
+ \ 'ibm862' : 'cp862',
+ \ 'cp862' : 'cp862',
+ \ '862' : 'cp862',
+ \ 'cspc862latinhebrew' : 'cp862',
+ \ 'ibm863' : 'cp863',
+ \ 'cp863' : 'cp863',
+ \ '863' : 'cp863',
+ \ 'csibm863' : 'cp863',
+ \ 'ibm865' : 'cp865',
+ \ 'cp865' : 'cp865',
+ \ '865' : 'cp865',
+ \ 'csibm865' : 'cp865',
+ \ 'ibm866' : 'cp866',
+ \ 'cp866' : 'cp866',
+ \ '866' : 'cp866',
+ \ 'csibm866' : 'cp866',
+ \ 'ibm869' : 'cp869',
+ \ 'cp869' : 'cp869',
+ \ '869' : 'cp869',
+ \ 'cp-gr' : 'cp869',
+ \ 'csibm869' : 'cp869',
+ \ 'windows-1250' : 'cp1250',
+ \ 'windows-1251' : 'cp1251',
+ \ 'windows-1253' : 'cp1253',
+ \ 'windows-1254' : 'cp1254',
+ \ 'windows-1255' : 'cp1255',
+ \ 'windows-1256' : 'cp1256',
+ \ 'windows-1257' : 'cp1257',
+ \ 'windows-1258' : 'cp1258',
+ \ 'extended_unix_code_packed_format_for_japanese' : 'euc-jp',
+ \ 'cseucpkdfmtjapanese' : 'euc-jp',
+ \ 'euc-jp' : 'euc-jp',
+ \ 'shift_jis' : 'sjis',
+ \ 'ms_kanji' : 'sjis',
+ \ 'sjis' : 'sjis',
+ \ 'csshiftjis' : 'sjis',
+ \ 'ibm-thai' : 'cp874',
+ \ 'csibmthai' : 'cp874',
+ \ 'ks_c_5601-1987' : 'cp949',
+ \ 'iso-ir-149' : 'cp949',
+ \ 'ks_c_5601-1989' : 'cp949',
+ \ 'ksc_5601' : 'cp949',
+ \ 'korean' : 'cp949',
+ \ 'csksc56011987' : 'cp949',
+ \ 'euc-kr' : 'euc-kr',
+ \ 'cseuckr' : 'euc-kr',
+ \ 'gbk' : 'cp936',
+ \ 'cp936' : 'cp936',
+ \ 'ms936' : 'cp936',
+ \ 'windows-936' : 'cp936',
+ \ 'gb_2312-80' : 'euc-cn',
+ \ 'iso-ir-58' : 'euc-cn',
+ \ 'chinese' : 'euc-cn',
+ \ 'csiso58gb231280' : 'euc-cn',
+ \ 'big5' : 'big5',
+ \ 'csbig5' : 'big5',
+ \ 'utf-8' : 'utf-8',
+ \ 'iso-10646-ucs-2' : 'ucs-2',
+ \ 'csunicode' : 'ucs-2',
+ \ 'utf-16' : 'utf-16',
+ \ 'utf-16be' : 'utf-16',
+ \ 'utf-16le' : 'utf-16le',
+ \ 'utf-32' : 'ucs-4',
+ \ 'utf-32be' : 'ucs-4',
+ \ 'utf-32le' : 'ucs-4le',
+ \ 'iso-10646-ucs-4' : 'ucs-4',
+ \ 'csucs4' : 'ucs-4'
+ \ }
+lockvar g:tohtml#charset_to_encoding
+"}}}
+
+func! tohtml#Convert2HTML(line1, line2) "{{{
let s:settings = tohtml#GetUserSettings()
- if !&diff || s:settings.diff_one_file
+ if !&diff || s:settings.diff_one_file "{{{
if a:line2 >= a:line1
let g:html_start_line = a:line1
let g:html_end_line = a:line2
@@ -24,31 +298,50 @@ func! tohtml#Convert2HTML(line1, line2)
let g:html_start_line = a:line2
let g:html_end_line = a:line1
endif
- runtime syntax/2html.vim
- else
+ runtime syntax/2html.vim "}}}
+ else "{{{
let win_list = []
let buf_list = []
windo | if &diff | call add(win_list, winbufnr(0)) | endif
let s:settings.whole_filler = 1
let g:html_diff_win_num = 0
for window in win_list
+ " switch to the next buffer to convert
exe ":" . bufwinnr(window) . "wincmd w"
+
+ " figure out whether current charset and encoding will work, if not
+ " default to UTF-8
+ if !exists('g:html_use_encoding') &&
+ \ (&l:fileencoding!='' && &l:fileencoding!=s:settings.vim_encoding ||
+ \ &l:fileencoding=='' && &encoding!=s:settings.vim_encoding)
+ echohl WarningMsg
+ echomsg "TOhtml: mismatched file encodings in Diff buffers, using UTF-8"
+ echohl None
+ let s:settings.vim_encoding = 'utf-8'
+ let s:settings.encoding = 'UTF-8'
+ endif
+
+ " set up for diff-mode conversion
let g:html_start_line = 1
let g:html_end_line = line('$')
let g:html_diff_win_num += 1
+
+ " convert this file
runtime syntax/2html.vim
+
+ " remember the HTML buffer for later combination
call add(buf_list, bufnr('%'))
endfor
unlet g:html_diff_win_num
call tohtml#Diff2HTML(win_list, buf_list)
- endif
+ endif "}}}
unlet g:html_start_line
unlet g:html_end_line
unlet s:settings
-endfunc
+endfunc "}}}
-func! tohtml#Diff2HTML(win_list, buf_list)
+func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let xml_line = ""
let tag_close = '>'
@@ -87,7 +380,7 @@ func! tohtml#Diff2HTML(win_list, buf_list)
call add(html, '<head>')
" include encoding as close to the top as possible, but only if not already
- " contained in XML information (to avoid haggling over content type)
+ " contained in XML information
if s:settings.encoding != "" && !s:settings.use_xhtml
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
endif
@@ -133,7 +426,8 @@ func! tohtml#Diff2HTML(win_list, buf_list)
let s:body_end_line = getline('.')
endif
- " Grab the style information. Some of this will be duplicated...
+ " Grab the style information. Some of this will be duplicated so only insert
+ " it if it's not already there. {{{
1
let style_start = search('^<style type="text/css">')
1
@@ -151,8 +445,10 @@ func! tohtml#Diff2HTML(win_list, buf_list)
let insert_index += 1
endif
endfor
- endif
+ endif " }}}
+ " everything new will get added before the diff styles so diff highlight
+ " properly overrides normal highlight
if diff_style_start != 0
let insert_index = diff_style_start
endif
@@ -203,6 +499,20 @@ func! tohtml#Diff2HTML(win_list, buf_list)
" just in case some user autocmd creates content in the new buffer, make sure
" it is empty before proceeding
%d
+
+ " set the fileencoding to match the charset we'll be using
+ let &l:fileencoding=s:settings.vim_encoding
+
+ " According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
+ " order mark is highly recommend on the web when using multibyte encodings. But,
+ " it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
+ " determine when it is actually inserted.
+ if s:settings.vim_encoding == 'utf-8'
+ setlocal nobomb
+ else
+ setlocal bomb
+ endif
+
call append(0, html)
if len(style) > 0
@@ -210,7 +520,7 @@ func! tohtml#Diff2HTML(win_list, buf_list)
let style_start = search('^</head>')-1
" Insert javascript to toggle matching folds open and closed in all windows,
- " if dynamic folding is active.
+ " if dynamic folding is active. {{{
if s:settings.dynamic_folds
call append(style_start, [
\ "<script type='text/javascript'>",
@@ -234,13 +544,13 @@ func! tohtml#Diff2HTML(win_list, buf_list)
\ s:settings.use_xhtml ? '//]]>' : " -->",
\ "</script>"
\ ])
- endif
+ endif "}}}
" Insert styles from all the generated html documents and additional styles
" for the table-based layout of the side-by-side diff. The diff should take
" up the full browser window (but not more), and be static in size,
" horizontally scrollable when the lines are too long. Otherwise, the diff
- " is pretty useless for really long lines.
+ " is pretty useless for really long lines. {{{
if s:settings.use_css
call append(style_start,
\ ['<style type="text/css">']+
@@ -252,28 +562,28 @@ func! tohtml#Diff2HTML(win_list, buf_list)
\ 'td div { overflow: auto; }',
\ s:settings.use_xhtml ? '' : '-->',
\ '</style>'
- \ ])
- endif
+ \])
+ endif "}}}
endif
let &paste = s:old_paste
let &magic = s:old_magic
-endfunc
+endfunc "}}}
" Gets a single user option and sets it in the passed-in Dict, or gives it the
" default value if the option doesn't actually exist.
-func! tohtml#GetOption(settings, option, default)
+func! tohtml#GetOption(settings, option, default) "{{{
if exists('g:html_'.a:option)
let a:settings[a:option] = g:html_{a:option}
else
let a:settings[a:option] = a:default
endif
-endfunc
+endfunc "}}}
" returns a Dict containing the values of all user options for 2html, including
" default values for those not given an explicit value by the user. Discards the
" html_ prefix of the option for nicer looking code.
-func! tohtml#GetUserSettings()
+func! tohtml#GetUserSettings() "{{{
if exists('s:settings')
" just restore the known options if we've already retrieved them
return s:settings
@@ -289,7 +599,7 @@ func! tohtml#GetUserSettings()
let g:html_use_xhtml = g:use_xhtml
endif
- " get current option settings with appropriate defaults
+ " get current option settings with appropriate defaults {{{
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
call tohtml#GetOption(user_settings, 'number_lines', &number )
@@ -302,8 +612,9 @@ func! tohtml#GetUserSettings()
call tohtml#GetOption(user_settings, 'no_pre', 0 )
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
+ " }}}
- " override those settings that need it
+ " override those settings that need it {{{
" hover opening implies dynamic folding
if user_settings.hover_unfold
@@ -330,49 +641,91 @@ func! tohtml#GetUserSettings()
" aren't allowed inside a <pre> block
if !user_settings.use_css
let user_settings.no_pre = 1
- endif
+ endif "}}}
- " Figure out proper MIME charset from the 'encoding' option.
- if exists("g:html_use_encoding")
+ if exists("g:html_use_encoding") "{{{
+ " user specified the desired MIME charset, figure out proper
+ " 'fileencoding' from it or warn the user if we cannot
let user_settings.encoding = g:html_use_encoding
+ let user_settings.vim_encoding = tohtml#EncodingFromCharset(g:html_use_encoding)
+ if user_settings.vim_encoding == ''
+ echohl WarningMsg
+ echomsg "TOhtml: file encoding for"
+ \ g:html_use_encoding
+ \ "unknown, please set 'fileencoding'"
+ echohl None
+ endif
else
- let vim_encoding = &encoding
- if vim_encoding =~ '^8bit\|^2byte'
- let vim_encoding = substitute(vim_encoding, '^8bit-\|^2byte-', '', '')
+ " Figure out proper MIME charset from 'fileencoding' if possible
+ if &l:fileencoding != ''
+ let user_settings.vim_encoding = &l:fileencoding
+ call tohtml#CharsetFromEncoding(user_settings)
+ endif
+
+ " else from 'encoding' if possible
+ if &l:fileencoding == '' || user_settings.encoding == ''
+ let user_settings.vim_encoding = &encoding
+ call tohtml#CharsetFromEncoding(user_settings)
endif
- if vim_encoding == 'latin1'
- let user_settings.encoding = 'iso-8859-1'
- elseif vim_encoding =~ "^cp12"
- let user_settings.encoding = substitute(vim_encoding, 'cp', 'windows-', '')
- elseif vim_encoding == 'sjis' || vim_encoding == 'cp932'
- let user_settings.encoding = 'Shift_JIS'
- elseif vim_encoding == 'big5' || vim_encoding == 'cp950'
- let user_settings.encoding = "Big5"
- elseif vim_encoding == 'euc-cn'
- let user_settings.encoding = 'GB_2312-80'
- elseif vim_encoding == 'euc-tw'
- let user_settings.encoding = ""
- elseif vim_encoding =~ '^euc\|^iso\|^koi'
- let user_settings.encoding = substitute(vim_encoding, '.*', '\U\0', '')
- elseif vim_encoding == 'cp949'
- let user_settings.encoding = 'KS_C_5601-1987'
- elseif vim_encoding == 'cp936'
- let user_settings.encoding = 'GBK'
- elseif vim_encoding =~ '^ucs\|^utf'
+
+ " else default to UTF-8 and warn user
+ if user_settings.encoding == ''
+ let user_settings.vim_encoding = 'utf-8'
let user_settings.encoding = 'UTF-8'
- else
- let user_settings.encoding = ""
+ echohl WarningMsg
+ echomsg "TOhtml: couldn't determine MIME charset, using UTF-8"
+ echohl None
endif
- endif
+ endif "}}}
" TODO: font
return user_settings
endif
-endfunc
+endfunc "}}}
+
+" get the proper HTML charset name from a Vim encoding option.
+function! tohtml#CharsetFromEncoding(settings) "{{{
+ let l:vim_encoding = a:settings.vim_encoding
+ if exists('g:html_charset_override') && has_key(g:html_charset_override, l:vim_encoding)
+ let a:settings.encoding = g:html_charset_override[l:vim_encoding]
+ else
+ if l:vim_encoding =~ '^8bit\|^2byte'
+ " 8bit- and 2byte- prefixes are to indicate encodings available on the
+ " system that Vim will convert with iconv(), look up just the encoding name,
+ " not Vim's prefix.
+ let l:vim_encoding = substitute(l:vim_encoding, '^8bit-\|^2byte-', '', '')
+ endif
+ if has_key(g:tohtml#encoding_to_charset, l:vim_encoding)
+ let a:settings.encoding = g:tohtml#encoding_to_charset[l:vim_encoding]
+ else
+ let a:settings.encoding = ""
+ endif
+ endif
+ if a:settings.encoding != ""
+ let l:vim_encoding = tohtml#EncodingFromCharset(a:settings.encoding)
+ if l:vim_encoding != ""
+ " if the Vim encoding to HTML encoding conversion is set up (by default or
+ " by the user) to convert to a different encoding, we need to also change
+ " the Vim encoding of the new buffer
+ let a:settings.vim_encoding = l:vim_encoding
+ endif
+ endif
+endfun "}}}
+
+" Get the proper Vim encoding option setting from an HTML charset name.
+function! tohtml#EncodingFromCharset(encoding) "{{{
+ if exists('g:html_encoding_override') && has_key(g:html_encoding_override, a:encoding)
+ return g:html_encoding_override[a:encoding]
+ elseif has_key(g:tohtml#charset_to_encoding, tolower(a:encoding))
+ return g:tohtml#charset_to_encoding[tolower(a:encoding)]
+ else
+ return ""
+ endif
+endfun "}}}
let &cpo = s:cpo_sav
unlet s:cpo_sav
" Make sure any patches will probably use consistent indent
-" vim: ts=8 sw=2 sts=2 noet
+" vim: ts=8 sw=2 sts=2 noet fdm=marker
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index 7a4bfaaa..16674cab 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,4 +1,4 @@
-*arabic.txt* For Vim version 7.3. Last change: 2005 Mar 29
+*arabic.txt* For Vim version 7.3. Last change: 2010 Nov 13
VIM REFERENCE MANUAL by Nadim Shaikli
@@ -146,7 +146,7 @@ o Enable Arabic settings [short-cut]
:set arabic
<
The two above noted possible invocations are the preferred manner
- in which users are instructed to proceed. Baring an enabled 'termbidi'
+ in which users are instructed to proceed. Barring an enabled 'termbidi'
setting, both command options:
1. set the appropriate keymap
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index becbeb36..d9dc24d5 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt* For Vim version 7.3. Last change: 2010 Sep 30
+*diff.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -373,8 +373,8 @@ get an error message. Possible causes:
If it's not clear what the problem is set the 'verbose' option to one or more
to see more messages.
-The self-installing Vim includes a diff program. If you don't have it you
-might want to download a diff.exe. For example from
+The self-installing Vim for MS-Windows includes a diff program. If you don't
+have it you might want to download a diff.exe. For example from
http://jlb.twu.net/code/unixkit.php.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index ec6686cb..4f4092b8 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.3. Last change: 2010 Oct 27
+*eval.txt* For Vim version 7.3. Last change: 2010 Nov 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -4017,7 +4017,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
characters will be used:
" " Normal, Visual and Operator-pending
"!" Insert and Commandline mode
- (|mapmpde-ic|)
+ (|mapmode-ic|)
"sid" The script local ID, used for <sid> mappings
(|<SID>|).
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index f9bbf78d..213f455c 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt* For Vim version 7.3. Last change: 2010 May 14
+*gui.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -156,26 +156,26 @@ configure which ones appear with the 'guioptions' option.
The interface looks like this (with ":set guioptions=mlrb"):
- +------------------------------+
- | File Edit Help | <- Menu bar (m)
- +-+--------------------------+-+
- |^| |^|
- |#| Text area. |#|
- | | | |
- |v|__________________________|v|
- Normal status line -> |-+ File.c 5,2 +-|
- between Vim windows |^|""""""""""""""""""""""""""|^|
- | | | |
- | | Another file buffer. | |
- | | | |
- |#| |#|
- Left scrollbar (l) -> |#| |#| <- Right
- |#| |#| scrollbar (r)
- | | | |
- |v| |v|
- +-+--------------------------+-+
- | |< #### >| | <- Bottom
- +-+--------------------------+-+ scrollbar (b)
+ +------------------------------+ `
+ | File Edit Help | <- Menu bar (m) `
+ +-+--------------------------+-+ `
+ |^| |^| `
+ |#| Text area. |#| `
+ | | | | `
+ |v|__________________________|v| `
+ Normal status line -> |-+ File.c 5,2 +-| `
+ between Vim windows |^|""""""""""""""""""""""""""|^| `
+ | | | | `
+ | | Another file buffer. | | `
+ | | | | `
+ |#| |#| `
+ Left scrollbar (l) -> |#| |#| <- Right `
+ |#| |#| scrollbar (r) `
+ | | | | `
+ |v| |v| `
+ +-+--------------------------+-+ `
+ | |< #### >| | <- Bottom `
+ +-+--------------------------+-+ scrollbar (b) `
Any of the scrollbar or menu components may be turned off by not putting the
appropriate letter in the 'guioptions' string. The bottom scrollbar is
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 3c0f8d32..4ee1c79b 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.3. Last change: 2010 Oct 27
+*insert.txt* For Vim version 7.3. Last change: 2010 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1037,6 +1037,8 @@ items:
items that only differ in case are added
dup when non-zero this match will be added even when an
item with the same word is already present.
+ empty when non-zero this match will be added even when it is
+ an empty string
All of these except 'icase' must be a string. If an item does not meet these
requirements then an error message is given and further items in the list are
@@ -1064,9 +1066,9 @@ match to the total list. These matches should then not appear in the returned
list! Call |complete_check()| now and then to allow the user to press a key
while still searching for matches. Stop searching when it returns non-zero.
-The function is allowed to move the cursor, it is restored afterwards. This
-option cannot be set from a |modeline| or in the |sandbox|, for security
-reasons.
+ *E839* *E840*
+The function is allowed to move the cursor, it is restored afterwards.
+The function is not allowed to move to another window or delete text.
An example that completes the names of the months: >
fun! CompleteMonths(findstart, base)
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 7519365d..c8a32c3a 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt* For Vim version 7.3. Last change: 2010 Sep 29
+*intro.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -703,7 +703,7 @@ Lines longer than the window width will wrap, unless the 'wrap' option is off
(see below). The 'linebreak' option can be set to wrap at a blank character.
If the window has room after the last line of the buffer, Vim will show '~' in
-the first column of the last lines in the window, like this: >
+the first column of the last lines in the window, like this:
+-----------------------+
|some line |
@@ -715,7 +715,7 @@ the first column of the last lines in the window, like this: >
Thus the '~' lines indicate that the end of the buffer was reached.
If the last line in a window doesn't fit, Vim will indicate this with a '@' in
-the first column of the last lines in the window, like this: >
+the first column of the last lines in the window, like this:
+-----------------------+
|first line |
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 055d3338..c18eed10 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 7.3. Last change: 2010 Sep 29
+*map.txt* For Vim version 7.3. Last change: 2010 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1093,16 +1093,20 @@ is executed, it is transformed into a normal Ex command and then executed.
For starters: See section |40.2| in the user manual.
- *E183* *user-cmd-ambiguous*
+ *E183* *E841* *user-cmd-ambiguous*
All user defined commands must start with an uppercase letter, to avoid
-confusion with builtin commands. (There are a few builtin commands, notably
-:Next, :Print and :X, which do start with an uppercase letter. The builtin
-will always take precedence in these cases). The other characters of the user
-command can be uppercase letters, lowercase letters or digits. When using
-digits, note that other commands that take a numeric argument may become
-ambiguous. For example, the command ":Cc2" could be the user command ":Cc2"
-without an argument, or the command ":Cc" with argument "2". It is advised to
-put a space between the command name and the argument to avoid these problems.
+confusion with builtin commands. Exceptions are these builtin commands:
+ :Next
+ :X
+They cannot be used for a user defined command. ":Print" is also an existing
+command, but it is deprecated and can be overruled.
+
+The other characters of the user command can be uppercase letters, lowercase
+letters or digits. When using digits, note that other commands that take a
+numeric argument may become ambiguous. For example, the command ":Cc2" could
+be the user command ":Cc2" without an argument, or the command ":Cc" with
+argument "2". It is advised to put a space between the command name and the
+argument to avoid these problems.
When using a user-defined command, the command can be abbreviated. However, if
an abbreviation is not unique, an error will be issued. Furthermore, a
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 12bedd59..db3ea35d 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.3. Last change: 2010 Oct 23
+*options.txt* For Vim version 7.3. Last change: 2010 Nov 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1699,7 +1699,8 @@ A jump table for the options with a short description can be found at |Q_op|.
with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|
See |complete-functions| for an explanation of how the function is
invoked and what it should return.
-
+ This option cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
*'completeopt'* *'cot'*
'completeopt' 'cot' string (default: "menu,preview")
@@ -2843,6 +2844,7 @@ A jump table for the options with a short description can be found at |Q_op|.
"dos" is not present or no <CR><NL> is found in the file.
Except: if "unix" was chosen, but there is a <CR> before
the first <NL>, and there appear to be more <CR>s than <NL>s in
+ the first few lines, "mac" is used.
4. If 'fileformat' is still not set, the first name from
'fileformats' is used.
When reading a file into an existing buffer, the same is done, but
@@ -6230,8 +6232,9 @@ A jump table for the options with a short description can be found at |Q_op|.
Do smart autoindenting when starting a new line. Works for C-like
programs, but can also be used for other languages. 'cindent' does
something like this, works better in most cases, but is more strict,
- see |C-indenting|. When 'cindent' is on, setting 'si' has no effect.
- 'indentexpr' is a more advanced alternative.
+ see |C-indenting|. When 'cindent' is on or 'smartindent' is set,
+ setting 'si' has no effect. 'indentexpr' is a more advanced
+ alternative.
Normally 'autoindent' should also be on when using 'smartindent'.
An indent is automatically inserted:
- After a line ending in '{'.
@@ -7533,8 +7536,7 @@ A jump table for the options with a short description can be found at |Q_op|.
with an uppercase letter, and don't contain a lowercase
letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
and "_K_L_M" are not. Nested List and Dict items may not be
- read back correctly, you end up with a string representation
- instead.
+ read back correctly, you end up with an empty item.
" Maximum number of lines saved for each register. Old name of
the '<' item, with the disadvantage that you need to put a
backslash before the ", otherwise it will be recognized as the
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index cc6a5d74..d24de093 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,4 +1,4 @@
-*pi_tar.txt* For Vim version 7.3. Last change: 2010 Aug 09
+*pi_tar.txt* For Vim version 7.3. Last change: 2010 Nov 03
+====================+
| Tar File Interface |
@@ -60,11 +60,11 @@ Copyright 2005-2010: The GPL (gnu public license) applies to *tar-copyright*
<.vimrc> file.
Default
Variable Value Explanation
- *g:tar_browseoptions* "Ptf" used to get a list of contents
- *g:tar_readoptions* "OPxf" used to extract a file from a tarball
- *g:tar_cmd* "tar" the name of the tar program
- *g:tar_nomax* 0 if true, file window will not be maximized
- *g:tar_secure* undef if exists:
+ *g:tar_browseoptions* "Ptf" used to get a list of contents
+ *g:tar_readoptions* "OPxf" used to extract a file from a tarball
+ *g:tar_cmd* "tar" the name of the tar program
+ *g:tar_nomax* 0 if true, file window will not be maximized
+ *g:tar_secure* undef if exists:
"--"s will be used to prevent unwanted
option expansion in tar commands.
Please be sure that your tar command
@@ -76,7 +76,7 @@ Copyright 2005-2010: The GPL (gnu public license) applies to *tar-copyright*
"-"
Not all tar's support the "--" which is why
it isn't default.
- *g:tar_writeoptions* "uf" used to update/replace a file
+ *g:tar_writeoptions* "uf" used to update/replace a file
==============================================================================
diff --git a/runtime/doc/quotes.txt b/runtime/doc/quotes.txt
index ef600691..d9bca590 100644
--- a/runtime/doc/quotes.txt
+++ b/runtime/doc/quotes.txt
@@ -1,4 +1,4 @@
-*quotes.txt* For Vim version 7.3. Last change: 2006 Apr 24
+*quotes.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -260,15 +260,16 @@ Eccettuato, Italy)
In summary:
- __ ___ _ _ _ ___ _____
- \ \ / (_)_ __ ___ (_)___ | | | |/ _ \_ _|
- \ \ / /| | '_ ` _ \ | / __| | |_| | | | || |
- \ V / | | | | | | | | \__ \ | _ | |_| || |
- \_/ |_|_| |_| |_| |_|___/ |_| |_|\___/ |_|
- ____ _____ _ _ _____ _____ _ _
- / ___|_ _| | | | ___| ___| | |
- \___ \ | | | | | | |_ | |_ | | |
- ___) || | | |_| | _| | _| |_|_|
- |____/ |_| \___/|_| |_| (_|_) (Tony Nugent, Australia)
+ __ ___ _ _ _ ___ _____ `
+ \ \ / (_)_ __ ___ (_)___ | | | |/ _ \_ _| `
+ \ \ / /| | '_ ` _ \ | / __| | |_| | | | || | `
+ \ V / | | | | | | | | \__ \ | _ | |_| || | `
+ \_/ |_|_| |_| |_| |_|___/ |_| |_|\___/ |_| `
+ ____ _____ _ _ _____ _____ _ _ `
+ / ___|_ _| | | | ___| ___| | | `
+ \___ \ | | | | | | |_ | |_ | | | `
+ ___) || | | |_| | _| | _| |_|_| `
+ |____/ |_| \___/|_| |_| (_|_) (Tony Nugent, Australia) `
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index b7a3fb68..ae1e08de 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 7.3. Last change: 2010 Sep 23
+*syntax.txt* For Vim version 7.3. Last change: 2010 Oct 7
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -390,10 +390,10 @@ Or use the ":TOhtml" user command. It is defined in a standard plugin.
:10,40TOhtml
-Warning: This is slow! The script must process every character of every line.
-Because it is so slow, by default a progress bar is displayed in the
-statusline for each step that usually takes a long time. If you don't like
-seeing this progress bar, you can disable it and get a very minor speed
+Warning: This can be slow! The script must process every character of every
+line. Because it can take a long time, by default a progress bar is displayed
+in the statusline for each major step in the conversion process. If you don't
+like seeing this progress bar, you can disable it and get a very minor speed
improvement with: >
let g:html_no_progress = 1
@@ -475,40 +475,69 @@ risk of making some things look a bit different, use: >
This will use <br> at the end of each line and use "&nbsp;" for repeated
spaces.
-The current value of 'encoding' is used to specify the charset of the HTML
-file. This only works for those values of 'encoding' that have an equivalent
-HTML charset name. To overrule this set g:html_use_encoding to the name of
-the charset to be used: >
- :let g:html_use_encoding = "foobar"
-To omit the line that specifies the charset, set g:html_use_encoding to an
-empty string: >
+For diff mode on a single file (with g:html_diff_one_file) a sequence of more
+than 3 filler lines is displayed as three lines with the middle line
+mentioning the total number of inserted lines. If you prefer to see all the
+inserted lines as with the side-by-side diff, use: >
+ :let g:html_whole_filler = 1
+And to go back to displaying up to three lines again: >
+ :unlet g:html_whole_filler
+<
+TOhtml uses the current value of 'fileencoding' if set, or 'encoding' if not,
+to determine the charset and 'fileencoding' of the HTML file. In general, this
+works for the encodings mentioned specifically by name in |encoding-names|, but
+TOhtml will only automatically use those encodings which are widely supported.
+However, you can override this to support specific encodings that may not be
+automatically detected by default.
+
+To overrule all automatic charset detection, set g:html_use_encoding to the
+name of the charset to be used. TOhtml will try to determine the appropriate
+'fileencoding' setting from the charset, but you may need to set it manually
+if TOhtml cannot determine the encoding. It is recommended to set this
+variable to something widely supported, like UTF-8, for anything you will be
+hosting on a webserver: >
+ :let g:html_use_encoding = "UTF-8"
+You can also use this option to omit the line that specifies the charset
+entirely, by setting g:html_use_encoding to an empty string: >
:let g:html_use_encoding = ""
To go back to the automatic mechanism, delete the g:html_use_encoding
variable: >
:unlet g:html_use_encoding
+
+If you specify a charset with g:html_use_encoding for which TOhtml cannot
+automatically detect the corresponding 'fileencoding' setting, you can use
+g:html_encoding_override to allow TOhtml to detect the correct encoding.
+This is a dictionary of charset-encoding pairs that will replace existing
+pairs automatically detected by TOhtml, or supplement with new pairs. For
+example, to allow TOhtml to detect the HTML charset "windows-1252" properly as
+the encoding "8bit-cp1252", use: >
+ :let g:html_encoding_override = {'windows-1252': '8bit-cp1252'}
<
-For diff mode a sequence of more than 3 filler lines is displayed as three
-lines with the middle line mentioning the total number of inserted lines. If
-you prefer to see all the inserted lines use: >
- :let g:html_whole_filler = 1
-And to go back to displaying up to three lines again: >
- :unlet g:html_whole_filler
-<
+The g:html_charset_override is similar, it allows TOhtml to detect the HTML
+charset for any 'fileencoding' or 'encoding' which is not detected
+automatically. You can also use it to override specific existing
+encoding-charset pairs. For example, TOhtml will by default use UTF-8 for all
+Unicode/UCS encodings. To use UTF-16 and UTF-32 instead, use: >
+ :let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}
+
+Note that documents encoded in either UTF-32 or UTF-16 have known
+compatibility problems with at least one major browser.
+
*convert-to-XML* *convert-to-XHTML*
-An alternative is to have the script generate XHTML (XML compliant HTML). To
-do this set the "html_use_xhtml" variable: >
+If you do not like plain HTML, an alternative is to have the script generate
+XHTML (XML compliant HTML). To do this set the "html_use_xhtml" variable: >
:let g:html_use_xhtml = 1
-Any of these options can be enabled or disabled by setting them explicitly to
-the desired value, or restored to their default by removing the variable using
-|:unlet|.
+Any of the on/off options listed above can be enabled or disabled by setting
+them explicitly to the desired value, or restored to their default by removing
+the variable using |:unlet|.
Remarks:
-- This only works in a version with GUI support. If the GUI is not actually
- running (possible for X11) it still works, but not very well (the colors
- may be wrong).
- Some truly ancient browsers may not show the background colors.
- From most browsers you can also print the file (in color)!
+- This version of TOhtml may work with older versions of Vim, but some
+ features such as conceal support will not function, and the colors may be
+ incorrect for an old Vim without GUI support compiled in.
Here is an example how to run the script over all .c and .h files from a
Unix shell: >
diff --git a/runtime/doc/tags b/runtime/doc/tags
index eb7bb8bc..c64874c7 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4216,7 +4216,9 @@ E835 options.txt /*E835*
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
+E839 insert.txt /*E839*
E84 windows.txt /*E84*
+E840 insert.txt /*E840*
E85 options.txt /*E85*
E86 windows.txt /*E86*
E87 windows.txt /*E87*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index aa4c207b..caa2fddb 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.3. Last change: 2010 Oct 27
+*todo.txt* For Vim version 7.3. Last change: 2010 Nov 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,7 +30,11 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Segfault with command line abbreviation. (Randy Morris, 2010 Oct 25)
+Crash when using vimgrep with an ftp file. (Christian Brabandt, 2010 Nov 5)
+Crash with dragn-n-drop of file combined with netrw (Marius Gedminas, 2008 Jun
+11) I can't reproduce it. It's probably caused by a handle_drop() call
+in combination with autocommands that invoke a ":redraw" command.
+Another valgrind output Jun 30.
'cursorline' is displayed too short when there are concealed characters and
'list' is set, 'listchars' at default value. (Dennis Preiser, 2010 Aug 15)
@@ -38,6 +42,10 @@ Segfault with command line abbreviation. (Randy Morris, 2010 Oct 25)
Conceal: using Tab for cchar causes problems. Should reject it. (ZyX, 2010
Aug 25)
+Problems with building after 7.3.050, -as-needed does not work for gcc 4.4.1?
+(Charles Campbell, 2010 Nov 7) Or is the problem that we should use -ltinfo,
+because nothing is used from ncurses?
+
Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
21, Ben Fritz, 2010 Sep 14)
@@ -56,53 +64,42 @@ Using ":break" or something else that stops executing commands inside a
":finally" does not rethrow a previously uncaught exception. (ZyX, 2010 Oct
15)
-Patch for 2html to support 'fileencoding'. (Benjamin Fritz, 2010 Sep 10)
-Beta testing finished now?
-
-Three patches for undo persistence. (Christian Brabandt, 2010 Sep 4)
-
-Patch to adjust mzscheme to support racket. (Sergey Khorev, 2010 Oct 24)
-
string() can't parse back "inf" and "nan". Fix documentation or fix code?
(ZyX, 2010 Aug 23)
-Patch to use "--as-needed" instead of the link.sh functionality. (Kirill A.
-Shutemov, 2010 Aug 25)
-
-ml_get error for using :copen in a custom complete function. (Xavier
-Deguillard, 2010 Oct 19) Other way to reproduce it by Lech Lorens, Oct 20.
-Patch from Lech: Oct 20. More problems from Lech, Oct 21.
-
-Patch to fix complete(). (Kikuchan, 2010 Oct 15)
-
maparg() does not show the <script> flag. How to restore the script ID?
-Ruby: Patch to load Gem module. Why is this needed? (Yasuhiro Matsumoto, 2010
-Oct 6)
-
-":command Print echo 'print'" works, but ":Print" doesn't. Builtin Print
-should be overruled. (Aaron Thoma)
-Patch by Christian Brabandt, 2010 Sep 5.
-
-Comparing recursive structure loops forever. (ZyX, 2010 Aug 22, info from John
-Beckett Aug 23)
-Patch from Christian Brabandt, 2010 Oct 2
-
-":drop" does not respect 'autochdir'. (Peter Odding, 2010 Jul 24)
-Patch from Benjamin Fritz, 2010 Oct 13.
+Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
+Not quite right.
Highlighting stops working after changing it many times. Script to reproduce
it: Pablo Contreras, 2010 Oct 12 Windows XP and 7. Font is never freed?
+When 'cursorcolumn' is set locally to a window, ":new" opens a window with the
+same highlighting but 'cursorcolumn' is empty. (Tyru, 2010 Nov 15)
+
GTK: drawing a double-width combining character over single-width characters
doesn't look right. (Dominique Pelle, 2010 Aug 8)
+GTK: patch to fix hitting Enter in a dialog. (Britton Kerin, 2010 Nov 11)
+
GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
+":find" completion does not escape space in directory name. (Isz, 2010 Nov 2)
+
+Win32: When using Chinese tear-off menu doesn't work. (Weasley, 2010 Oct 31)
+Patch by Alex Jakushev, 2010 Nov 2.
+
+Using control characters in 'statusline' doesn't work well. (ZyX, 2010 Nov 1)
+Patch by Caio Ariede, 2010 Nov 3
+
Using ":call" inside "if 0" does not see that a function returns a Dict and
gives error for "." as string concatenation. (Yasuhiro Matsumoto, 2010 Oct 20)
Patch: Oct 20.
+Patch to move check for emsg_not_now() up to avoid statusline not being
+updated. (James Vega, 2010 Nov 4)
+
Copy/paste between Vim and Google chrome doesn't work well for multi-byte
characters. (Ben Haskell, 2010 Sep 17)
When putting text in the cut buffer (when exiting) and conversion doesn't work
@@ -121,8 +118,9 @@ the system encoding (usually utf-8).
Problem producing tags file when hebrew.frx is present. It has a BOM.
Results in E670. (Tony Mechelynck, 2010 May 2)
-Patch for dynamic loading Ruby on Unix. (Jon, 2010 Aug 23)
-Included, but also need a change to configure.
+Patch to support sorting on floating point number.
+
+Ruby: ":ruby print $buffer.number" returns zero.
setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
@@ -138,6 +136,9 @@ and that it's documented.
With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
2010 Oct 24)
+Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
+Alternative from Christian Brabandt. (2010 Sep 19)
+
Messages in message.txt are highlighted as examples.
When using cp850 the NBSP (0xff) is not drawn correctly. (Brett Stahlman, 2010
@@ -166,17 +167,33 @@ Echo starts in the wrong column:
while 1 | let s = input('A') | echo 'R' | endw
(Boyko Bantchev, 2010 Aug 9)
+Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
+
Patch: Let rare word highlighting overrule good word highlighting.
(Jakson A. Aquino, 2010 Jul 30)
Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
+Patch for VisVim, pass file name to VimOpenFile. (Jiri Sedlak, 2010 Nov 12)
+
When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
instead of one. (Constantin Pan, 2010 Sep 10)
+Writing nested List and Dict in viminfo gives error message and can't be read
+back. (Yukihiro Nakadaira, 2010 Nov 13)
+
+Dos uninstal may delete vim.bat from the wrong directory (e.g., when someone
+makes his own wrapper). Add a magic string with the version number to the
+.bat file and check for it in the uninstaller. E.g.
+ # uninstall key: vim7.3*
+
Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
Additional info by Dominique Pelle. (also on 2010 Apr 10)
+CreateFile and CreateFileW are used without sharing, filewritable() fails when
+the file was already open (e.g. script is being sourced). Add FILE_SHARE_READ|
+FILE_SHARE_WRITE in mch_access()? (Phillippe Vaucher, 2010 Nov 2)
+
Is ~/bin (literally) in $PATH supposed to work? (Paul, 2010 March 29)
Looks like only bash can do it. (Yakov Lerner)
@@ -217,6 +234,9 @@ like it has ":keepjumps" before it.
Coverity: ask someone to create new user: Dominique.
Check if there are new reported defects: http://scan.coverity.com/rung2.html
+Patch to support :undo absolute jump to file save number. (Christian Brabandt,
+2010 Nov 5)
+
When setting 'undofile' while the file is already loaded, but unchanged, try
to read the undo file. Requires computing a checksum of the text. (Andy
Wokula)
@@ -266,6 +286,9 @@ Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
For running gvim on an USB stick: avoid the OLE registration. Use a command
line argument -noregister.
+When using an expression in 'statusline' leading white space sometimes goes
+missing (but not always). (ZyX, 2010 Nov 1)
+
When a mapping exists both for insert mode and lang-insert mode, the last one
doesn't work. (Tyru, 2010 May 6) Or is this intended?
@@ -437,6 +460,11 @@ correct. Don't use it in the swap file.
Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
(Henrik Ohman, 2009, Jan 29)
+shellescape() depends on 'shellshash' for quoting. That doesn't work when
+'shellslash' is set but using cmd.exe. (Ben Fritz)
+Use a different option or let it depend on whether 'shell' looks like a
+unix-like shell?
+
Allow patches to add something to version.c, like with an official patch, so
that :version output shows which patches have been applied.
@@ -486,11 +514,6 @@ Having "Syntax" in 'eventignore' for :bufdo may cause problems, e.g. for
option only for when jumping to another buffer, not when the command argument
is executed.
-Crash with dragn-n-drop of file combined with netrw (Marius Gedminas, 2008 Jun
-11) I can't reproduce it. It's probably caused by a handle_drop() call
-in combination with autocommands that invoke a ":redraw" command.
-Another valgrind output Jun 30.
-
":pedit %" with a BufReadPre autocommand causes the cursor to move to the
first line. (Ingo Karkat, 2008 Jul 1) Ian Kelling is working on this.
@@ -903,6 +926,8 @@ if_ruby.c.
Patch to dynamically load Python on Solaris. (Danek Duvall, 2009 Feb 16)
Needs more work.
+Python3 interface doesn't handle utf-8 correctly? (Nov 2010, lilydjwg)
+
The need_fileinfo flag is messy. Instead make the message right away and put
it in keep_msg?
@@ -1564,6 +1589,8 @@ Athena and Motif:
Athena GUI:
+9 The first event for any button in the menu or toolbar appears to get lost.
+ The second click on a menu does work.
9 When dragging the scrollbar thumb very fast, focus is only obtained in
the scrollbar itself. And the thumb is no longer updated when moving
through files.
@@ -4379,6 +4406,8 @@ Debug mode:
Various improvements:
+9 Python: be able to define a Python function that can be called directly
+ from Vim script. Requires converting the arguments and return value.
8 ":sign unplace * file={filename}" should work. Also: ":sign unplace *
buffer={bufnr}". So one can remove all signs for one file/buffer.
7 Add plugins for formatting? Should be able to make a choice depending on
diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt
index da977233..75de19fa 100644
--- a/runtime/doc/usr_01.txt
+++ b/runtime/doc/usr_01.txt
@@ -1,4 +1,4 @@
-*usr_01.txt* For Vim version 7.3. Last change: 2008 May 07
+*usr_01.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM USER MANUAL - by Bram Moolenaar
@@ -40,13 +40,20 @@ the commands and options used for it. Use these two commands:
Press CTRL-] to jump to a subject under the cursor.
Press CTRL-O to jump back (repeat to go further back).
-Many links are in vertical bars, like this: |bars|. An option name, like
-'number', a command in double quotes like ":write" and any other word can also
-be used as a link. Try it out: Move the cursor to CTRL-] and press CTRL-]
-on it.
+Many links are in vertical bars, like this: |bars|. The bars themselves may
+be hidden or invisible, see below. An option name, like 'number', a command
+in double quotes like ":write" and any other word can also be used as a link.
+Try it out: Move the cursor to CTRL-] and press CTRL-] on it.
Other subjects can be found with the ":help" command, see |help.txt|.
+The bars and stars are usually hidden with the |conceal| feature. They also
+use |hl-Ignore|, using the same color for the text as the background. You can
+make them visible with: >
+ :set conceallevel=0
+ :hi link HelpBar Normal
+ :hi link HelpStar Normal
+
==============================================================================
*01.2* Vim installed
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 6ac0dc18..34740a49 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 7.3. Last change: 2010 Jul 20
+*usr_41.txt* For Vim version 7.3. Last change: 2010 Oct 31
VIM USER MANUAL - by Bram Moolenaar
@@ -793,6 +793,7 @@ Syntax and highlighting: *syntax-functions* *highlighting-functions*
synID() get syntax ID at a specific position
synIDattr() get a specific attribute of a syntax ID
synIDtrans() get translated syntax ID
+ synstack() get list of syntax IDs at a specific position
diff_hlID() get highlight ID for diff mode at a position
matchadd() define a pattern to highlight (a "match")
matcharg() get info about |:match| arguments
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index cf35b743..a2cad0aa 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt* For Vim version 7.3. Last change: 2010 Sep 23
+*various.txt* For Vim version 7.3. Last change: 2010 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -101,6 +101,7 @@ g8 Print the hex values of the bytes used in the
:[range]P[rint] [count] [flags]
Just as ":print". Was apparently added to Vi for
people that keep the shift key pressed too long...
+ Note: A user command can overrule this command.
See |ex-flags| for [flags].
*:l* *:list*
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index eac33822..761e2418 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt* For Vim version 7.3. Last change: 2010 Oct 20
+*version7.txt* For Vim version 7.3. Last change: 2010 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1673,7 +1673,7 @@ The GTK font dialog uses a font size zero when the font name doesn't include a
size. Use a default size of 10.
This example in the documentation didn't work:
- :e `=foo . ".c" `
+ :e `=foo . ".c"`
Skip over the expression in `=expr` when looking for comments, |, % and #.
When ":helpgrep" doesn't find anything there is no error message.
diff --git a/runtime/doc/vim2html.pl b/runtime/doc/vim2html.pl
index d51f6070..9066b03b 100644
--- a/runtime/doc/vim2html.pl
+++ b/runtime/doc/vim2html.pl
@@ -214,7 +214,7 @@ EOF
}
# main
-usage() if $#ARGV < 2;
+usage() if $#ARGV < 1;
print "Processing tags...\n";
readTagFile( $ARGV[ 0 ] );
diff --git a/runtime/plugin/tohtml.vim b/runtime/plugin/tohtml.vim
index 36b1f760..651a40c1 100644
--- a/runtime/plugin/tohtml.vim
+++ b/runtime/plugin/tohtml.vim
@@ -1,23 +1,60 @@
" Vim plugin for converting a syntax highlighted file to HTML.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
-" Last Change: 2010 Aug 12
+" Last Change: 2010 Oct 28
"
" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
" $VIMRUNTIME/syntax/2html.vim
"
" TODO:
+" * Patch to leave tab characters in when noexpandtab set (Andy Spencer)
+" * Make folds show up when using a range and dynamic folding
+" * Remove fold column when there are no folds and using dynamic folding
" * Restore open/closed folds and cursor position after processing each file
" with option not to restore for speed increase
" * Add extra meta info (generation time, etc.)
-" * Tidy up so we can use strict doctype more?
+" * Tidy up so we can use strict doctype in even more situations?
" * Implementation detail: add threshold for writing the lines to the html
" buffer before we're done (5000 or so lines should do it)
" * TODO comments for code cleanup scattered throughout
+"
+"
+" Changelog:
+" 7.3_v7 (this version): see betas released on vim_dev below:
+" 7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way.
+" 7.3_v7b2: Remove automatic detection of encodings that are not
+" supported by all major browsers according to
+" http://wiki.whatwg.org/wiki/Web_Encodings and convert
+" to UTF-8 for all Unicode encodings. Make HTML
+" encoding to Vim encoding detection be
+" case-insensitive for built-in pairs.
+" 7.3_v7b1: Remove use of setwinvar() function which cannot be
+" called in restricted mode (Andy Spencer). Use
+" 'fencoding' instead of 'encoding' to determine by
+" charset, and make sure the 'fenc' of the generated
+" file matches its indicated charset. Add charsets for
+" all of Vim's natively supported encodings.
+" 7.3_v6 (0d3f0e3d289b): Really fix bug with 'nowrapscan', 'magic' and other
+" user settings interfering with diff mode generation,
+" trailing whitespace (e.g. line number column) when
+" using html_no_pre, and bugs when using
+" html_hover_unfold.
+" 7.3_v5 ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync
+" folds in diff mode when first line was folded.
+" 7.3_v4 (7e008c174cc3): Bugfixes, especially for xhtml markup, and diff mode.
+" 7.3_v3 (a29075150aee): Refactor option handling and make html_use_css
+" default to true when not set to anything. Use strict
+" doctypes where possible. Rename use_xhtml option to
+" html_use_xhtml for consistency. Use .xhtml extension
+" when using this option. Add meta tag for settings.
+" 7.3_v2 (80229a724a11): Fix syntax highlighting in diff mode to use both the
+" diff colors and the normal syntax colors
+" 7.3_v1 (e7751177126b): Add conceal support and meta tags in output
+" Pre-v1 baseline: Mercurial changeset 3c9324c0800e
if exists('g:loaded_2html_plugin')
finish
endif
-let g:loaded_2html_plugin = 'vim7.3_v6'
+let g:loaded_2html_plugin = 'vim7.3_v7'
" Define the :TOhtml command when:
" - 'compatible' is not set
diff --git a/runtime/syntax/2html.vim b/runtime/syntax/2html.vim
index ad58112d..22ce7315 100644
--- a/runtime/syntax/2html.vim
+++ b/runtime/syntax/2html.vim
@@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
-" Last Change: 2010 Aug 12
+" Last Change: 2010 Sep 04
"
" Additional contributors:
"
@@ -265,6 +265,19 @@ set paste
let s:old_magic = &magic
set magic
+" set the fileencoding to match the charset we'll be using
+let &l:fileencoding=s:settings.vim_encoding
+
+" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
+" order mark is highly recommend on the web when using multibyte encodings. But,
+" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
+" determine when it is actually inserted.
+if s:settings.vim_encoding == 'utf-8'
+ setlocal nobomb
+else
+ setlocal bomb
+endif
+
let s:lines = []
if s:settings.use_xhtml
@@ -1071,14 +1084,14 @@ let &magic = s:old_magic
let @/ = s:old_search
let &more = s:old_more
exe s:orgwin . "wincmd w"
+let &l:stl = s:origwin_stl
let &l:et = s:old_et
let &l:scrollbind = s:old_bind
exe s:newwin . "wincmd w"
+let &l:stl = s:newwin_stl
exec 'resize' s:old_winheight
let &l:winfixheight = s:old_winfixheight
-call setwinvar(s:orgwin,'&stl', s:origwin_stl)
-call setwinvar(s:newwin,'&stl', s:newwin_stl)
let &ls=s:ls
" Save a little bit of memory (worth doing?)
diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim
index d926f37a..82c34682 100644
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
-" Last Change: 2009 May 18
+" Last Change: 2010 Nov 03
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -30,6 +30,7 @@ syn match helpVim "VIM REFERENCE.*"
syn match helpOption "'[a-z]\{2,\}'"
syn match helpOption "'t_..'"
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
+syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
syn match helpIgnore "." contained conceal
syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
syn match helpSpecial "\<N\>"
diff --git a/runtime/syntax/xf86conf.vim b/runtime/syntax/xf86conf.vim
index 4658b46c..62784d22 100644
--- a/runtime/syntax/xf86conf.vim
+++ b/runtime/syntax/xf86conf.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: XF86Config (XFree86 configuration file)
-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2005 Jul 12
+" Former Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+" Last Change: 2010 Nov 01
" URL: http://trific.ath.cx/Ftp/vim/syntax/xf86conf.vim
" Required Vim Version: 6.0
"
@@ -63,7 +63,7 @@ syn match xf86confModeLineValue "\"[^\"]\+\"\(\_s\+[0-9.]\+\)\{9}" nextgroup=xf8
" Sections and subsections
if b:xf86conf_xfree86_version >= 4
- syn region xf86confSection matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,xf86confSectionError
+ syn region xf86confSection matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\|InputClass\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,xf86confSectionError
syn region xf86confSectionModule matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Module\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionAny,xf86confComment,xf86confOption,xf86confKeyword
syn region xf86confSectionMonitor matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Monitor\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment,xf86confOption,xf86confKeyword
syn region xf86confSectionModes matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Modes\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment
@@ -165,7 +165,7 @@ syn match xf86confSync "\(\s\+[+-][CHV]_*Sync\)\+" contained
" Synchronization
if b:xf86conf_xfree86_version >= 4
- syn sync match xf86confSyncSection grouphere xf86confSection "^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\)\""
+ syn sync match xf86confSyncSection grouphere xf86confSection "^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\|InputClass\)\""
syn sync match xf86confSyncSectionModule grouphere xf86confSectionModule "^\s*Section\s\+\"Module\""
syn sync match xf86confSyncSectionModes groupthere xf86confSectionModes "^\s*Section\s\+\"Modes\""
else