changeset 2642:840c3cadb842

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Tue, 16 Nov 2010 20:34:40 +0100
parents b803b2776880
children e6372ac3ebe5
files runtime/autoload/tohtml.vim runtime/doc/arabic.txt runtime/doc/diff.txt runtime/doc/eval.txt runtime/doc/gui.txt runtime/doc/insert.txt runtime/doc/intro.txt runtime/doc/map.txt runtime/doc/options.txt runtime/doc/pi_tar.txt runtime/doc/quotes.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/usr_01.txt runtime/doc/usr_41.txt runtime/doc/various.txt runtime/doc/version7.txt runtime/doc/vim2html.pl runtime/plugin/tohtml.vim runtime/syntax/2html.vim runtime/syntax/help.vim runtime/syntax/xf86conf.vim src/po/ko.UTF-8.po src/po/ko.po
diffstat 25 files changed, 692 insertions(+), 210 deletions(-) [+]
line wrap: on
line diff
--- 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_lis
   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_lis
       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_lis
 	  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_lis
   " 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_lis
     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_lis
 	    \  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_lis
 	    \   '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
-    else
-      let vim_encoding = &encoding
-      if vim_encoding =~ '^8bit\|^2byte'
-	let vim_encoding = substitute(vim_encoding, '^8bit-\|^2byte-', '', '')
+      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
-      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
+      " 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
+
+      " 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
--- 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
--- 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.
 
 
--- 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} [, {dic
 			     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>|).
 
--- 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 'gu
 
 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
--- 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 
 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)
--- 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 
 (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 th
 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		|
--- 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 no
 
 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
--- 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 shor
 	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 shor
 	      "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 shor
 	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 shor
 		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
--- 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 @@ 3. Options						*tar-options*
    <.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 @@ 3. Options						*tar-options*
 					"-"
 				  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
 
 
 ==============================================================================
--- 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:
--- 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 i
 
 	: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 di
 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
-<
-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
+
+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'}
 <
+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: >
--- 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*
--- 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 Vi
 							*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.
 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 st
 ":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. (Domin
 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 :bu
 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 @@ 8   When 'encoding' is different from th
 
 
 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 @@ 7   Make the debug mode history availabl
 
 
 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
--- 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.  U
 	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
 
--- 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-funct
 	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
--- 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 @@ 8g8			Find an illegal UTF-8 byte sequenc
 :[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*
--- 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 zer
 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.
--- 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 ] );
--- 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
--- 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?)
--- 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\>"
--- 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 "\"[^\"]
 
 " 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]_
 
 " 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
--- a/src/po/ko.UTF-8.po
+++ b/src/po/ko.UTF-8.po
@@ -6142,7 +6142,7 @@ msgid "E485: Can't read file %s"
 msgstr "E485: %s 파일을 읽을 수 없습니다"
 
 msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: 마지막으로 고친 뒤 저장되지 않았습니다 (덮어쓰려면 ! 더하기)"
+msgstr "E37: 마지막으로 고친 뒤 저장되지 않았습니다 (무시하려면 ! 더하기)"
 
 msgid "E38: Null argument"
 msgstr "E38: 널 인자"
--- a/src/po/ko.po
+++ b/src/po/ko.po
@@ -6142,7 +6142,7 @@ msgid "E485: Can't read file %s"
 msgstr "E485: %s    ϴ"
 
 msgid "E37: No write since last change (add ! to override)"
-msgstr "E37:  ģ   ʾҽϴ ( ! ϱ)"
+msgstr "E37:  ģ   ʾҽϴ (Ϸ ! ϱ)"
 
 msgid "E38: Null argument"
 msgstr "E38:  "