changeset 3996:b3f3237a3d72

Update runtime files.
author Bram Moolenaar <bram@vim.org>
date Wed, 05 Dec 2012 19:01:43 +0100
parents c2ea289a5b7f
children c83cd3d01128
files runtime/autoload/sqlcomplete.vim runtime/autoload/syntaxcomplete.vim runtime/doc/eval.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/uganda.txt runtime/doc/various.txt runtime/ftplugin/sql.vim runtime/indent/sqlanywhere.vim runtime/indent/yaml.vim runtime/lang/menu_cs_cz.iso_8859-2.vim runtime/lang/menu_cs_cz.latin1.vim runtime/lang/menu_cs_cz.utf-8.vim runtime/lang/menu_czech_czech_republic.1250.vim runtime/lang/menu_czech_czech_republic.ascii.vim
diffstat 15 files changed, 1237 insertions(+), 548 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/sqlcomplete.vim
+++ b/runtime/autoload/sqlcomplete.vim
@@ -1,23 +1,43 @@
 " Vim OMNI completion script for SQL
 " Language:    SQL
 " Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
-" Version:     12.0
-" Last Change: 2012 Feb 08
+" Version:     14.0
+" Last Change: 2012 Dec 04
+" Homepage:    http://www.vim.org/scripts/script.php?script_id=1572
 " Usage:       For detailed help
 "              ":help sql.txt"
 "              or ":help ft-sql-omni"
 "              or read $VIMRUNTIME/doc/sql.txt
 
 " History
-" Version 12.0
+"
+" Version 14.0 (Dec 2012)
+"     - BF: Added check for cpo
+"
+" Version 13.0 (Dec 2012)
+"     - NF: When completing column lists or drilling into a table
+"           and g:omni_sql_include_owner is enabled, the
+"           only the table name would be replaced with the column
+"           list instead of the table name and owner (if specified).
+"     - NF: When completing column lists using table aliases
+"           and g:omni_sql_include_owner is enabled, account
+"           for the owner name when looking up the table
+"           list instead of the table name and owner (if specified).
+"     - BF: When completing column lists or drilling into a table
+"           and g:omni_sql_include_owner is enabled, the
+"           column list could often not be found for the table.
+"     - BF: When OMNI popped up, possibly the wrong word
+"           would be replaced for column and column list options.
+"
+" Version 12.0 (Feb 2012)
 "     - Partial column name completion did not work when a table
 "       name or table alias was provided (Jonas Enberg).
 "     - Improved the handling of column completion.  First we match any
 "       columns from a previous completion.  If not matches are found, we
-"       consider the partial name to be a table or table alias for the 
+"       consider the partial name to be a table or table alias for the
 "       query and attempt to match on it.
 "
-" Version 11.0
+" Version 11.0 (Jan 2012)
 "     Added g:omni_sql_default_compl_type variable
 "         - You can specify which type of completion to default to
 "           when pressing <C-X><C-O>.  The entire list of available
@@ -40,7 +60,7 @@
 "         - Prepends error message with SQLComplete so you know who issued
 "           the error.
 "
-" Version 9.0
+" Version 9.0 (May 2010)
 "     This change removes some of the support for tables with spaces in their
 "     names in order to simplify the regexes used to pull out query table
 "     aliases for more robust table name and column name code completion.
@@ -51,10 +71,10 @@
 "     Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
 "     when drilling in and out of a column list for a table.
 "
-" Version 7.0
+" Version 7.0 (Jan 2010)
 "     Better handling of object names
 "
-" Version 6.0
+" Version 6.0 (Apr 2008)
 "     Supports object names with spaces "my table name"
 "
 " Set completion with CTRL-X CTRL-O to autoloaded function.
@@ -71,7 +91,9 @@ endif
 if exists('g:loaded_sql_completion')
     finish
 endif
-let g:loaded_sql_completion = 120
+let g:loaded_sql_completion = 130
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Maintains filename of dictionary
 let s:sql_file_table        = ""
@@ -137,6 +159,13 @@ if !exists('g:omni_sql_default_compl_typ
 endif
 
 " This function is used for the 'omnifunc' option.
+" It is called twice by omni and it is responsible
+" for returning the completion list of items.
+" But it must also determine context of what to complete
+" and what to "replace" with the completion.
+" The a:base, is replaced directly with what the user
+" chooses from the choices.
+" The s:prepend provides context for the completion.
 function! sqlcomplete#Complete(findstart, base)
 
     " Default to table name completion
@@ -145,6 +174,7 @@ function! sqlcomplete#Complete(findstart
     if exists('b:sql_compl_type')
         let compl_type = b:sql_compl_type
     endif
+    let begindot = 0
 
     " First pass through this function determines how much of the line should
     " be replaced by whatever is chosen from the completion list
@@ -153,7 +183,6 @@ function! sqlcomplete#Complete(findstart
         let line     = getline('.')
         let start    = col('.') - 1
         let lastword = -1
-        let begindot = 0
         " Check if the first character is a ".", for column completion
         if line[start - 1] == '.'
             let begindot = 1
@@ -179,7 +208,10 @@ function! sqlcomplete#Complete(findstart
                 " If lastword has already been set for column completion
                 " break from the loop, since we do not also want to pickup
                 " a table name if it was also supplied.
+                " Unless g:omni_sql_include_owner == 1, then we can
+                " include the ownername.
                 if lastword != -1 && compl_type == 'column'
+                            \ && g:omni_sql_include_owner == 0
                     break
                 endif
                 " If column completion was specified stop at the "." if
@@ -191,7 +223,7 @@ function! sqlcomplete#Complete(findstart
                 " If omni_sql_include_owner = 0, do not include the table
                 " name as part of the substitution, so break here
                 if lastword == -1 &&
-                            \ compl_type =~ 'table\|view\|procedure\column_csv' &&
+                            \ compl_type =~ '\<\(table\|view\|procedure\|column\|column_csv\)\>' &&
                             \ g:omni_sql_include_owner == 0
                     let lastword = start
                     break
@@ -288,6 +320,12 @@ function! sqlcomplete#Complete(findstart
             let table  = matchstr( base, '^\(.*\.\)\?\zs.*\ze\..*' )
             let column = matchstr( base, '.*\.\zs.*' )
 
+            if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
+                let owner  = table
+                let table  = column
+                let column = ''
+            endif
+
             " It is pretty well impossible to determine if the user
             " has entered:
             "    owner.table
@@ -370,7 +408,16 @@ function! sqlcomplete#Complete(findstart
                 let list_type     = 'csv'
             endif
 
-            let compl_list  = s:SQLCGetColumns(table, list_type)
+            " If we are including the OWNER for the objects, then for
+            " table completion, if we have it, it should be included
+            " as there can be the same table names in a database yet
+            " with different owner names.
+            if g:omni_sql_include_owner == 1 && owner != '' && table != ''
+                let compl_list  = s:SQLCGetColumns(owner.'.'.table, list_type)
+            else
+                let compl_list  = s:SQLCGetColumns(table, list_type)
+            endif
+
             if column != ''
                 " If no column prefix has been provided and the table
                 " name was provided, append it to each of the items
@@ -393,11 +440,14 @@ function! sqlcomplete#Complete(findstart
         endif
     elseif compl_type == 'resetCache'
         " Reset all cached items
-        let s:tbl_name  = []
-        let s:tbl_alias = []
-        let s:tbl_cols  = []
-        let s:syn_list  = []
-        let s:syn_value = []
+        let s:tbl_name           = []
+        let s:tbl_alias          = []
+        let s:tbl_cols           = []
+        let s:syn_list           = []
+        let s:syn_value          = []
+        let s:sql_file_table     = ""
+        let s:sql_file_procedure = ""
+        let s:sql_file_view      = ""
 
         let msg = "All SQL cached items have been removed."
         call s:SQLCWarningMsg(msg)
@@ -423,12 +473,27 @@ function! sqlcomplete#Complete(findstart
         " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
         " let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
         let compl_list = filter(deepcopy(compl_list), expr)
+
+        if empty(compl_list) && compl_type == 'table' && base =~ '\.$'
+            " It is possible we could be looking for column name completion
+            " and the user simply hit C-X C-O to lets try it as well
+            " since we had no hits with the tables.
+            " If the base ends with a . it is hard to know if we are
+            " completing table names or column names.
+            let list_type = ''
+
+            let compl_list  = s:SQLCGetColumns(base, list_type)
+        endif
     endif
 
     if exists('b:sql_compl_savefunc') && b:sql_compl_savefunc != ""
         let &omnifunc = b:sql_compl_savefunc
     endif
 
+    if empty(compl_list)
+        call s:SQLCWarningMsg( 'Could not find type['.compl_type.'] using prepend[.'.s:prepended.'] base['.a:base.']' )
+    endif
+
     return compl_list
 endfunc
 
@@ -664,8 +729,26 @@ function! s:SQLCGetObjectOwner(object)
 endfunction
 
 function! s:SQLCGetColumns(table_name, list_type)
+    if a:table_name =~ '\.'
+        " Check if the owner/creator has been specified
+        let owner  = matchstr( a:table_name, '^\zs.*\ze\..*\..*' )
+        let table  = matchstr( a:table_name, '^\(.*\.\)\?\zs.*\ze\..*' )
+        let column = matchstr( a:table_name, '.*\.\zs.*' )
+
+        if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
+            let owner  = table
+            let table  = column
+            let column = ''
+        endif
+    else
+        let owner  = ''
+        let table  = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
+        let column = ''
+    endif
+
     " Check if the table name was provided as part of the column name
-    let table_name   = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
+    " let table_name   = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
+    let table_name   = table
     let table_cols   = []
     let table_alias  = ''
     let move_to_top  = 1
@@ -786,7 +869,12 @@ function! s:SQLCGetColumns(table_name, l
 
              if table_name_new != ''
                  let table_alias = table_name
-                 let table_name  = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
+                 if g:omni_sql_include_owner == 1
+                    let table_name  = matchstr( table_name_new, '^\zs\(.\{-}\.\)\?\(.\{-}\.\)\?.*\ze' )
+                 else
+                     " let table_name  = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
+                    let table_name  = matchstr( table_name_new, '^\(.\{-}\.\)\?\zs\(.\{-}\.\)\?.*\ze' )
+                 endif
 
                  let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
                  if list_idx > -1
@@ -828,7 +916,8 @@ function! s:SQLCGetColumns(table_name, l
     if empty(table_cols)
         " Specify silent mode, no messages to the user (tbl, 1)
         " Specify do not comma separate (tbl, 1, 1)
-        let table_cols_str = DB_getListColumn(table_name, 1, 1)
+        " let table_cols_str = DB_getListColumn(table_name, 1, 1)
+        let table_cols_str = DB_getListColumn((owner!=''?owner.'.':'').table_name, 1, 1)
 
         if table_cols_str != ""
             let s:tbl_name  = add( s:tbl_name,  table_name )
@@ -854,3 +943,7 @@ function! s:SQLCGetColumns(table_name, l
 
     return table_cols
 endfunction
+"  Restore:
+let &cpo= s:keepcpo
+unlet s:keepcpo
+" vim: ts=4 fdm=marker
--- a/runtime/autoload/syntaxcomplete.vim
+++ b/runtime/autoload/syntaxcomplete.vim
@@ -1,22 +1,26 @@
 " Vim completion script
 " Language:    All languages, uses existing syntax highlighting rules
 " Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
-" Version:     10.0
-" Last Change: 2012 Oct 20
-" Usage:       For detailed help, ":help ft-syntax-omni" 
+" Version:     11.0
+" Last Change: 2012 Dec 04
+" Usage:       For detailed help, ":help ft-syntax-omni"
 
 " History
 "
+" Version 11.0
+"     Corrected which characters required escaping during
+"     substitution calls.
+"
 " Version 10.0
 "     Cycle through all the character ranges specified in the
 "     iskeyword option and build a list of valid word separators.
-"     Prior to this change, only actual characters were used, 
-"     where for example ASCII "45" == "-".  If "45" were used 
-"     in iskeyword the hyphen would not be picked up.  
+"     Prior to this change, only actual characters were used,
+"     where for example ASCII "45" == "-".  If "45" were used
+"     in iskeyword the hyphen would not be picked up.
 "     This introduces a new option, since the character ranges
 "     specified could be multibyte:
 "         let g:omni_syntax_use_single_byte = 1
-"     This by default will only allow single byte ASCII 
+"     This by default will only allow single byte ASCII
 "     characters to be added and an additional check to ensure
 "     the charater is printable (see documentation for isprint).
 "
@@ -32,7 +36,7 @@
 " Version 7.0
 "     Updated syntaxcomplete#OmniSyntaxList()
 "         - Looking up the syntax groups defined from a syntax file
-"           looked for only 1 format of {filetype}GroupName, but some 
+"           looked for only 1 format of {filetype}GroupName, but some
 "           syntax writers use this format as well:
 "               {b:current_syntax}GroupName
 "           OmniSyntaxList() will now check for both if the first
@@ -40,11 +44,11 @@
 "
 " Version 6.0
 "     Added syntaxcomplete#OmniSyntaxList()
-"         - Allows other plugins to use this for their own 
+"         - Allows other plugins to use this for their own
 "           purposes.
 "         - It will return a List of all syntax items for the
-"           syntax group name passed in.  
-"         - XPTemplate for SQL will use this function via the 
+"           syntax group name passed in.
+"         - XPTemplate for SQL will use this function via the
 "           sqlcomplete plugin to populate a Choose box.
 "
 " Version 5.0
@@ -54,7 +58,7 @@
 "
 " Set completion with CTRL-X CTRL-O to autoloaded function.
 " This check is in place in case this script is
-" sourced directly instead of using the autoload feature. 
+" sourced directly instead of using the autoload feature.
 if exists('+omnifunc')
     " Do not set the option if already set since this
     " results in an E117 warning.
@@ -64,9 +68,9 @@ if exists('+omnifunc')
 endif
 
 if exists('g:loaded_syntax_completion')
-    finish 
+    finish
 endif
-let g:loaded_syntax_completion = 100
+let g:loaded_syntax_completion = 110
 
 " Turn on support for line continuations when creating the script
 let s:cpo_save = &cpo
@@ -190,7 +194,7 @@ endfunc
 function! syntaxcomplete#OmniSyntaxList(...)
     if a:0 > 0
         let parms = []
-        if 3 == type(a:1) 
+        if 3 == type(a:1)
             let parms = a:1
         elseif 1 == type(a:1)
             let parms = split(a:1, ',')
@@ -204,7 +208,7 @@ endfunc
 function! OmniSyntaxList(...)
     let list_parms = []
     if a:0 > 0
-        if 3 == type(a:1) 
+        if 3 == type(a:1)
             let list_parms = a:1
         elseif 1 == type(a:1)
             let list_parms = split(a:1, ',')
@@ -240,18 +244,18 @@ function! OmniSyntaxList(...)
 
     let saveL = @l
     let filetype = substitute(&filetype, '\.', '_', 'g')
-    
+
     if empty(list_parms)
         " Default the include group to include the requested syntax group
         let syntax_group_include_{filetype} = ''
         " Check if there are any overrides specified for this filetype
         if exists('g:omni_syntax_group_include_'.filetype)
             let syntax_group_include_{filetype} =
-                        \ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g') 
+                        \ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
             let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
             if syntax_group_include_{filetype} =~ '\w'
-                let syntax_group_include_{filetype} = 
-                            \ substitute( syntax_group_include_{filetype}, 
+                let syntax_group_include_{filetype} =
+                            \ substitute( syntax_group_include_{filetype},
                             \ '\s*,\s*', '\\|', 'g'
                             \ )
             endif
@@ -261,11 +265,11 @@ function! OmniSyntaxList(...)
     endif
 
     " Loop through all the syntax groupnames, and build a
-    " syntax file which contains these names.  This can 
+    " syntax file which contains these names.  This can
     " work generically for any filetype that does not already
     " have a plugin defined.
     " This ASSUMES the syntax groupname BEGINS with the name
-    " of the filetype.  From my casual viewing of the vim7\syntax 
+    " of the filetype.  From my casual viewing of the vim7\syntax
     " directory this is true for almost all syntax definitions.
     " As an example, the SQL syntax groups have this pattern:
     "     sqlType
@@ -278,7 +282,7 @@ function! OmniSyntaxList(...)
     let syntax_full = "\n".@l
     let @l = saveL
 
-    if syntax_full =~ 'E28' 
+    if syntax_full =~ 'E28'
                 \ || syntax_full =~ 'E411'
                 \ || syntax_full =~ 'E415'
                 \ || syntax_full =~ 'No Syntax items'
@@ -288,7 +292,7 @@ function! OmniSyntaxList(...)
     let filetype = substitute(&filetype, '\.', '_', 'g')
 
     let list_exclude_groups = []
-    if a:0 > 0 
+    if a:0 > 0
         " Do nothing since we have specific a specific list of groups
     else
         " Default the exclude group to nothing
@@ -296,11 +300,11 @@ function! OmniSyntaxList(...)
         " Check if there are any overrides specified for this filetype
         if exists('g:omni_syntax_group_exclude_'.filetype)
             let syntax_group_exclude_{filetype} =
-                        \ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g') 
+                        \ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
             let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
-            if syntax_group_exclude_{filetype} =~ '\w' 
-                let syntax_group_exclude_{filetype} = 
-                            \ substitute( syntax_group_exclude_{filetype}, 
+            if syntax_group_exclude_{filetype} =~ '\w'
+                let syntax_group_exclude_{filetype} =
+                            \ substitute( syntax_group_exclude_{filetype},
                             \ '\s*,\s*', '\\|', 'g'
                             \ )
             endif
@@ -317,14 +321,14 @@ function! OmniSyntaxList(...)
     while ftindex > -1
         let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
 
-        " Syntax rules can contain items for more than just the current 
+        " Syntax rules can contain items for more than just the current
         " filetype.  They can contain additional items added by the user
         " via autocmds or their vimrc.
         " Some syntax files can be combined (html, php, jsp).
         " We want only items that begin with the filetype we are interested in.
         let next_group_regex = '\n' .
                     \ '\zs'.ft_part_name.'\w\+\ze'.
-                    \ '\s\+xxx\s\+' 
+                    \ '\s\+xxx\s\+'
         let index    = 0
         let index    = match(syntax_full, next_group_regex, index)
 
@@ -338,11 +342,11 @@ function! OmniSyntaxList(...)
             "     syn keyword {syntax_filename}Keyword  values ...
             "     let b:current_syntax = "mysql"
             " So, we will make the format of finding the syntax group names
-            " a bit more flexible and look for both if the first fails to 
+            " a bit more flexible and look for both if the first fails to
             " find a match.
             let next_group_regex = '\n' .
                         \ '\zs'.b:current_syntax.'\w\+\ze'.
-                        \ '\s\+xxx\s\+' 
+                        \ '\s\+xxx\s\+'
             let index    = 0
             let index    = match(syntax_full, next_group_regex, index)
         endif
@@ -356,9 +360,9 @@ function! OmniSyntaxList(...)
                     let get_syn_list = 0
                 endif
             endfor
-        
+
             " This code is no longer needed in version 6.0 since we have
-            " augmented the syntax list command to only retrieve the syntax 
+            " augmented the syntax list command to only retrieve the syntax
             " groups we are interested in.
             "
             " if get_syn_list == 1
@@ -370,7 +374,7 @@ function! OmniSyntaxList(...)
             " endif
 
             if get_syn_list == 1
-                " Pass in the full syntax listing, plus the group name we 
+                " Pass in the full syntax listing, plus the group name we
                 " are interested in.
                 let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
                 let syn_list = syn_list . extra_syn_list . "\n"
@@ -424,7 +428,7 @@ function! s:SyntaxCSyntaxGroupItems( gro
     "     \|           - 2nd potential match
     "     \%$          - matches end of the file or string
     "     \)           - end a group
-    let syntax_group = matchstr(a:syntax_full, 
+    let syntax_group = matchstr(a:syntax_full,
                 \ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
                 \ )
 
@@ -434,42 +438,42 @@ function! s:SyntaxCSyntaxGroupItems( gro
 
         " We only want the words for the lines begining with
         " containedin, but there could be other items.
-        
+
         " Tried to remove all lines that do not begin with contained
         " but this does not work in all cases since you can have
         "    contained nextgroup=...
         " So this will strip off the ending of lines with known
         " keywords.
-        let syn_list = substitute( 
+        let syn_list = substitute(
                     \    syntax_group, '\<\('.
                     \    substitute(
                     \      escape(s:syn_remove_words, '\\/.*$^~[]')
                     \      , ',', '\\|', 'g'
                     \    ).
                     \    '\).\{-}\%($\|'."\n".'\)'
-                    \    , "\n", 'g' 
+                    \    , "\n", 'g'
                     \  )
 
         " Now strip off the newline + blank space + contained.
         " Also include lines with nextgroup=@someName skip_key_words syntax_element
-        let syn_list = substitute( 
+        let syn_list = substitute(
                     \    syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
-                    \    , "", 'g' 
+                    \    , "", 'g'
                     \ )
 
         " This can leave lines like this
         "     =@vimMenuList  skipwhite onoremenu
         " Strip the special option keywords first
         "     :h :syn-skipwhite*
-        let syn_list = substitute( 
+        let syn_list = substitute(
                     \    syn_list, '\<\(skipwhite\|skipnl\|skipempty\)\>'
-                    \    , "", 'g' 
+                    \    , "", 'g'
                     \ )
 
         " Now remove the remainder of the nextgroup=@someName lines
-        let syn_list = substitute( 
+        let syn_list = substitute(
                     \    syn_list, '\%(^\|\n\)\@<=\s*\(@\w\+\)'
-                    \    , "", 'g' 
+                    \    , "", 'g'
                     \ )
 
         if b:omni_syntax_use_iskeyword == 0
@@ -484,17 +488,17 @@ function! s:SyntaxCSyntaxGroupItems( gro
                 " Numeric values convert to their ASCII equivalent using the
                 " nr2char() function.
                 "     &       38
-                "     *       42 
+                "     *       42
                 "     +       43
-                "     -       45 
+                "     -       45
                 "     ^       94
-                " Iterate through all numeric specifications and convert those 
+                " Iterate through all numeric specifications and convert those
                 " to their ascii equivalent ensuring the character is printable.
                 " If so, add it to the list.
                 let accepted_chars = ''
                 for item in split(&iskeyword, ',')
                     if item =~ '-'
-                        " This is a character range (ie 47-58), 
+                        " This is a character range (ie 47-58),
                         " cycle through each character within the range
                         let [b:start, b:end] = split(item, '-')
                         for range_item in range( b:start, b:end )
@@ -520,7 +524,11 @@ function! s:SyntaxCSyntaxGroupItems( gro
                     endif
                 endfor
                 " Escape special regex characters
-                let accepted_chars = escape(accepted_chars, '\\/.*$^~[]' )
+                " Looks like the wrong chars are escaped.  In a collection,
+                "      :h /[]
+                "      only `]', `\', `-' and `^' are special:
+                " let accepted_chars = escape(accepted_chars, '\\/.*$^~[]' )
+                let accepted_chars = escape(accepted_chars, ']\-^' )
                 " Remove all characters that are not acceptable
                 let syn_list = substitute( syn_list, '[^A-Za-z'.accepted_chars.']', ' ', 'g' )
             else
@@ -534,7 +542,11 @@ function! s:SyntaxCSyntaxGroupItems( gro
                 " Remove all commas
                 let accept_chars = substitute(accept_chars, ',', '', 'g')
                 " Escape special regex characters
-                let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
+                " Looks like the wrong chars are escaped.  In a collection,
+                "      :h /[]
+                "      only `]', `\', `-' and `^' are special:
+                " let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
+                let accept_chars = escape(accept_chars, ']\-^' )
                 " Remove all characters that are not acceptable
                 let syn_list = substitute( syn_list, '[^0-9A-Za-z_'.accept_chars.']', ' ', 'g' )
             endif
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.3.  Last change: 2012 Nov 21
+*eval.txt*	For Vim version 7.3.  Last change: 2012 Dec 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4874,8 +4874,27 @@ round({expr})							*round()*
 			echo round(-4.5)
 <			-5.0
 		{only available when compiled with the |+float| feature}
-		
-		
+
+screencol()							*screencol()*
+		The result is a Number, which is the current screen column of
+		the cursor. The leftmost column has number 1.
+		This function is mainly used for testing.
+
+		Note: Always returns the current screen column, thus if used
+		in a command (e.g. ":echo screencol()") it will return the
+		column inside the command line, which is 1 when the command is
+		executed. To get the cursor position in the file use one of
+		the following mappings: >
+			nnoremap <expr> GG ":echom ".screencol()."\n"
+			nnoremap <silent> GG :echom screencol()<CR>
+<
+screenrow()							*screenrow()*
+		The result is a Number, which is the current screen row of the
+		cursor.  The top line has number one.
+		This function is mainly used for testing.
+
+		Note: Same restrictions as with |screencol()|.
+
 search({pattern} [, {flags} [, {stopline} [, {timeout}]]])	*search()*
 		Search for regexp pattern {pattern}.  The search starts at the
 		cursor position (you can use |cursor()| to set it).
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7481,6 +7481,8 @@ save-file	editing.txt	/*save-file*
 save-settings	starting.txt	/*save-settings*
 scheme.vim	syntax.txt	/*scheme.vim*
 scp	pi_netrw.txt	/*scp*
+screencol()	eval.txt	/*screencol()*
+screenrow()	eval.txt	/*screenrow()*
 script	usr_41.txt	/*script*
 script-here	if_perl.txt	/*script-here*
 script-local	map.txt	/*script-local*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2012 Nov 28
+*todo.txt*      For Vim version 7.3.  Last change: 2012 Dec 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,6 +34,10 @@ not be repeated below, unless there is e
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+On external command get the message: 
+     SIGCHLD handler called (some thread has SIGCHLD unblocked)
+From MzScheme
+
 Go through more coverity reports.
 
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
@@ -49,19 +53,10 @@ The CompleteDone autocommand needs some 
 - The word that was selected (empty if abandoned complete)
 - Type of completion: tag, omnifunc, user func.
 
-Patch for Tab behavior with 'conceal'. (Dominique Pelle, 2012 Mar 18)
-Patch to test functionality of 'conceal' with tabs. (Simon Ruderich, 2012 Sep
-5)  Update with screencol() and screenrow() functions: Sep 7.
-
-Patch for undefined integer behavior. (Dominique Pelle, 2012 Nov 4, second one)
-
-Patch to have Python interface not depend on multi-byte.
-
-Patch to fix justify.vim. (James McCoy, 2012 Nov 23)
-
-mouse_sgr is not ordered alphabetically in :version output.
-Docs list mouse_urxvt as normal feature, should be big. (Hayaki Saito, 2012
-Aug 16)
+Patch for matchit.vim. (Mike Morearty, 2012 Nov 28)
+
+Patch to fix that the QuitPre autocommand clears the quitmore flag. (Techlive
+Zheng, 2012 Nov 28)
 
 ":gundo" command: global undo.  Undoes changes spread over multiple files in
 the order they were made.  Also ":gredo".  Both with a count.  Useful when
@@ -70,6 +65,8 @@ tests fail after making changes and you 
 Patch to make updating tabline faster. (Arseny Kapoulkine, 2012 Oct 3)
 Also remove the "rc" variable.
 
+Patch to make "- register not always used. (Christian Brabandt, 2012 Nov 28)
+
 Crash with vimdiff. (Don Cruickshank, 2012 Sep 23)
 
 Patch to support subdirectories for help files. (Charles Campbell, 2012 Nov
@@ -84,6 +81,10 @@ Update Oct 2.
 Patch to fix :s command with confirm and typing "a". (Christian Brabandt, 2012
 Oct 28)
 
+/[^\n] does match at a line break.  Expected to do the same as /.
+Patch by Christian Brabandt, 2012 Dec 1.
+Test files in archive in another message.
+
 Patch to make multibyte input work on Win32 console when codepage differs from
 'encoding'. (Ken Takata, 2012 Sep 29)
 
@@ -190,7 +191,7 @@ When there are no command line arguments
 is confusing.  Should say "the argument list is empty".
 
 URXVT:
-- will get stuck if byte sequence does not containe expected semicolon.
+- will get stuck if byte sequence does not contain the expected semicolon.
 - Use urxvt mouse support also in xterm.  Explanations:
   http://www.midnight-commander.org/ticket/2662
 
@@ -221,8 +222,6 @@ Patch Sep 18.
 Patch for IME problems. Remove hacking code for old IM. (Yukihiro Nakadaira,
 2012 Jul 20)
 
-/[^\n] does match at a line break.  Expected to do the same as /.
-
 Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
 And one for gui_x11.txt.
 
@@ -289,12 +288,6 @@ 2012 Jun 19)
 'list' is set.  (Dennis Preiser)
 Patch 7.3.116 was the wrong solution.
 Christian Brabandt has another incomplete patch. (2011 Jul 13)
-Also: Alignment in help with tabs gets messed up, esp. at ":help index".
-Probably need to make a tab work like there was no concealing.  Possibly with
-an option.  Like line wrapping works as if there is no concealing.
-Patch by Dominique Pelle, Also fixes "fC" problem.
-    "fC" doesn't position the cursor correctly when there are concealed
-    characters.  Patch by Christian Brabandt, 2011 Oct 11)
 
 With concealed text mouse click doesn't put the cursor in the right position.
 (Herb Sitz)  Fix by Christian Brabandt, 2011 Jun 16.  Doesn't work properly,
@@ -358,9 +351,6 @@ Christoph Ebersbach, 2011 Jul 3)
 
 Windows keys not set properly on Windows 7?  (cncyber, 2010 Aug 26)
 
-This line hangs Vim, because of syntax HL:
-call append(line, "INFO  ....12....18....24....30....36....42....48....54....60....66....72....78%$")
-
 When using a Vim server, a # in the path causes an error message.
 (Jeff Lanzarotta, 2011 Feb 17)
 
@@ -413,9 +403,6 @@ mapping, how to restore the script ID?
 Bug in try/catch: return with invalid compare throws error that isn't caught.
 (ZyX, 2011 Jan 26)
 
-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 setting a local option value from the global value, add a script ID that
 indicates this, so that ":verbose set" can give a hint.  Check with options in
 the help file.
@@ -642,6 +629,11 @@ Add local time at start of --startuptime
 Requires configure check for localtime().
 Use format year-month-day hr:min:sec.
 
+Patch to add "combine" to :syntax, combines highlight attributes. (Nate
+Soares, 2012 Dec 3)
+
+Patch to make ":hi link" also take arguments. (Nate Soares, 2012 Dec 4)
+
 Shell not recognized properly if it ends in "csh -f". (James Vega, 2009 Nov 3)
 Find tail?  Might have a / in argument.  Find space?  Might have space in
 path.
@@ -1295,10 +1287,6 @@ pointer in long and seek offset in 64 bi
 
 Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17)
 
-Win32: When there is 4 Gbyte of memory mch_avail_mem() doesn't work properly.
-Unfinished patch by Jelle Geerts, 2008 Aug 24.
-Let mch_avail_mem() return Kbyte instead?
-
 Win32: When 'shell' is bash shellescape() doesn't always do the right thing.
 Depends on 'shellslash', 'shellquote' and 'shellxquote', but shellescape()
 only takes 'shellslash' into account.
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt*    For Vim version 7.3.  Last change: 2012 May 28
+*uganda.txt*    For Vim version 7.3.  Last change: 2012 Dec 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -238,6 +238,7 @@ Canada:		Contact Kibaale Children's Fund
 Holland:	Transfer to the account of "Stichting ICCF Holland" in Lisse.
 		This will allow for tax deduction if you live in Holland.
 			Postbank, nr. 4548774
+			IBAN: NL95 INGB 0004 5487 74
 
 Germany:	It is possible to make donations that allow for a tax return.
 		Check the ICCF web site for the latest information:
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.3.  Last change: 2012 Aug 03
+*various.txt*   For Vim version 7.3.  Last change: 2012 Dec 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -353,75 +353,75 @@ N  *+mouseshape*	|'mouseshape'|
 B  *+mouse_dec*		Unix only: Dec terminal mouse handling |dec-mouse|
 N  *+mouse_gpm*		Unix only: Linux console mouse handling |gpm-mouse|
 B  *+mouse_netterm*	Unix only: netterm mouse handling |netterm-mouse|
-N  *+mouse_pterm*		QNX only: pterm mouse handling |qnx-terminal|
+N  *+mouse_pterm*	QNX only: pterm mouse handling |qnx-terminal|
 N  *+mouse_sysmouse*	Unix only: *BSD console mouse handling |sysmouse|
 B  *+mouse_sgr*		Unix only: sgr mouse handling |sgr-mouse|
-N  *+mouse_urxvt*		Unix only: urxvt mouse handling |urxvt-mouse|
-N  *+mouse_xterm*		Unix only: xterm mouse handling |xterm-mouse|
-B  *+multi_byte*		16 and 32 bit characters |multibyte|
+B  *+mouse_urxvt*	Unix only: urxvt mouse handling |urxvt-mouse|
+N  *+mouse_xterm*	Unix only: xterm mouse handling |xterm-mouse|
+B  *+multi_byte*	16 and 32 bit characters |multibyte|
    *+multi_byte_ime*	Win32 input method for multibyte chars |multibyte-ime|
-N  *+multi_lang*		non-English language support |multi-lang|
+N  *+multi_lang*	non-English language support |multi-lang|
 m  *+mzscheme*		Mzscheme interface |mzscheme|
 m  *+mzscheme/dyn*	Mzscheme interface |mzscheme-dynamic| |/dyn|
 m  *+netbeans_intg*	|netbeans|
-m  *+ole*			Win32 GUI only: |ole-interface|
-N  *+path_extra*		Up/downwards search in 'path' and 'tags'
+m  *+ole*		Win32 GUI only: |ole-interface|
+N  *+path_extra*	Up/downwards search in 'path' and 'tags'
 m  *+perl*		Perl interface |perl|
 m  *+perl/dyn*		Perl interface |perl-dynamic| |/dyn|
 N  *+persistent_undo*	Persistent undo |undo-persistence|
-   *+postscript*		|:hardcopy| writes a PostScript file
+   *+postscript*	|:hardcopy| writes a PostScript file
 N  *+printer*		|:hardcopy| command
 H  *+profile*		|:profile| command
 m  *+python*		Python 2 interface |python|
-m  *+python/dyn*		Python 2 interface |python-dynamic| |/dyn|
+m  *+python/dyn*	Python 2 interface |python-dynamic| |/dyn|
 m  *+python3*		Python 3 interface |python|
-m  *+python3/dyn*		Python 3 interface |python-dynamic| |/dyn|
+m  *+python3/dyn*	Python 3 interface |python-dynamic| |/dyn|
 N  *+quickfix*		|:make| and |quickfix| commands
 N  *+reltime*		|reltime()| function, 'hlsearch'/'incsearch' timeout,
 			'redrawtime' option
 B  *+rightleft*		Right to left typing |'rightleft'|
 m  *+ruby*		Ruby interface |ruby|
 m  *+ruby/dyn*		Ruby interface |ruby-dynamic| |/dyn|
-N  *+scrollbind*		|'scrollbind'|
+N  *+scrollbind*	|'scrollbind'|
 B  *+signs*		|:sign|
-N  *+smartindent*		|'smartindent'|
+N  *+smartindent*	|'smartindent'|
 m  *+sniff*		SniFF interface |sniff|
-N  *+startuptime*		|--startuptime| argument
-N  *+statusline*		Options 'statusline', 'rulerformat' and special
+N  *+startuptime*	|--startuptime| argument
+N  *+statusline*	Options 'statusline', 'rulerformat' and special
 			formats of 'titlestring' and 'iconstring'
 m  *+sun_workshop*	|workshop|
 N  *+syntax*		Syntax highlighting |syntax|
    *+system()*		Unix only: opposite of |+fork|
-N  *+tag_binary*		binary searching in tags file |tag-binary-search|
+N  *+tag_binary*	binary searching in tags file |tag-binary-search|
 N  *+tag_old_static*	old method for static tags |tag-old-static|
 m  *+tag_any_white*	any white space allowed in tags file |tag-any-white|
-m  *+tcl*			Tcl interface |tcl|
+m  *+tcl*		Tcl interface |tcl|
 m  *+tcl/dyn*		Tcl interface |tcl-dynamic| |/dyn|
    *+terminfo*		uses |terminfo| instead of termcap
 N  *+termresponse*	support for |t_RV| and |v:termresponse|
-N  *+textobjects*		|text-objects| selection
+N  *+textobjects*	|text-objects| selection
    *+tgetent*		non-Unix only: able to use external termcap
 N  *+title*		Setting the window 'title' and 'icon'
 N  *+toolbar*		|gui-toolbar|
 N  *+user_commands*	User-defined commands. |user-commands|
 N  *+viminfo*		|'viminfo'|
 N  *+vertsplit*		Vertically split windows |:vsplit|
-N  *+virtualedit*		|'virtualedit'|
+N  *+virtualedit*	|'virtualedit'|
 S  *+visual*		Visual mode |Visual-mode|
-N  *+visualextra*		extra Visual mode commands |blockwise-operators|
+N  *+visualextra*	extra Visual mode commands |blockwise-operators|
 N  *+vreplace*		|gR| and |gr|
-N  *+wildignore*		|'wildignore'|
+N  *+wildignore*	|'wildignore'|
 N  *+wildmenu*		|'wildmenu'|
 S  *+windows*		more than one window
-m  *+writebackup*		|'writebackup'| is default on
-m  *+xim*			X input method |xim|
+m  *+writebackup*	|'writebackup'| is default on
+m  *+xim*		X input method |xim|
    *+xfontset*		X fontset support |xfontset|
 m  *+xpm_w32*		Win32 GUI only: pixmap support |w32-xpm-support|
    *+xsmp*		XSMP (X session management) support
    *+xsmp_interact*	interactive XSMP (X session management) support
 N  *+xterm_clipboard*	Unix only: xterm clipboard handling
-m  *+xterm_save*		save and restore xterm screen |xterm-screens|
-N  *+X11*			Unix only: can restore window title |X11|
+m  *+xterm_save*	save and restore xterm screen |xterm-screens|
+N  *+X11*		Unix only: can restore window title |X11|
 
 							*/dyn* *E370* *E448*
 			To some of the features "/dyn" is added when the
--- a/runtime/ftplugin/sql.vim
+++ b/runtime/ftplugin/sql.vim
@@ -1,8 +1,8 @@
 " SQL filetype plugin file
 " Language:    SQL (Common for Oracle, Microsoft SQL Server, Sybase)
-" Version:     8.0
+" Version:     10.0
 " Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
-" Last Change: 2012 May 18
+" Last Change: 2012 Dec 04
 " Download:    http://vim.sourceforge.net/script.php?script_id=454
 
 " For more details please use:
@@ -30,34 +30,48 @@
 " To change the default dialect, add the following to your vimrc:
 "    let g:sql_type_default = 'sqlanywhere'
 "
-" This file also creates a command, SQLGetType, which allows you to 
+" This file also creates a command, SQLGetType, which allows you to
 " determine what the current dialect is in use.
 "     :SQLGetType
 "
 " History
 "
+" Version 10.0 (Dec 2012)
+"
+" NF: Changed all maps to use noremap instead of must map
+" NF: Changed all visual maps to use xnoremap instead of vnoremap as they
+"     should only be used in visual mode and not select mode.
+" BF: Most of the maps were using doubled up backslashes before they were
+"     changed to using the search() function, which meant they no longer
+"     worked.
+"
+" Version 9.0
+"
+" NF: Completes 'b:undo_ftplugin'
+" BF: Correctly set cpoptions when creating script
+"
 " Version 8.0
-" 
+"
 " NF: Improved the matchit plugin regex (Talek)
 "
 " Version 7.0
-" 
+"
 " NF: Calls the sqlcomplete#ResetCacheSyntax() function when calling
 "     SQLSetType.
 "
 " Version 6.0
-" 
+"
 " NF: Adds the command SQLGetType
 "
 " Version 5.0
-" 
-" NF: Adds the ability to choose the keys to control SQL completion, just add 
+"
+" NF: Adds the ability to choose the keys to control SQL completion, just add
 "     the following to your .vimrc:
 "    let g:ftplugin_sql_omni_key       = '<C-C>'
 "    let g:ftplugin_sql_omni_key_right = '<Right>'
 "    let g:ftplugin_sql_omni_key_left  = '<Left>'
 "
-" BF: format-options - Auto-wrap comments using textwidth was turned off 
+" BF: format-options - Auto-wrap comments using textwidth was turned off
 "                      by mistake.
 
 
@@ -81,7 +95,7 @@ setlocal formatoptions+=c
 " This works with both Vim 6 and 7.
 
 if !exists("*SQL_SetType")
-    " NOTE: You cannot use function! since this file can be 
+    " NOTE: You cannot use function! since this file can be
     " sourced from within this function.  That will result in
     " an error reported by Vim.
     function SQL_GetList(ArgLead, CmdLine, CursorPos)
@@ -105,9 +119,9 @@ if !exists("*SQL_SetType")
             "
             "    Recursively, since there are many filenames that contain
             "    the word SQL in the indent, syntax and ftplugin directory
-            let sqls = substitute( sqls, 
-                        \ '[\n]\%(.\{-}\)\(\w\+\.\w\+\)\n\@=', 
-                        \ '\1\n', 
+            let sqls = substitute( sqls,
+                        \ '[\n]\%(.\{-}\)\(\w\+\.\w\+\)\n\@=',
+                        \ '\1\n',
                         \ 'g'
                         \ )
 
@@ -142,10 +156,10 @@ if !exists("*SQL_SetType")
     function SQL_SetType(name)
 
         " User has decided to override default SQL scripts and
-        " specify a vendor specific version 
+        " specify a vendor specific version
         " (ie Oracle, Informix, SQL Anywhere, ...)
         " So check for an remove any settings that prevent the
-        " scripts from being executed, and then source the 
+        " scripts from being executed, and then source the
         " appropriate Vim scripts.
         if exists("b:did_ftplugin")
             unlet b:did_ftplugin
@@ -163,10 +177,10 @@ if !exists("*SQL_SetType")
         endif
 
         " Ensure the name is in the correct format
-        let new_sql_type = substitute(a:name, 
+        let new_sql_type = substitute(a:name,
                     \ '\s*\([^\.]\+\)\(\.\w\+\)\?', '\L\1', '')
 
-        " Do not specify a buffer local variable if it is 
+        " Do not specify a buffer local variable if it is
         " the default value
         if new_sql_type == 'sql'
           let new_sql_type = 'sqloracle'
@@ -203,10 +217,10 @@ endif
 
 if !exists("*SQL_GetType")
     function SQL_GetType()
-        if exists('b:sql_type_override') 
+        if exists('b:sql_type_override')
             echomsg "Current SQL dialect in use:".b:sql_type_override
         else
-            echomsg "Current SQL dialect in use:".g:sql_type_default        
+            echomsg "Current SQL dialect in use:".g:sql_type_default
         endif
     endfunction
     command! -nargs=0 SQLGetType :call SQL_GetType()
@@ -233,7 +247,8 @@ if exists("b:did_ftplugin")
   finish
 endif
 
-let b:undo_ftplugin = "setl comments<"
+let b:undo_ftplugin = "setl comments< formatoptions< define< omnifunc<" .
+		    \ " | unlet! b:browsefilter b:match_words"
 
 " Don't load another plugin for this buffer
 let b:did_ftplugin     = 1
@@ -280,7 +295,7 @@ if !exists("b:match_words")
     " doend
     "
     " case
-    " when 
+    " when
     " when
     " default
     " end case
@@ -296,8 +311,10 @@ if !exists("b:match_words")
     " create[ or replace] procedure|function|event
                 " \ '^\s*\<\%(do\|for\|while\|loop\)\>.*:'.
 
-    let b:match_words =
-		\ '\<begin\>:\<end\>\W*$,'.
+    " For ColdFusion support
+    setlocal matchpairs+=<:>
+    let b:match_words = &matchpairs .
+		\ ',\<begin\>:\<end\>\W*$,'.
 		\
                 \ s:notend . '\<if\>:'.
                 \ '\<elsif\>\|\<elseif\>\|\<else\>:'.
@@ -337,14 +354,14 @@ let &l:define = '\c\<\(VARIABLE\|DECLARE
 
 " Mappings to move to the next BEGIN ... END block
 " \W - no characters or digits
-nmap <buffer> <silent> ]] :call search('\\c^\\s*begin\\>', 'W' )<CR>
-nmap <buffer> <silent> [[ :call search('\\c^\\s*begin\\>', 'bW' )<CR>
-nmap <buffer> <silent> ][ :call search('\\c^\\s*end\\W*$', 'W' )<CR>
-nmap <buffer> <silent> [] :call search('\\c^\\s*end\\W*$', 'bW' )<CR>
-vmap <buffer> <silent> ]] :<C-U>exec "normal! gv"<Bar>call search('\\c^\\s*begin\\>', 'W' )<CR>
-vmap <buffer> <silent> [[ :<C-U>exec "normal! gv"<Bar>call search('\\c^\\s*begin\\>', 'bW' )<CR>
-vmap <buffer> <silent> ][ :<C-U>exec "normal! gv"<Bar>call search('\\c^\\s*end\\W*$', 'W' )<CR>
-vmap <buffer> <silent> [] :<C-U>exec "normal! gv"<Bar>call search('\\c^\\s*end\\W*$', 'bW' )<CR>
+nnoremap <buffer> <silent> ]] :call search('\c^\s*begin\>', 'W' )<CR>
+nnoremap <buffer> <silent> [[ :call search('\c^\s*begin\>', 'bW' )<CR>
+nnoremap <buffer> <silent> ][ :call search('\c^\s*end\W*$', 'W' )<CR>
+nnoremap <buffer> <silent> [] :call search('\c^\s*end\W*$', 'bW' )<CR>
+xnoremap <buffer> <silent> ]] :<C-U>exec "normal! gv"<Bar>call search('\c^\s*begin\>', 'W' )<CR>
+xnoremap <buffer> <silent> [[ :<C-U>exec "normal! gv"<Bar>call search('\c^\s*begin\>', 'bW' )<CR>
+xnoremap <buffer> <silent> ][ :<C-U>exec "normal! gv"<Bar>call search('\c^\s*end\W*$', 'W' )<CR>
+xnoremap <buffer> <silent> [] :<C-U>exec "normal! gv"<Bar>call search('\c^\s*end\W*$', 'bW' )<CR>
 
 
 " By default only look for CREATE statements, but allow
@@ -361,7 +378,7 @@ endif
 " backwards, you must use \{,1}
 if !exists('g:ftplugin_sql_objects')
     let g:ftplugin_sql_objects = 'function,procedure,event,' .
-                \ '\\(existing\\\\|global\\s\\+temporary\\s\\+\\)\\\{,1}' .
+                \ '\(existing\\|global\s\+temporary\s\+\)\{,1}' .
                 \ 'table,trigger' .
                 \ ',schema,service,publication,database,datatype,domain' .
                 \ ',index,subscription,synchronization,view,variable'
@@ -382,47 +399,47 @@ endif
 
 " Replace all ,'s with bars, except ones with numbers after them.
 " This will most likely be a \{,1} string.
-let s:ftplugin_sql_objects = 
-            \ '\\c^\\s*' .
-            \ '\\(\\(' .
-            \ substitute(g:ftplugin_sql_statements, ',\d\@!', '\\\\\\|', 'g') .
-            \ '\\)\\s\\+\\(or\\s\\+replace\\\s\+\\)\\{,1}\\)\\{,1}' .
-            \ '\\<\\(' .
-            \ substitute(g:ftplugin_sql_objects, ',\d\@!', '\\\\\\|', 'g') .
-            \ '\\)\\>' 
+let s:ftplugin_sql_objects =
+            \ '\c^\s*' .
+            \ '\(\(' .
+            \ substitute(g:ftplugin_sql_statements, ',\d\@!', '\\\\|', 'g') .
+            \ '\)\s\+\(or\s\+replace\s\+\)\{,1}\)\{,1}' .
+            \ '\<\(' .
+            \ substitute(g:ftplugin_sql_objects, ',\d\@!', '\\\\|', 'g') .
+            \ '\)\>'
 
 " Mappings to move to the next CREATE ... block
-exec "nmap <buffer> <silent> ]} :call search('".s:ftplugin_sql_objects."', 'W')<CR>"
-exec "nmap <buffer> <silent> [{ :call search('".s:ftplugin_sql_objects."', 'bW')<CR>"
+exec "nnoremap <buffer> <silent> ]} :call search('".s:ftplugin_sql_objects."', 'W')<CR>"
+exec "nnoremap <buffer> <silent> [{ :call search('".s:ftplugin_sql_objects."', 'bW')<CR>"
 " Could not figure out how to use a :call search() string in visual mode
 " without it ending visual mode
 " Unfortunately, this will add a entry to the search history
-exec 'vmap <buffer> <silent> ]} /'.s:ftplugin_sql_objects.'<CR>'
-exec 'vmap <buffer> <silent> [{ ?'.s:ftplugin_sql_objects.'<CR>'
+exec 'xnoremap <buffer> <silent> ]} /'.s:ftplugin_sql_objects.'<CR>'
+exec 'xnoremap <buffer> <silent> [{ ?'.s:ftplugin_sql_objects.'<CR>'
 
 " Mappings to move to the next COMMENT
 "
 " Had to double the \ for the \| separator since this has a special
 " meaning on maps
-let b:comment_leader = '\\(--\\\|\\/\\/\\\|\\*\\\|\\/\\*\\\|\\*\\/\\)'
+let b:comment_leader = '\(--\\|\/\/\\|\*\\|\/\*\\|\*\/\)'
 " Find the start of the next comment
-let b:comment_start  = '^\\(\\s*'.b:comment_leader.'.*\\n\\)\\@<!'.
-            \ '\\(\\s*'.b:comment_leader.'\\)'
+let b:comment_start  = '^\(\s*'.b:comment_leader.'.*\n\)\@<!'.
+            \ '\(\s*'.b:comment_leader.'\)'
 " Find the end of the previous comment
-let b:comment_end = '\\(^\\s*'.b:comment_leader.'.*\\n\\)'.
-            \ '\\(^\\s*'.b:comment_leader.'\\)\\@!'
+let b:comment_end = '\(^\s*'.b:comment_leader.'.*\n\)'.
+            \ '\(^\s*'.b:comment_leader.'\)\@!'
 " Skip over the comment
 let b:comment_jump_over  = "call search('".
-            \ '^\\(\\s*'.b:comment_leader.'.*\\n\\)\\@<!'.
+            \ '^\(\s*'.b:comment_leader.'.*\n\)\@<!'.
             \ "', 'W')"
 let b:comment_skip_back  = "call search('".
-            \ '^\\(\\s*'.b:comment_leader.'.*\\n\\)\\@<!'.
+            \ '^\(\s*'.b:comment_leader.'.*\n\)\@<!'.
             \ "', 'bW')"
 " Move to the start and end of comments
 exec 'nnoremap <silent><buffer> ]" :call search('."'".b:comment_start."'".', "W" )<CR>'
 exec 'nnoremap <silent><buffer> [" :call search('."'".b:comment_end."'".', "W" )<CR>'
-exec 'vnoremap <silent><buffer> ]" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_start."'".', "W" )<CR>'
-exec 'vnoremap <silent><buffer> [" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_end."'".', "W" )<CR>'
+exec 'xnoremap <silent><buffer> ]" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_start."'".', "W" )<CR>'
+exec 'xnoremap <silent><buffer> [" :<C-U>exec "normal! gv"<Bar>call search('."'".b:comment_end."'".', "W" )<CR>'
 
 " Comments can be of the form:
 "   /*
@@ -431,7 +448,7 @@ exec 'vnoremap <silent><buffer> [" :<C-U
 " or
 "   --
 " or
-"   // 
+"   //
 setlocal comments=s1:/*,mb:*,ex:*/,:--,://
 
 " Set completion with CTRL-X CTRL-O to autoloaded function.
@@ -443,7 +460,7 @@ if exists('&omnifunc')
 
     " This is used by the sqlcomplete.vim plugin
     " Source it for it's global functions
-    runtime autoload/syntaxcomplete.vim 
+    runtime autoload/syntaxcomplete.vim
 
     setlocal omnifunc=sqlcomplete#Complete
     " Prevent the intellisense plugin from loading
@@ -451,32 +468,32 @@ if exists('&omnifunc')
     if !exists('g:omni_sql_no_default_maps')
         " Static maps which use populate the completion list
         " using Vim's syntax highlighting rules
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'a <C-\><C-O>:call sqlcomplete#Map("syntax")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'a <C-\><C-O>:call sqlcomplete#Map("syntax")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement")<CR><C-X><C-O>'
         " Dynamic maps which use populate the completion list
         " using the dbext.vim plugin
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'t <C-\><C-O>:call sqlcomplete#Map("table")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'p <C-\><C-O>:call sqlcomplete#Map("procedure")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'v <C-\><C-O>:call sqlcomplete#Map("view")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'c <C-\><C-O>:call sqlcomplete#Map("column")<CR><C-X><C-O>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'l <C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'t <C-\><C-O>:call sqlcomplete#Map("table")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'p <C-\><C-O>:call sqlcomplete#Map("procedure")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'v <C-\><C-O>:call sqlcomplete#Map("view")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'c <C-\><C-O>:call sqlcomplete#Map("column")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'l <C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
         " The next 3 maps are only to be used while the completion window is
         " active due to the <CR> at the beginning of the map
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'L <C-Y><C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'L <C-Y><C-\><C-O>:call sqlcomplete#Map("column_csv")<CR><C-X><C-O>'
         " <C-Right> is not recognized on most Unix systems, so only create
         " these additional maps on the Windows platform.
         " If you would like to use these maps, choose a different key and make
         " the same map in your vimrc.
         " if has('win32')
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key_right.' <C-R>=sqlcomplete#DrillIntoTable()<CR>'
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key_left.'  <C-R>=sqlcomplete#DrillOutOfColumns()<CR>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key_right.' <C-R>=sqlcomplete#DrillIntoTable()<CR>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key_left.'  <C-R>=sqlcomplete#DrillOutOfColumns()<CR>'
         " endif
         " Remove any cached items useful for schema changes
-        exec 'imap <buffer> '.g:ftplugin_sql_omni_key.'R <C-\><C-O>:call sqlcomplete#Map("resetCache")<CR><C-X><C-O>'
+        exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'R <C-\><C-O>:call sqlcomplete#Map("resetCache")<CR><C-X><C-O>'
     endif
 
     if b:sql_compl_savefunc != ""
--- a/runtime/indent/sqlanywhere.vim
+++ b/runtime/indent/sqlanywhere.vim
@@ -1,8 +1,8 @@
 " Vim indent file
 " Language:    SQL
-" Maintainer:  David Fishburn <fishburn at ianywhere dot com>
-" Last Change: Mon Apr 02 2007 9:13:47 AM
-" Version:     1.5
+" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
+" Last Change: 2012 Dec 05
+" Version:     3.0
 " Download:    http://vim.sourceforge.net/script.php?script_id=495
 
 " Notes:
@@ -18,6 +18,17 @@
 " Known Issues:
 "    The Oracle MERGE statement does not have an end tag associated with
 "    it, this can leave the indent hanging to the right one too many.
+"
+" History:
+"    3.0 (Dec 2012)
+"        Added cpo check
+"
+"    2.0
+"        Added the FOR keyword to SQLBlockStart to handle (Alec Tica):
+"            for i in 1..100 loop
+"              |<-- I expect to have indentation here
+"            end loop;
+"
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -25,6 +36,8 @@ if exists("b:did_indent")
 endif
 let b:did_indent     = 1
 let b:current_indent = "sqlanywhere"
+let s:keepcpo= &cpo
+set cpo&vim
 
 setlocal indentkeys-=0{
 setlocal indentkeys-=0}
@@ -44,20 +57,13 @@ setlocal indentkeys+==~end,=~else,=~else
 " in the indentkeys is typed
 setlocal indentexpr=GetSQLIndent()
 
-" Only define the functions once.
-if exists("*GetSQLIndent")
-    finish
-endif
-let s:keepcpo= &cpo
-set cpo&vim
-
 " List of all the statements that start a new block.
 " These are typically words that start a line.
 " IS is excluded, since it is difficult to determine when the
 " ending block is (especially for procedures/functions).
 let s:SQLBlockStart = '^\s*\%('.
-            \ 'if\|else\|elseif\|elsif\|'.
-                \ 'while\|loop\|do\|'.
+                \ 'if\|else\|elseif\|elsif\|'.
+                \ 'while\|loop\|do\|for\|'.
                 \ 'begin\|'.
                 \ 'case\|when\|merge\|exception'.
                 \ '\)\>'
@@ -66,7 +72,7 @@ let s:SQLBlockEnd = '^\s*\(end\)\>'
 " The indent level is also based on unmatched paranethesis
 " If a line has an extra "(" increase the indent
 " If a line has an extra ")" decrease the indent
-function s:CountUnbalancedParan( line, paran_to_check )
+function! s:CountUnbalancedParan( line, paran_to_check )
     let l = a:line
     let lp = substitute(l, '[^(]', '', 'g')
     let l = a:line
@@ -88,7 +94,7 @@ function s:CountUnbalancedParan( line, p
 endfunction
 
 " Unindent commands based on previous indent level
-function s:CheckToIgnoreRightParan( prev_lnum, num_levels )
+function! s:CheckToIgnoreRightParan( prev_lnum, num_levels )
     let lnum = a:prev_lnum
     let line = getline(lnum)
     let ends = 0
@@ -151,7 +157,7 @@ endfunction
 "         something;
 "    WHEN ...
 " Should return indent level of exception.
-function s:GetStmtStarterIndent( keyword, curr_lnum )
+function! s:GetStmtStarterIndent( keyword, curr_lnum )
     let lnum  = a:curr_lnum
 
     " Default - reduce indent by 1
@@ -193,7 +199,7 @@ endfunction
 
 
 " Check if the line is a comment
-function s:IsLineComment(lnum)
+function! s:IsLineComment(lnum)
     let rc = synIDattr(
                 \ synID(a:lnum,
                 \     match(getline(a:lnum), '\S')+1, 0)
@@ -205,7 +211,7 @@ endfunction
 
 
 " Check if the column is a comment
-function s:IsColComment(lnum, cnum)
+function! s:IsColComment(lnum, cnum)
     let rc = synIDattr(synID(a:lnum, a:cnum, 0), "name")
                 \           =~? "comment"
 
@@ -215,7 +221,7 @@ endfunction
 
 " Instead of returning a column position, return
 " an appropriate value as a factor of shiftwidth.
-function s:ModuloIndent(ind)
+function! s:ModuloIndent(ind)
     let ind = a:ind
 
     if ind > 0
@@ -231,7 +237,7 @@ endfunction
 
 
 " Find correct indent of a new line based upon the previous line
-function GetSQLIndent()
+function! GetSQLIndent()
     let lnum = v:lnum
     let ind = indent(lnum)
 
@@ -242,35 +248,27 @@ function GetSQLIndent()
     "     return ind
     " endif
 
-    " while 1
-        " Get previous non-blank line
-        let prevlnum = prevnonblank(lnum - 1)
-        if prevlnum <= 0
-            return ind
-        endif
+    " Get previous non-blank line
+    let prevlnum = prevnonblank(lnum - 1)
+    if prevlnum <= 0
+        return ind
+    endif
 
-        if s:IsLineComment(prevlnum) == 1
-            if getline(v:lnum) =~ '^\s*\*'
-                let ind = s:ModuloIndent(indent(prevlnum))
-                return ind + 1
-            endif
-            " If the previous line is a comment, then return -1
-            " to tell Vim to use the formatoptions setting to determine
-            " the indent to use
-            " But only if the next line is blank.  This would be true if
-            " the user is typing, but it would not be true if the user
-            " is reindenting the file
-            if getline(v:lnum) =~ '^\s*$'
-                return -1
-            endif
+    if s:IsLineComment(prevlnum) == 1
+        if getline(v:lnum) =~ '^\s*\*'
+            let ind = s:ModuloIndent(indent(prevlnum))
+            return ind + 1
         endif
-
-    "     let prevline = getline(prevlnum)
-    "     if prevline !~ '^\s*$'
-    "         " echom 'previous non blank - break: ' . prevline
-    "         break
-    "     endif
-    " endwhile
+        " If the previous line is a comment, then return -1
+        " to tell Vim to use the formatoptions setting to determine
+        " the indent to use
+        " But only if the next line is blank.  This would be true if
+        " the user is typing, but it would not be true if the user
+        " is reindenting the file
+        if getline(v:lnum) =~ '^\s*$'
+            return -1
+        endif
+    endif
 
     " echom 'PREVIOUS INDENT: ' . indent(prevlnum) . '  LINE: ' . getline(prevlnum)
 
@@ -384,7 +382,7 @@ function GetSQLIndent()
     return s:ModuloIndent(ind)
 endfunction
 
-let &cpo = s:keepcpo
+"  Restore:
+let &cpo= s:keepcpo
 unlet s:keepcpo
-
-" vim:sw=4:
+" vim: ts=4 fdm=marker sw=4
new file mode 100644
--- /dev/null
+++ b/runtime/indent/yaml.vim
@@ -0,0 +1,132 @@
+" Vim indent file
+" Language:         YAML
+" Maintainer:       Nikolai Pavlov <zyx.vim@gmail.com>
+
+" Only load this indent file when no other was loaded.
+if exists('b:did_indent')
+  finish
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+let b:did_indent = 1
+
+setlocal indentexpr=GetYAMLIndent(v:lnum)
+setlocal indentkeys=!^F,o,O,0#,0},0],<:>,-
+setlocal nosmartindent
+
+let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'
+
+" Only define the function once.
+if exists('*GetYAMLIndent')
+    finish
+endif
+
+if exists('*shiftwidth')
+    let s:shiftwidth = function('shiftwidth')
+else
+    function s:shiftwidth()
+        return &shiftwidth
+    endfunction
+endif
+
+function s:FindPrevLessIndentedLine(lnum, ...)
+    let prevlnum = prevnonblank(a:lnum-1)
+    let curindent = a:0 ? a:1 : indent(a:lnum)
+    while           prevlnum
+                \&&  indent(prevlnum) >=  curindent
+                \&& getline(prevlnum) !~# '^\s*#'
+        let prevlnum = prevnonblank(prevlnum-1)
+    endwhile
+    return prevlnum
+endfunction
+
+function s:FindPrevLEIndentedLineMatchingRegex(lnum, regex)
+    let plilnum = s:FindPrevLessIndentedLine(a:lnum, indent(a:lnum)+1)
+    while plilnum && getline(plilnum) !~# a:regex
+        let plilnum = s:FindPrevLessIndentedLine(plilnum)
+    endwhile
+    return plilnum
+endfunction
+
+let s:mapkeyregex='\v^\s*%(\''%([^'']|'''')*\'''.
+                \        '|\"%([^"\\]|\\.)*\"'.
+                \        '|%(%(\:\ )@!.)*)\:%(\ |$)'
+let s:liststartregex='\v^\s*%(\-%(\ |$))'
+
+function GetYAMLIndent(lnum)
+    if a:lnum == 1 || !prevnonblank(a:lnum-1)
+        return 0
+    endif
+
+    let prevlnum = prevnonblank(a:lnum-1)
+    let previndent = indent(prevlnum)
+
+    let line = getline(a:lnum)
+    if line =~# '^\s*#' && getline(a:lnum-1) =~# '^\s*#'
+        " Comment blocks should have identical indent
+        return previndent
+    elseif line =~# '^\s*[\]}]'
+        " Lines containing only closing braces should have previous indent
+        return indent(s:FindPrevLessIndentedLine(a:lnum))
+    endif
+
+    " Ignore comment lines when calculating indent
+    while getline(prevlnum) =~# '^\s*#'
+        let prevlnum = prevnonblank(prevlnum-1)
+        if !prevlnum
+            return previndent
+        endif
+    endwhile
+
+    let prevline = getline(prevlnum)
+    let previndent = indent(prevlnum)
+
+    " Any examples below assume that shiftwidth=2
+    if prevline =~# '\v[{[:]$|[:-]\ [|>][+\-]?%(\s+\#.*|\s*)$'
+        " Mapping key:
+        "     nested mapping: ...
+        "
+        " - {
+        "     key: [
+        "         list value
+        "     ]
+        " }
+        "
+        " - |-
+        "     Block scalar without indentation indicator
+        return previndent+s:shiftwidth()
+    elseif prevline =~# '\v[:-]\ [|>]%(\d+[+\-]?|[+\-]?\d+)%(\#.*|\s*)$'
+        " - |+2
+        "   block scalar with indentation indicator
+        "#^^ indent+2, not indent+shiftwidth
+        return previndent + str2nr(matchstr(prevline,
+                    \'\v([:-]\ [|>])@<=[+\-]?\d+%([+\-]?%(\s+\#.*|\s*)$)@='))
+    elseif prevline =~# '\v\"%([^"\\]|\\.)*\\$'
+        "    "Multiline string \
+        "     with escaped end"
+        let qidx = match(prevline, '\v\"%([^"\\]|\\.)*\\')
+        return virtcol([prevlnum, qidx+1])
+    elseif line =~# s:liststartregex
+        " List line should have indent equal to previous list line unless it was 
+        " caught by one of the previous rules
+        return indent(s:FindPrevLEIndentedLineMatchingRegex(a:lnum,
+                    \                                       s:liststartregex))
+    elseif line =~# s:mapkeyregex
+        " Same for line containing mapping key
+        return indent(s:FindPrevLEIndentedLineMatchingRegex(a:lnum,
+                    \                                       s:mapkeyregex))
+    elseif prevline =~# '^\s*- '
+        " - List with
+        "   multiline scalar
+        return previndent+2
+    elseif prevline =~# s:mapkeyregex
+        " Mapping with: value
+        "     that is multiline scalar
+        return previndent+s:shiftwidth()
+    endif
+    return previndent
+endfunction
+
+let &cpo = s:save_cpo
--- a/runtime/lang/menu_cs_cz.iso_8859-2.vim
+++ b/runtime/lang/menu_cs_cz.iso_8859-2.vim
@@ -1,32 +1,38 @@
-" Menu Translations:	Czech for ISO-8859-2
-" Maintainer:		Jiri Brezina <brzj@seznam.cz>
-" vim:set foldmethod=marker:
-" $Revision: 1.3 $
-" $Date: 2005/12/19 22:08:24 $
+" Menu Translations:    Czech (ISO-8859-2)
+" Maintainer:           Jiri Sedlak <jiri_sedlak@users.sourceforge.net>
+" Previous maintainer:  Jiri Brezina
+" Based on:             menu.vim (2012-10-21)
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
-  finish
+   finish
 endif
+
 let did_menu_trans = 1
 let s:keepcpo= &cpo
 set cpo&vim
 
-scriptencoding ISO-8859-2
+scriptencoding iso-8859-2
 
 " {{{ File menu
 menutrans &File				&Soubor
 menutrans &Open\.\.\.<Tab>:e		&Otevřít\.\.\.<Tab>:e
 menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otevřít\ v\ no&vém\ okně\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otevřít\ tab\.\.\.<Tab>:tabnew
 menutrans &New<Tab>:enew		&Nový<Tab>:enew
 menutrans &Close<Tab>:close		&Zavřít<Tab>:close
 menutrans &Save<Tab>:w			&Uloľit<Tab>:w
 menutrans Save\ &As\.\.\.<Tab>:sav	Uloľit\ &jako\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	Rozdělit\ okno\ -\ &Diff\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	Rozdělit\ okno\ -\ &Patch\.\.\.
-menutrans &Print			&Tisk
-menutrans Sa&ve-Exit<Tab>:wqa		U&loľit\ -\ Konec<Tab>:wqa
-menutrans E&xit<Tab>:qa			&Konec<Tab>:qa
+if has("printer") || has("unix")
+   menutrans &Print			&Tisk
+endif
+menutrans Sa&ve-Exit<Tab>:wqa		U&loľit\ a\ ukončit<Tab>:wqa
+menutrans E&xit<Tab>:qa			&Ukončit<Tab>:qa
+
+if has("diff")
+   menutrans Split\ &Diff\ with\.\.\.	Rozdělit\ okno\ -\ &Diff\.\.\.
+   menutrans Split\ Patched\ &By\.\.\.	Rozdělit\ okno\ -\ &Patch\.\.\.
+endif
 " }}}
 
 " {{{ Edit menu
@@ -39,24 +45,32 @@ menutrans &Copy<Tab>"+y			&Kopírovat<Tab>"+y
 menutrans &Paste<Tab>"+gP		V&loľit<Tab>"+gP
 menutrans Put\ &Before<Tab>[p		Vloľit\ &před<Tab>[p
 menutrans Put\ &After<Tab>]p		Vloľi&t\ za<Tab>]p
-menutrans &Delete<Tab>x			&Smazat<Tab>x
+if has("win32") || has("win16")
+   menutrans &Delete<Tab>x			&Smazat<Tab>x
+endif
 menutrans &Select\ All<Tab>ggVG		Vy&brat\ vąe<Tab>ggVG
-menutrans &Find\.\.\.			&Hledat\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
-menutrans Options\.\.\.			Volb&y\.\.\.
+if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
+   menutrans &Find\.\.\.			&Hledat\.\.\.
+   menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
+else
+   menutrans Find<Tab>/ &Hledat<Tab>/
+   menutrans Find\ and\ Rep&lace<Tab>:%s  &Nahradit<Tab>:%s
+   menutrans Find\ and\ Rep&lace<Tab>:s   &Nahradit<Tab>:s
+endif
 menutrans Settings\ &Window		Nastav&ení\ okna
-	" {{{2 Edit -1
+" {{{2 Edit -1
+menutrans Startup\ &Settings  Počáteční\ &nastavení
 menutrans &Global\ Settings				&Globální\ nastavení
 menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Přepnout\ zvýraznění\ vzoru<Tab>:set\ hls!
 menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Přepnout\ ignorování\ &VERZÁLEK<Tab>:set\ ic!
 menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Přepnout\ &Showmatch\ \{\(\[\])\}<Tab>:set\ sm!
 menutrans &Context\ lines				Zobrazit\ konte&xt\ kurzoru
 menutrans &Virtual\ Edit				Virtuální\ p&ozice\ kurzoru
-	menutrans Never						Nikdy
-	menutrans Block\ Selection				Výběr\ Bloku
-	menutrans Insert\ mode					Insert\ mód
-	menutrans Block\ and\ Insert				Blok\ a\ Insert
-	menutrans Always					Vľdycky
+menutrans Never						Nikdy
+menutrans Block\ Selection				Výběr\ Bloku
+menutrans Insert\ mode					Insert\ mód
+menutrans Block\ and\ Insert				Blok\ a\ Insert
+menutrans Always					Vľdycky
 menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Přepnout\ Insert\ mó&d<Tab>:set\ im!
 menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Přepnout\ kompatibilní\ reľim\ s\ 'vi'<Tab>:set\ cp!
 menutrans Search\ &Path\.\.\.				Nastavit\ &cestu\ k\ prohledávání\.\.\.
@@ -65,9 +79,10 @@ menutrans Toggle\ &Toolbar				Přepnout\ &Toolbar
 menutrans Toggle\ &Bottom\ Scrollbar			Př&epnout\ dolní\ rolovací\ liątu
 menutrans Toggle\ &Left\ Scrollbar			Přepnout\ &levou\ rolovací\ liątu
 menutrans Toggle\ &Right\ Scrollbar			Přepnout\ p&ravou\ rolovací\ liątu
-	" {{{2 Edit -2
+" {{{2 Edit -2
 menutrans F&ile\ Settings				Nastavení\ so&uboru
 menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Přepnout\ číslování\ řá&dků<Tab>:set\ nu!
+menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Přepnout\ relativní\ číslování\ řá&dků<Tab>:set\ rnu!
 menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Přepnout\ &List\ mód<Tab>:set\ list!
 menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Přepnout\ zala&mování\ řádků<Tab>:set\ wrap!
 menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Přepnout\ zl&om\ ve\ slově<Tab>:set\ lbr!
@@ -78,10 +93,12 @@ menutrans &Shiftwidth					Nastav&it\ ąířku\ od&sazení
 menutrans Soft\ &Tabstop				Nastavit\ Soft\ &Tabstop
 menutrans Te&xt\ Width\.\.\.				©ířka\ te&xtu\.\.\.
 menutrans &File\ Format\.\.\.				&Formát\ souboru\.\.\.
-	" {{{2 Edit -3
+" {{{2 Edit -3
 menutrans C&olor\ Scheme		Barevné\ s&chéma
 menutrans &Keymap			Klávesová\ m&apa
-menutrans Select\ Fo&nt\.\.\.		Vybrat\ pís&mo\.\.\.
+if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
+   menutrans Select\ Fo&nt\.\.\.		Vybrat\ pís&mo\.\.\.
+endif
 " }}}1
 
 " {{{ Programming menu
@@ -90,46 +107,52 @@ menutrans &Jump\ to\ this\ tag<Tab>g^]	&Skočit\ na\ tag<Tab>g^]
 menutrans Jump\ &back<Tab>^T		Skočit\ &zpět<Tab>^T
 menutrans Build\ &Tags\ File		&Vytvořit\ soubor\ tagů
 
-menutrans &Spelling			&Kontrola\ pravopisu
-menutrans &Spell\ Check\ On		Kontrola\ pravopisu\ &zapnuta
-menutrans Spell\ Check\ &Off		Kontrola\ pravopisu\ &vypnuta
-menutrans To\ Next\ error<Tab>]s	&Daląí\ chyba<Tab>]s
-menutrans To\ Previous\ error<Tab>[s	&Předchozí\ chyba<Tab>[s
-menutrans Suggest\ Corrections<Tab>z?	&Návrh\ oprav<Tab>z?
-menutrans Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"	Nastav\ jazyk\ na\ "en"
-menutrans Set\ language\ to\ "en_au"	Nastav\ jazyk\ na\ "en_au"
-menutrans Set\ language\ to\ "en_ca"	Nastav\ jazyk\ na\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"	Nastav\ jazyk\ na\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"	Nastav\ jazyk\ na\ "en_nz"
-menutrans Set\ language\ to\ "en_us"	Nastav\ jazyk\ na\ "en_us"
-menutrans Set\ language\ to\ "cz"	Nastav\ jazyk\ na\ "cz"
-menutrans Set\ language\ to\ "cs_cz"	Nastav\ jazyk\ na\ "cs_cz"
-menutrans &Find\ More\ Languages	Nalézt\ daląí\ &jazyky
+if has("spell")
+   menutrans &Spelling			&Kontrola\ pravopisu
+   menutrans &Spell\ Check\ On		&Zapnout\ kontrolu\ pravopisu
+   menutrans Spell\ Check\ &Off		&Vypnout \kontrolu\ pravopisu
+   menutrans To\ &Next\ error<Tab>]s	&Daląí\ chyba<Tab>]s
+   menutrans To\ &Previous\ error<Tab>[s	&Předchozí\ chyba<Tab>[s
+   menutrans Suggest\ &Corrections<Tab>z=	&Navrhnout\ opravy<Tab>z=
+   menutrans &Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
+   menutrans Set\ language\ to\ "en"	Nastavit\ jazyk\ na\ "en"
+   menutrans Set\ language\ to\ "en_au"	Nastavit\ jazyk\ na\ "en_au"
+   menutrans Set\ language\ to\ "en_ca"	Nastavit\ jazyk\ na\ "en_ca"
+   menutrans Set\ language\ to\ "en_gb"	Nastavit\ jazyk\ na\ "en_gb"
+   menutrans Set\ language\ to\ "en_nz"	Nastavit\ jazyk\ na\ "en_nz"
+   menutrans Set\ language\ to\ "en_us"	Nastavit\ jazyk\ na\ "en_us"
+   menutrans &Find\ More\ Languages	Nalézt\ daląí\ &jazyky
+   let g:menutrans_set_lang_to = "Nastavit jazyk na"
+endif
 
-menutrans &Folding			&Foldy
-menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv	&Zobrazit\ řádek\ kurzoru<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zo&brazit\ pouze\ řádek\ kurzoru\ <Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm	&Vyjmout\ jednu\ úroveň\ foldů<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM	Zavří&t\ vąechny\ foldy<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr	Přidat\ jedn&u\ úroveň\ foldů<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR	&Otevřít\ vąechny\ foldy<Tab>zR
-menutrans Fold\ Met&hod			Metoda\ &skládání
-	"menutrans M&anual			&Ručně
-	"menutrans I&ndent			&Odsazení
-	"menutrans E&xpression			&Výraz
-	"menutrans S&yntax			&Syntax
-	"menutrans &Diff			&Diff
-	"menutrans Ma&rker			Ma&rker
-menutrans Create\ &Fold<Tab>zf		Vytvořit\ &fold<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		Vymazat\ fol&d<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	V&ymazat\ vąechny\ foldy<Tab>zD
-menutrans Fold\ col&umn\ width		Sloupec\ zob&razení\ foldů
+if has("Folding")   
+   menutrans &Folding			&Skládání
+   menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
+   menutrans &View\ Cursor\ Line<Tab>zv	Zobrazit\ řádek\ &kurzoru<Tab>zv
+   menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zobrazit\ &pouze\ řádek\ kurzoru\ <Tab>zMzx
+   menutrans C&lose\ more\ folds<Tab>zm	Sloľit\ &jednu\ úroveň\ skladů<Tab>zm
+   menutrans &Close\ all\ folds<Tab>zM	Sloľit\ vąechny\ sklady<Tab>zM
+   menutrans O&pen\ more\ folds<Tab>zr	Přidat\ jednu\ úroveň\ skladů<Tab>zr
+   menutrans &Open\ all\ folds<Tab>zR	&Otevřít\ vąechny\ sklady<Tab>zR
+   menutrans Fold\ Met&hod			&Metoda\ skládání
+   menutrans M&anual			&Ručně
+   menutrans I&ndent			&Odsazení
+   menutrans E&xpression	&Výraz
+   menutrans S&yntax			&Syntaxe
+   menutrans &Diff			&Rozdíly
+   menutrans Ma&rker			&Značky
+   menutrans Create\ &Fold<Tab>zf		Vytvořit\ &sklad<Tab>zf
+   menutrans &Delete\ Fold<Tab>zd		Vymazat\ skla&d<Tab>zd
+   menutrans Delete\ &All\ Folds<Tab>zD	Vymazat\ vąechny\ sklady<Tab>zD
+   menutrans Fold\ col&umn\ width		Sloupec\ zob&razení\ skladů
+endif
 
-menutrans &Update			&Obnovit
-menutrans &Get\ Block			&Sejmout\ Blok
-menutrans &Put\ Block			&Vloľit\ Blok
+if has("diff")
+   menutrans &Update			&Obnovit
+   menutrans &Get\ Block			&Sejmout\ Blok
+   menutrans &Put\ Block			&Vloľit\ Blok
+endif
+
 menutrans &Make<Tab>:make		&Make<Tab>:make
 menutrans &List\ Errors<Tab>:cl		Výpis\ &chyb<Tab>:cl
 menutrans L&ist\ Messages<Tab>:cl!	Výp&is\ zpráv<Tab>:cl!
@@ -142,7 +165,7 @@ menutrans SeT\ Compiler			Nas&tavení\ kompilátoru
 menutrans &Update<Tab>:cwin		O&bnovit<Tab>:cwin
 menutrans &Open<Tab>:copen		&Otevřít<Tab>:copen
 menutrans &Close<Tab>:cclose		&Zavřít<Tab>:cclose
-menutrans &Set\ Compiler		N&astavit\ kompilátor
+menutrans Se&T\ Compiler		N&astavit\ kompilátor
 
 menutrans &Convert\ to\ HEX<Tab>:%!xxd	Převést\ do\ ąestnáctkového\ formát&u<Tab>:%!xxd
 menutrans Conve&rt\ back<Tab>:%!xxd\ -r Př&evést\ zpět<Tab>:%!xxd\ -r
@@ -170,7 +193,6 @@ menutrans &Delete		Z&ruąit
 menutrans &Alternate		&Změnit
 menutrans &Next			&Daląí
 menutrans &Previous		&Předchozí
-menutrans [No\ File]		[®ádný\ soubor]
 " }}}
 
 " {{{ Menu Window
@@ -221,6 +243,8 @@ menutrans &Paste		&Vloľit
 menutrans &Delete		&Smazat
 menutrans Select\ Blockwise	Vybrat\ blokově
 menutrans Select\ &Word		Vybrat\ &slovo
+menutrans Select\ Pa&ragraph Vybrat\ &odstavec
+menutrans Select\ &Sentence   Vybrat\ vě&tu
 menutrans Select\ &Line		Vybrat\ &řádek
 menutrans Select\ &Block	Vybrat\ &blok
 menutrans Select\ &All		Vybrat\ &vąe
@@ -228,42 +252,57 @@ menutrans Select\ &All		Vybrat\ &vąe
 
 " {{{ The GUI toolbar
 if has("toolbar")
-  if exists("*Do_toolbar_tmenu")
-    delfun Do_toolbar_tmenu
-  endif
-  fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		Otevřít soubor
-    tmenu ToolBar.Save		Uloľit soubor
-    tmenu ToolBar.SaveAll		Uloľit vąechny soubory
-    tmenu ToolBar.Print		Tisk
-    tmenu ToolBar.Undo		Zpět
-    tmenu ToolBar.Redo		Zruąit vrácení
-    tmenu ToolBar.Cut		Vyříznout
-    tmenu ToolBar.Copy		Kopírovat
-    tmenu ToolBar.Paste		Vloľit
-    tmenu ToolBar.Find		Hledat...
-    tmenu ToolBar.FindNext	Hledat daląí
-    tmenu ToolBar.FindPrev	Hledat předchozí
-    tmenu ToolBar.Replace		Nahradit...
-    if 0	" disabled; These are in the Windows menu
-      tmenu ToolBar.New		Nové okno
-      tmenu ToolBar.WinSplit	Rozdělit okno
-      tmenu ToolBar.WinMax		Maximalizovat okno
-      tmenu ToolBar.WinMin		Minimalizovat okno
-      tmenu ToolBar.WinClose	Zavřít okno
-    endif
-    tmenu ToolBar.LoadSesn	Načíst sezení
-    tmenu ToolBar.SaveSesn	Uloľit sezení
-    tmenu ToolBar.RunScript	Spustit skript
-    tmenu ToolBar.Make		Spustit make
-    tmenu ToolBar.Shell		Spustit shell
-    tmenu ToolBar.RunCtags	Spustit ctags
-    tmenu ToolBar.TagJump		Skočit na tag pod kurzorem
-    tmenu ToolBar.Help		Nápověda
-    tmenu ToolBar.FindHelp	Hledat nápovědu k...
-  endfun
+   if exists("*Do_toolbar_tmenu")
+      delfun Do_toolbar_tmenu
+   endif
+   fun Do_toolbar_tmenu()
+      tmenu ToolBar.Open		Otevřít soubor
+      tmenu ToolBar.Save		Uloľit soubor
+      tmenu ToolBar.SaveAll		Uloľit vąechny soubory
+      if has("printer") || has("unix")
+         tmenu ToolBar.Print		Tisk
+      endif
+      tmenu ToolBar.Undo		Zpět
+      tmenu ToolBar.Redo		Zruąit vrácení
+      tmenu ToolBar.Cut		Vyříznout
+      tmenu ToolBar.Copy		Kopírovat
+      tmenu ToolBar.Paste		Vloľit
+      tmenu ToolBar.Find		Hledat...
+      tmenu ToolBar.FindNext	Hledat daląí
+      tmenu ToolBar.FindPrev	Hledat předchozí
+      tmenu ToolBar.Replace		Nahradit...
+      if 0	" disabled; These are in the Windows menu
+         tmenu ToolBar.New		Nové okno
+         tmenu ToolBar.WinSplit	Rozdělit okno
+         tmenu ToolBar.WinMax		Maximalizovat okno
+         tmenu ToolBar.WinMin		Minimalizovat okno
+         tmenu ToolBar.WinClose	Zavřít okno
+      endif
+      tmenu ToolBar.LoadSesn	Načíst sezení
+      tmenu ToolBar.SaveSesn	Uloľit sezení
+      tmenu ToolBar.RunScript	Spustit skript
+      tmenu ToolBar.Make		Spustit make
+      tmenu ToolBar.Shell		Spustit shell
+      tmenu ToolBar.RunCtags	Spustit ctags
+      tmenu ToolBar.TagJump		Skočit na tag pod kurzorem
+      tmenu ToolBar.Help		Nápověda
+      tmenu ToolBar.FindHelp	Hledat nápovědu k...
+   endfun
 endif
 " }}}
 
+" {{{ DIALOG TEXTS
+let g:menutrans_no_file = "[®ádný soubor]"
+let g:menutrans_help_dialog = "Zadejte hledaný příkaz nebo slovo:\n\n\tPřidejte i_ pro příkazy vkládacího reľimu (např. i_CTRL-X)\n\tPřidejte c_ pro příkazy příkazové řádky (např. c_<Del>)\n\tPřidejte ' pro jméno volby (např. 'shiftwidth')"
+let g:menutrans_path_dialog = "Zadejte cesty pro vyhledávání souborů. Jednotlivé cesty oddělte čárkou"
+let g:menutrans_tags_dialog = "Zadejte jména souborů s tagy. Jména oddělte čárkami."
+let g:menutrans_textwidth_dialog = "Zadejte délku řádku (0 pro zakázání formátování):"
+let g:menutrans_fileformat_dialog = "Vyberte typ konce řádků"
+" }}}" 
+
 let &cpo = s:keepcpo
 unlet s:keepcpo
+
+
+
+" vim:set foldmethod=marker expandtab tabstop=3 shiftwidth=3:
--- a/runtime/lang/menu_cs_cz.latin1.vim
+++ b/runtime/lang/menu_cs_cz.latin1.vim
@@ -1,3 +1,3 @@
 " Menu Translations:	Czech
 
-source <sfile>:p:h/menu_czech_czech_republic.1252.vim
+source <sfile>:p:h/menu_czech_czech_republic.ascii.vim
new file mode 100644
--- /dev/null
+++ b/runtime/lang/menu_cs_cz.utf-8.vim
@@ -0,0 +1,308 @@
+" Menu Translations:    Czech (UTF-8)
+" Maintainer:           Jiri Sedlak <jiri_sedlak@users.sourceforge.net>
+" Previous maintainer:  Jiri Brezina
+" Based on:             menu.vim (2012-10-21)
+
+" Quit when menu translations have already been done.
+if exists("did_menu_trans")
+   finish
+endif
+
+let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
+
+scriptencoding utf-8
+
+" {{{ File menu
+menutrans &File				&Soubor
+menutrans &Open\.\.\.<Tab>:e		&Otevřít\.\.\.<Tab>:e
+menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otevřít\ v\ no&vém\ okně\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otevřít\ tab\.\.\.<Tab>:tabnew
+menutrans &New<Tab>:enew		&NovĂ˝<Tab>:enew
+menutrans &Close<Tab>:close		&Zavřít<Tab>:close
+menutrans &Save<Tab>:w			&UloĹľit<Tab>:w
+menutrans Save\ &As\.\.\.<Tab>:sav	UloĹľit\ &jako\.\.\.<Tab>:sav
+if has("printer") || has("unix")
+   menutrans &Print			&Tisk
+endif
+menutrans Sa&ve-Exit<Tab>:wqa		U&loĹľit\ a\ ukonÄŤit<Tab>:wqa
+menutrans E&xit<Tab>:qa			&UkonÄŤit<Tab>:qa
+
+if has("diff")
+   menutrans Split\ &Diff\ with\.\.\.	Rozdělit\ okno\ -\ &Diff\.\.\.
+   menutrans Split\ Patched\ &By\.\.\.	Rozdělit\ okno\ -\ &Patch\.\.\.
+endif
+" }}}
+
+" {{{ Edit menu
+menutrans &Edit				Ăšpr&avy
+menutrans &Undo<Tab>u			&Zpět<Tab>u
+menutrans &Redo<Tab>^R			Z&rušit\ vrácení<Tab>^R
+menutrans Rep&eat<Tab>\.		&Opakovat<Tab>\.
+menutrans Cu&t<Tab>"+x			&Vyříznout<Tab>"+x
+menutrans &Copy<Tab>"+y			&KopĂ­rovat<Tab>"+y
+menutrans &Paste<Tab>"+gP		V&loĹľit<Tab>"+gP
+menutrans Put\ &Before<Tab>[p		Vložit\ &před<Tab>[p
+menutrans Put\ &After<Tab>]p		VloĹľi&t\ za<Tab>]p
+if has("win32") || has("win16")
+   menutrans &Delete<Tab>x			&Smazat<Tab>x
+endif
+menutrans &Select\ All<Tab>ggVG		Vy&brat\ vše<Tab>ggVG
+if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
+   menutrans &Find\.\.\.			&Hledat\.\.\.
+   menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
+else
+   menutrans Find<Tab>/ &Hledat<Tab>/
+   menutrans Find\ and\ Rep&lace<Tab>:%s  &Nahradit<Tab>:%s
+   menutrans Find\ and\ Rep&lace<Tab>:s   &Nahradit<Tab>:s
+endif
+menutrans Settings\ &Window		Nastav&enĂ­\ okna
+" {{{2 Edit -1
+menutrans Startup\ &Settings  Počáteční\ &nastavení
+menutrans &Global\ Settings				&Globální\ nastavení
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Přepnout\ zvýraznění\ vzoru<Tab>:set\ hls!
+menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		PĹ™epnout\ ignorovánĂ­\ &VERZĂLEK<Tab>:set\ ic!
+menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Přepnout\ &Showmatch\ \{\(\[\])\}<Tab>:set\ sm!
+menutrans &Context\ lines				Zobrazit\ konte&xt\ kurzoru
+menutrans &Virtual\ Edit				Virtuální\ p&ozice\ kurzoru
+menutrans Never						Nikdy
+menutrans Block\ Selection				Výběr\ Bloku
+menutrans Insert\ mode					Insert\ mĂłd
+menutrans Block\ and\ Insert				Blok\ a\ Insert
+menutrans Always					VĹľdycky
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Přepnout\ Insert\ mó&d<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Přepnout\ kompatibilní\ režim\ s\ 'vi'<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\.				Nastavit\ &cestu\ k\ prohledávání\.\.\.
+menutrans Ta&g\ Files\.\.\.				Ta&g\ soubory\.\.\.
+menutrans Toggle\ &Toolbar				Přepnout\ &Toolbar
+menutrans Toggle\ &Bottom\ Scrollbar			Př&epnout\ dolní\ rolovací\ lištu
+menutrans Toggle\ &Left\ Scrollbar			Přepnout\ &levou\ rolovací\ lištu
+menutrans Toggle\ &Right\ Scrollbar			Přepnout\ p&ravou\ rolovací\ lištu
+" {{{2 Edit -2
+menutrans F&ile\ Settings				NastavenĂ­\ so&uboru
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Přepnout\ číslování\ řá&dků<Tab>:set\ nu!
+menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Přepnout\ relativní\ číslování\ řá&dků<Tab>:set\ rnu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Přepnout\ &List\ mód<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Přepnout\ zala&mování\ řádků<Tab>:set\ wrap!
+menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Přepnout\ zl&om\ ve\ slově<Tab>:set\ lbr!
+menutrans Toggle\ &expand-tab<Tab>:set\ et!		Přepnout\ &expand-tab<Tab>:set\ et!
+menutrans Toggle\ &auto-indent<Tab>:set\ ai!		Přepnout\ &auto-indent<Tab>:set\ ai!
+menutrans Toggle\ &C-indenting<Tab>:set\ cin!		Přepnout\ &C-indenting<Tab>:set\ cin!
+menutrans &Shiftwidth					Nastav&it\ šířku\ od&sazení
+menutrans Soft\ &Tabstop				Nastavit\ Soft\ &Tabstop
+menutrans Te&xt\ Width\.\.\.				Šířka\ te&xtu\.\.\.
+menutrans &File\ Format\.\.\.				&Formát\ souboru\.\.\.
+" {{{2 Edit -3
+menutrans C&olor\ Scheme		Barevné\ s&chéma
+menutrans &Keymap			Klávesová\ m&apa
+if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
+   menutrans Select\ Fo&nt\.\.\.		Vybrat\ pĂ­s&mo\.\.\.
+endif
+" }}}1
+
+" {{{ Programming menu
+menutrans &Tools			Nást&roje
+menutrans &Jump\ to\ this\ tag<Tab>g^]	&SkoÄŤit\ na\ tag<Tab>g^]
+menutrans Jump\ &back<Tab>^T		Skočit\ &zpět<Tab>^T
+menutrans Build\ &Tags\ File		&Vytvořit\ soubor\ tagů
+
+if has("spell")
+   menutrans &Spelling			&Kontrola\ pravopisu
+   menutrans &Spell\ Check\ On		&Zapnout\ kontrolu\ pravopisu
+   menutrans Spell\ Check\ &Off		&Vypnout \kontrolu\ pravopisu
+   menutrans To\ &Next\ error<Tab>]s	&Další\ chyba<Tab>]s
+   menutrans To\ &Previous\ error<Tab>[s	&Předchozí\ chyba<Tab>[s
+   menutrans Suggest\ &Corrections<Tab>z=	&Navrhnout\ opravy<Tab>z=
+   menutrans &Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
+   menutrans Set\ language\ to\ "en"	Nastavit\ jazyk\ na\ "en"
+   menutrans Set\ language\ to\ "en_au"	Nastavit\ jazyk\ na\ "en_au"
+   menutrans Set\ language\ to\ "en_ca"	Nastavit\ jazyk\ na\ "en_ca"
+   menutrans Set\ language\ to\ "en_gb"	Nastavit\ jazyk\ na\ "en_gb"
+   menutrans Set\ language\ to\ "en_nz"	Nastavit\ jazyk\ na\ "en_nz"
+   menutrans Set\ language\ to\ "en_us"	Nastavit\ jazyk\ na\ "en_us"
+   menutrans &Find\ More\ Languages	Nalézt\ další\ &jazyky
+   let g:menutrans_set_lang_to = "Nastavit jazyk na"
+endif
+
+if has("Folding")   
+   menutrans &Folding			&Skládání
+   menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
+   menutrans &View\ Cursor\ Line<Tab>zv	Zobrazit\ řádek\ &kurzoru<Tab>zv
+   menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zobrazit\ &pouze\ řádek\ kurzoru\ <Tab>zMzx
+   menutrans C&lose\ more\ folds<Tab>zm	SloĹľit\ &jednu\ ĂşroveĹ\ skladĹŻ<Tab>zm
+   menutrans &Close\ all\ folds<Tab>zM	Složit\ všechny\ sklady<Tab>zM
+   menutrans O&pen\ more\ folds<Tab>zr	PĹ™idat\ jednu\ ĂşroveĹ\ skladĹŻ<Tab>zr
+   menutrans &Open\ all\ folds<Tab>zR	&Otevřít\ všechny\ sklady<Tab>zR
+   menutrans Fold\ Met&hod			&Metoda\ skládání
+   menutrans M&anual			&RuÄŤnÄ›
+   menutrans I&ndent			&OdsazenĂ­
+   menutrans E&xpression	&Výraz
+   menutrans S&yntax			&Syntaxe
+   menutrans &Diff			&RozdĂ­ly
+   menutrans Ma&rker			&ZnaÄŤky
+   menutrans Create\ &Fold<Tab>zf		Vytvořit\ &sklad<Tab>zf
+   menutrans &Delete\ Fold<Tab>zd		Vymazat\ skla&d<Tab>zd
+   menutrans Delete\ &All\ Folds<Tab>zD	Vymazat\ všechny\ sklady<Tab>zD
+   menutrans Fold\ col&umn\ width		Sloupec\ zob&razenĂ­\ skladĹŻ
+endif
+
+if has("diff")
+   menutrans &Update			&Obnovit
+   menutrans &Get\ Block			&Sejmout\ Blok
+   menutrans &Put\ Block			&VloĹľit\ Blok
+endif
+
+menutrans &Make<Tab>:make		&Make<Tab>:make
+menutrans &List\ Errors<Tab>:cl		Výpis\ &chyb<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl!	Výp&is\ zpráv<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn		Další\ ch&yba<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp	&Předchozí\ chyba<Tab>:cp
+menutrans &Older\ List<Tab>:cold	Sta&rší\ seznam<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew	N&ovější\ seznam<Tab>:cnew
+menutrans Error\ &Window		Chybové\ o&kno
+menutrans SeT\ Compiler			Nas&tavení\ kompilátoru
+menutrans &Update<Tab>:cwin		O&bnovit<Tab>:cwin
+menutrans &Open<Tab>:copen		&Otevřít<Tab>:copen
+menutrans &Close<Tab>:cclose		&Zavřít<Tab>:cclose
+menutrans Se&T\ Compiler		N&astavit\ kompilátor
+
+menutrans &Convert\ to\ HEX<Tab>:%!xxd	Převést\ do\ šestnáctkového\ formát&u<Tab>:%!xxd
+menutrans Conve&rt\ back<Tab>:%!xxd\ -r Př&evést\ zpět<Tab>:%!xxd\ -r
+" }}}
+
+" {{{ Syntax menu
+menutrans &Syntax		Synta&xe
+menutrans Set\ '&syntax'\ only	Nastavit\ pouze\ 'synta&x'
+menutrans Set\ '&filetype'\ too	Nastavit\ také\ '&filetype'
+menutrans &Off			&Vypnout
+menutrans &Manual		&RuÄŤnÄ›
+menutrans A&utomatic		A&utomaticky
+menutrans on/off\ for\ &This\ file	&Přepnout\ (pro\ tento\ soubor)
+menutrans o&ff\ (this\ file)	vyp&nout\ (pro\ tento\ soubor)
+menutrans Co&lor\ test		Test\ &barev
+menutrans &Highlight\ test	&Test\ zvĂ˝razĹovánĂ­
+menutrans &Convert\ to\ HTML	Převést\ &do\ HTML
+menutrans &Show\ filetypes\ in\ menu	&Zobrazit\ výběr\ možností
+" }}}
+
+" {{{ Menu Buffers
+menutrans &Buffers		&Buffery
+menutrans &Refresh\ menu	&Obnovit\ menu
+menutrans &Delete		Z&rušit
+menutrans &Alternate		&Změnit
+menutrans &Next			&Další
+menutrans &Previous		&Předchozí
+" }}}
+
+" {{{ Menu Window
+menutrans &Window			&Okna
+menutrans &New<Tab>^Wn			&Nové<Tab>^Wn
+menutrans S&plit<Tab>^Ws		&Rozdělit<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^	Ro&zdělit\ na\ #<Tab>^W^^
+menutrans Split\ &Vertically<Tab>^Wv	Rozdělit\ &vertikálně<Tab>^Wv
+menutrans Split\ File\ E&xplorer	Rozdělit\ -\ File\ E&xplorer
+menutrans Move\ &To			&Přesun
+menutrans &Top<Tab>^WK			&Nahoru<Tab>^WK
+menutrans &Bottom<Tab>^WJ		&Dolu<Tab>^WJ
+menutrans &Left\ side<Tab>^WH		&Vlevo<Tab>^WH
+menutrans &Right\ side<Tab>^WL		Vp&ravo<Tab>^WL
+
+menutrans &Close<Tab>^Wc		Zavří&t<Tab>^Wc
+menutrans Close\ &Other(s)<Tab>^Wo	Zavřít\ &ostatní<Tab>^Wo
+menutrans Ne&xt<Tab>^Ww			&Další<Tab>^Ww
+menutrans P&revious<Tab>^WW		&Předchozí<Tab>^WW
+menutrans &Equal\ Size<Tab>^W=		&Stejná\ výška<Tab>^W=
+menutrans &Max\ Height<Tab>^W_		Maximální\ výš&ka<Tab>^W_
+menutrans M&in\ Height<Tab>^W1_		M&inimální\ výška<Tab>^W1_
+menutrans Max\ &Width<Tab>^W\|		&Maximální\ šířka<Tab>^W\|
+menutrans Min\ Widt&h<Tab>^W1\|		Minimální\ šířk&a<Tab>^W1\|
+menutrans Rotate\ &Up<Tab>^WR		Rotovat\ na&horu<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr		Rotovat\ &dolĹŻ<Tab>^Wr
+
+" {{{ Help menu
+menutrans &Help			&Nápověda
+menutrans &Overview<Tab><F1>	&Přehled<Tab><F1>
+menutrans &User\ Manual		&Uživatelský\ Manuál
+menutrans &How-to\ links	Ho&wto
+menutrans &GUI			&Grafické\ rozhraní
+menutrans &Credits		&Autoři
+menutrans Co&pying		&LicenÄŤnĂ­\ politika
+menutrans &Sponsor/Register	Sponzorování/&Registrace
+menutrans &Find\.\.\.		&Hledat\.\.\.
+menutrans O&rphans		O&siřelé\ děti
+menutrans &Version		&Verze
+menutrans &About		&O\ aplikaci
+" }}}
+
+" {{{ The popup menu
+menutrans &Undo			&Zpět
+menutrans Cu&t			&Vyříznout
+menutrans &Copy			&KopĂ­rovat
+menutrans &Paste		&VloĹľit
+menutrans &Delete		&Smazat
+menutrans Select\ Blockwise	Vybrat\ blokovÄ›
+menutrans Select\ &Word		Vybrat\ &slovo
+menutrans Select\ Pa&ragraph Vybrat\ &odstavec
+menutrans Select\ &Sentence   Vybrat\ vÄ›&tu
+menutrans Select\ &Line		Vybrat\ &řádek
+menutrans Select\ &Block	Vybrat\ &blok
+menutrans Select\ &All		Vybrat\ &vše
+" }}}
+
+" {{{ The GUI toolbar
+if has("toolbar")
+   if exists("*Do_toolbar_tmenu")
+      delfun Do_toolbar_tmenu
+   endif
+   fun Do_toolbar_tmenu()
+      tmenu ToolBar.Open		Otevřít soubor
+      tmenu ToolBar.Save		UloĹľit soubor
+      tmenu ToolBar.SaveAll		Uložit všechny soubory
+      if has("printer") || has("unix")
+         tmenu ToolBar.Print		Tisk
+      endif
+      tmenu ToolBar.Undo		Zpět
+      tmenu ToolBar.Redo		Zrušit vrácení
+      tmenu ToolBar.Cut		Vyříznout
+      tmenu ToolBar.Copy		KopĂ­rovat
+      tmenu ToolBar.Paste		VloĹľit
+      tmenu ToolBar.Find		Hledat...
+      tmenu ToolBar.FindNext	Hledat další
+      tmenu ToolBar.FindPrev	Hledat předchozí
+      tmenu ToolBar.Replace		Nahradit...
+      if 0	" disabled; These are in the Windows menu
+         tmenu ToolBar.New		Nové okno
+         tmenu ToolBar.WinSplit	Rozdělit okno
+         tmenu ToolBar.WinMax		Maximalizovat okno
+         tmenu ToolBar.WinMin		Minimalizovat okno
+         tmenu ToolBar.WinClose	Zavřít okno
+      endif
+      tmenu ToolBar.LoadSesn	NaÄŤĂ­st sezenĂ­
+      tmenu ToolBar.SaveSesn	UloĹľit sezenĂ­
+      tmenu ToolBar.RunScript	Spustit skript
+      tmenu ToolBar.Make		Spustit make
+      tmenu ToolBar.Shell		Spustit shell
+      tmenu ToolBar.RunCtags	Spustit ctags
+      tmenu ToolBar.TagJump		SkoÄŤit na tag pod kurzorem
+      tmenu ToolBar.Help		Nápověda
+      tmenu ToolBar.FindHelp	Hledat nápovědu k...
+   endfun
+endif
+" }}}
+
+" {{{ DIALOG TEXTS
+let g:menutrans_no_file = "[Žádný soubor]"
+let g:menutrans_help_dialog = "Zadejte hledaný příkaz nebo slovo:\n\n\tPřidejte i_ pro příkazy vkládacího režimu (např. i_CTRL-X)\n\tPřidejte c_ pro příkazy příkazové řádky (např. c_<Del>)\n\tPřidejte ' pro jméno volby (např. 'shiftwidth')"
+let g:menutrans_path_dialog = "Zadejte cesty pro vyhledávání souborů. Jednotlivé cesty oddělte čárkou"
+let g:menutrans_tags_dialog = "Zadejte jména souborů s tagy. Jména oddělte čárkami."
+let g:menutrans_textwidth_dialog = "Zadejte délku řádku (0 pro zakázání formátování):"
+let g:menutrans_fileformat_dialog = "Vyberte typ konce řádků"
+" }}}" 
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
+
+
+" vim:set foldmethod=marker expandtab tabstop=3 shiftwidth=3:
--- a/runtime/lang/menu_czech_czech_republic.1250.vim
+++ b/runtime/lang/menu_czech_czech_republic.1250.vim
@@ -1,13 +1,13 @@
-" Menu Translations:	Czech for MS-Windows
-" Maintainer:		Jiri Brezina <brzj@seznam.cz>
-" vim:set foldmethod=marker:
-" $Revision: 1.3 $
-" $Date: 2005/12/19 22:13:30 $
+" Menu Translations:    Czech (CP1250)
+" Maintainer:           Jiri Sedlak <jiri_sedlak@users.sourceforge.net>
+" Previous maintainer:  Jiri Brezina
+" Based on:             menu.vim (2012-10-21)
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
-  finish
+   finish
 endif
+
 let did_menu_trans = 1
 let s:keepcpo= &cpo
 set cpo&vim
@@ -18,15 +18,21 @@ scriptencoding cp1250
 menutrans &File				&Soubor
 menutrans &Open\.\.\.<Tab>:e		&Otevřít\.\.\.<Tab>:e
 menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otevřít\ v\ no&vém\ okně\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otevřít\ tab\.\.\.<Tab>:tabnew
 menutrans &New<Tab>:enew		&Nový<Tab>:enew
 menutrans &Close<Tab>:close		&Zavřít<Tab>:close
 menutrans &Save<Tab>:w			&Uložit<Tab>:w
 menutrans Save\ &As\.\.\.<Tab>:sav	Uložit\ &jako\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	Rozdělit\ okno\ -\ &Diff\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	Rozdělit\ okno\ -\ &Patch\.\.\.
-menutrans &Print			&Tisk
-menutrans Sa&ve-Exit<Tab>:wqa		U&ložit\ -\ Konec<Tab>:wqa
-menutrans E&xit<Tab>:qa			&Konec<Tab>:qa
+if has("printer") || has("unix")
+   menutrans &Print			&Tisk
+endif
+menutrans Sa&ve-Exit<Tab>:wqa		U&ložit\ a\ ukončit<Tab>:wqa
+menutrans E&xit<Tab>:qa			&Ukončit<Tab>:qa
+
+if has("diff")
+   menutrans Split\ &Diff\ with\.\.\.	Rozdělit\ okno\ -\ &Diff\.\.\.
+   menutrans Split\ Patched\ &By\.\.\.	Rozdělit\ okno\ -\ &Patch\.\.\.
+endif
 " }}}
 
 " {{{ Edit menu
@@ -39,24 +45,32 @@ menutrans &Copy<Tab>"+y			&Kopírovat<Tab>"+y
 menutrans &Paste<Tab>"+gP		V&ložit<Tab>"+gP
 menutrans Put\ &Before<Tab>[p		Vložit\ &před<Tab>[p
 menutrans Put\ &After<Tab>]p		Vloži&t\ za<Tab>]p
-menutrans &Delete<Tab>x			&Smazat<Tab>x
+if has("win32") || has("win16")
+   menutrans &Delete<Tab>x			&Smazat<Tab>x
+endif
 menutrans &Select\ All<Tab>ggVG		Vy&brat\ vše<Tab>ggVG
-menutrans &Find\.\.\.			&Hledat\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
-menutrans Options\.\.\.			Volb&y\.\.\.
+if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
+   menutrans &Find\.\.\.			&Hledat\.\.\.
+   menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
+else
+   menutrans Find<Tab>/ &Hledat<Tab>/
+   menutrans Find\ and\ Rep&lace<Tab>:%s  &Nahradit<Tab>:%s
+   menutrans Find\ and\ Rep&lace<Tab>:s   &Nahradit<Tab>:s
+endif
 menutrans Settings\ &Window		Nastav&ení\ okna
-	" {{{2 Edit -1
+" {{{2 Edit -1
+menutrans Startup\ &Settings  Počáteční\ &nastavení
 menutrans &Global\ Settings				&Globální\ nastavení
 menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Přepnout\ zvýraznění\ vzoru<Tab>:set\ hls!
 menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Přepnout\ ignorování\ &VERZÁLEK<Tab>:set\ ic!
 menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Přepnout\ &Showmatch\ \{\(\[\])\}<Tab>:set\ sm!
 menutrans &Context\ lines				Zobrazit\ konte&xt\ kurzoru
 menutrans &Virtual\ Edit				Virtuální\ p&ozice\ kurzoru
-	menutrans Never						Nikdy
-	menutrans Block\ Selection				Výběr\ Bloku
-	menutrans Insert\ mode					Insert\ mód
-	menutrans Block\ and\ Insert				Blok\ a\ Insert
-	menutrans Always					Vždycky
+menutrans Never						Nikdy
+menutrans Block\ Selection				Výběr\ Bloku
+menutrans Insert\ mode					Insert\ mód
+menutrans Block\ and\ Insert				Blok\ a\ Insert
+menutrans Always					Vždycky
 menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Přepnout\ Insert\ mó&d<Tab>:set\ im!
 menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Přepnout\ kompatibilní\ režim\ s\ 'vi'<Tab>:set\ cp!
 menutrans Search\ &Path\.\.\.				Nastavit\ &cestu\ k\ prohledávání\.\.\.
@@ -65,9 +79,10 @@ menutrans Toggle\ &Toolbar				Přepnout\ &Toolbar
 menutrans Toggle\ &Bottom\ Scrollbar			Př&epnout\ dolní\ rolovací\ lištu
 menutrans Toggle\ &Left\ Scrollbar			Přepnout\ &levou\ rolovací\ lištu
 menutrans Toggle\ &Right\ Scrollbar			Přepnout\ p&ravou\ rolovací\ lištu
-	" {{{2 Edit -2
+" {{{2 Edit -2
 menutrans F&ile\ Settings				Nastavení\ so&uboru
 menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Přepnout\ číslování\ řá&dků<Tab>:set\ nu!
+menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Přepnout\ relativní\ číslování\ řá&dků<Tab>:set\ rnu!
 menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Přepnout\ &List\ mód<Tab>:set\ list!
 menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Přepnout\ zala&mování\ řádků<Tab>:set\ wrap!
 menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Přepnout\ zl&om\ ve\ slově<Tab>:set\ lbr!
@@ -78,10 +93,12 @@ menutrans &Shiftwidth					Nastav&it\ šířku\ od&sazení
 menutrans Soft\ &Tabstop				Nastavit\ Soft\ &Tabstop
 menutrans Te&xt\ Width\.\.\.				Šířka\ te&xtu\.\.\.
 menutrans &File\ Format\.\.\.				&Formát\ souboru\.\.\.
-	" {{{2 Edit -3
+" {{{2 Edit -3
 menutrans C&olor\ Scheme		Barevné\ s&chéma
 menutrans &Keymap			Klávesová\ m&apa
-menutrans Select\ Fo&nt\.\.\.		Vybrat\ pís&mo\.\.\.
+if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
+   menutrans Select\ Fo&nt\.\.\.		Vybrat\ pís&mo\.\.\.
+endif
 " }}}1
 
 " {{{ Programming menu
@@ -90,46 +107,52 @@ menutrans &Jump\ to\ this\ tag<Tab>g^]	&Skočit\ na\ tag<Tab>g^]
 menutrans Jump\ &back<Tab>^T		Skočit\ &zpět<Tab>^T
 menutrans Build\ &Tags\ File		&Vytvořit\ soubor\ tagů
 
-menutrans &Spelling			&Kontrola\ pravopisu
-menutrans &Spell\ Check\ On		Kontrola\ pravopisu\ &zapnuta
-menutrans Spell\ Check\ &Off		Kontrola\ pravopisu\ &vypnuta
-menutrans To\ Next\ error<Tab>]s	&Další\ chyba<Tab>]s
-menutrans To\ Previous\ error<Tab>[s	&Předchozí\ chyba<Tab>[s
-menutrans Suggest\ Corrections<Tab>z?	&Návrh\ oprav<Tab>z?
-menutrans Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"	Nastav\ jazyk\ na\ "en"
-menutrans Set\ language\ to\ "en_au"	Nastav\ jazyk\ na\ "en_au"
-menutrans Set\ language\ to\ "en_ca"	Nastav\ jazyk\ na\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"	Nastav\ jazyk\ na\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"	Nastav\ jazyk\ na\ "en_nz"
-menutrans Set\ language\ to\ "en_us"	Nastav\ jazyk\ na\ "en_us"
-menutrans Set\ language\ to\ "cz"	Nastav\ jazyk\ na\ "cz"
-menutrans Set\ language\ to\ "cs_cz"	Nastav\ jazyk\ na\ "cs_cz"
-menutrans &Find\ More\ Languages	Nalézt\ další\ &jazyky
+if has("spell")
+   menutrans &Spelling			&Kontrola\ pravopisu
+   menutrans &Spell\ Check\ On		&Zapnout\ kontrolu\ pravopisu
+   menutrans Spell\ Check\ &Off		&Vypnout \kontrolu\ pravopisu
+   menutrans To\ &Next\ error<Tab>]s	&Další\ chyba<Tab>]s
+   menutrans To\ &Previous\ error<Tab>[s	&Předchozí\ chyba<Tab>[s
+   menutrans Suggest\ &Corrections<Tab>z=	&Navrhnout\ opravy<Tab>z=
+   menutrans &Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
+   menutrans Set\ language\ to\ "en"	Nastavit\ jazyk\ na\ "en"
+   menutrans Set\ language\ to\ "en_au"	Nastavit\ jazyk\ na\ "en_au"
+   menutrans Set\ language\ to\ "en_ca"	Nastavit\ jazyk\ na\ "en_ca"
+   menutrans Set\ language\ to\ "en_gb"	Nastavit\ jazyk\ na\ "en_gb"
+   menutrans Set\ language\ to\ "en_nz"	Nastavit\ jazyk\ na\ "en_nz"
+   menutrans Set\ language\ to\ "en_us"	Nastavit\ jazyk\ na\ "en_us"
+   menutrans &Find\ More\ Languages	Nalézt\ další\ &jazyky
+   let g:menutrans_set_lang_to = "Nastavit jazyk na"
+endif
 
-menutrans &Folding			&Foldy
-menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv	&Zobrazit\ řádek\ kurzoru<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zo&brazit\ pouze\ řádek\ kurzoru\ <Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm	&Vyjmout\ jednu\ úroveň\ foldů<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM	Zavří&t\ všechny\ foldy<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr	Přidat\ jedn&u\ úroveň\ foldů<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR	&Otevřít\ všechny\ foldy<Tab>zR
-menutrans Fold\ Met&hod			Metoda\ &skládání
-	"menutrans M&anual			&Ručně
-	"menutrans I&ndent			&Odsazení
-	"menutrans E&xpression			&Výraz
-	"menutrans S&yntax			&Syntax
-	"menutrans &Diff			&Diff
-	"menutrans Ma&rker			Ma&rker
-menutrans Create\ &Fold<Tab>zf		Vytvořit\ &fold<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		Vymazat\ fol&d<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	V&ymazat\ všechny\ foldy<Tab>zD
-menutrans Fold\ col&umn\ width		Sloupec\ zob&razení\ foldů
+if has("Folding")   
+   menutrans &Folding			&Skládání
+   menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
+   menutrans &View\ Cursor\ Line<Tab>zv	Zobrazit\ řádek\ &kurzoru<Tab>zv
+   menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zobrazit\ &pouze\ řádek\ kurzoru\ <Tab>zMzx
+   menutrans C&lose\ more\ folds<Tab>zm	Složit\ &jednu\ úroveň\ skladů<Tab>zm
+   menutrans &Close\ all\ folds<Tab>zM	Složit\ všechny\ sklady<Tab>zM
+   menutrans O&pen\ more\ folds<Tab>zr	Přidat\ jednu\ úroveň\ skladů<Tab>zr
+   menutrans &Open\ all\ folds<Tab>zR	&Otevřít\ všechny\ sklady<Tab>zR
+   menutrans Fold\ Met&hod			&Metoda\ skládání
+   menutrans M&anual			&Ručně
+   menutrans I&ndent			&Odsazení
+   menutrans E&xpression	&Výraz
+   menutrans S&yntax			&Syntaxe
+   menutrans &Diff			&Rozdíly
+   menutrans Ma&rker			&Značky
+   menutrans Create\ &Fold<Tab>zf		Vytvořit\ &sklad<Tab>zf
+   menutrans &Delete\ Fold<Tab>zd		Vymazat\ skla&d<Tab>zd
+   menutrans Delete\ &All\ Folds<Tab>zD	Vymazat\ všechny\ sklady<Tab>zD
+   menutrans Fold\ col&umn\ width		Sloupec\ zob&razení\ skladů
+endif
 
-menutrans &Update			&Obnovit
-menutrans &Get\ Block			&Sejmout\ Blok
-menutrans &Put\ Block			&Vložit\ Blok
+if has("diff")
+   menutrans &Update			&Obnovit
+   menutrans &Get\ Block			&Sejmout\ Blok
+   menutrans &Put\ Block			&Vložit\ Blok
+endif
+
 menutrans &Make<Tab>:make		&Make<Tab>:make
 menutrans &List\ Errors<Tab>:cl		Výpis\ &chyb<Tab>:cl
 menutrans L&ist\ Messages<Tab>:cl!	Výp&is\ zpráv<Tab>:cl!
@@ -142,7 +165,7 @@ menutrans SeT\ Compiler			Nas&tavení\ kompilátoru
 menutrans &Update<Tab>:cwin		O&bnovit<Tab>:cwin
 menutrans &Open<Tab>:copen		&Otevřít<Tab>:copen
 menutrans &Close<Tab>:cclose		&Zavřít<Tab>:cclose
-menutrans &Set\ Compiler		N&astavit\ kompilátor
+menutrans Se&T\ Compiler		N&astavit\ kompilátor
 
 menutrans &Convert\ to\ HEX<Tab>:%!xxd	Převést\ do\ šestnáctkového\ formát&u<Tab>:%!xxd
 menutrans Conve&rt\ back<Tab>:%!xxd\ -r Př&evést\ zpět<Tab>:%!xxd\ -r
@@ -170,7 +193,6 @@ menutrans &Delete		Z&rušit
 menutrans &Alternate		&Změnit
 menutrans &Next			&Další
 menutrans &Previous		&Předchozí
-menutrans [No\ File]		[Žádný\ soubor]
 " }}}
 
 " {{{ Menu Window
@@ -221,6 +243,8 @@ menutrans &Paste		&Vložit
 menutrans &Delete		&Smazat
 menutrans Select\ Blockwise	Vybrat\ blokově
 menutrans Select\ &Word		Vybrat\ &slovo
+menutrans Select\ Pa&ragraph Vybrat\ &odstavec
+menutrans Select\ &Sentence   Vybrat\ vě&tu
 menutrans Select\ &Line		Vybrat\ &řádek
 menutrans Select\ &Block	Vybrat\ &blok
 menutrans Select\ &All		Vybrat\ &vše
@@ -228,42 +252,57 @@ menutrans Select\ &All		Vybrat\ &vše
 
 " {{{ The GUI toolbar
 if has("toolbar")
-  if exists("*Do_toolbar_tmenu")
-    delfun Do_toolbar_tmenu
-  endif
-  fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		Otevřít soubor
-    tmenu ToolBar.Save		Uložit soubor
-    tmenu ToolBar.SaveAll		Uložit všechny soubory
-    tmenu ToolBar.Print		Tisk
-    tmenu ToolBar.Undo		Zpět
-    tmenu ToolBar.Redo		Zrušit vrácení
-    tmenu ToolBar.Cut		Vyříznout
-    tmenu ToolBar.Copy		Kopírovat
-    tmenu ToolBar.Paste		Vložit
-    tmenu ToolBar.Find		Hledat...
-    tmenu ToolBar.FindNext	Hledat další
-    tmenu ToolBar.FindPrev	Hledat předchozí
-    tmenu ToolBar.Replace		Nahradit...
-    if 0	" disabled; These are in the Windows menu
-      tmenu ToolBar.New		Nové okno
-      tmenu ToolBar.WinSplit	Rozdělit okno
-      tmenu ToolBar.WinMax		Maximalizovat okno
-      tmenu ToolBar.WinMin		Minimalizovat okno
-      tmenu ToolBar.WinClose	Zavřít okno
-    endif
-    tmenu ToolBar.LoadSesn	Načíst sezení
-    tmenu ToolBar.SaveSesn	Uložit sezení
-    tmenu ToolBar.RunScript	Spustit skript
-    tmenu ToolBar.Make		Spustit make
-    tmenu ToolBar.Shell		Spustit shell
-    tmenu ToolBar.RunCtags	Spustit ctags
-    tmenu ToolBar.TagJump		Skočit na tag pod kurzorem
-    tmenu ToolBar.Help		Nápověda
-    tmenu ToolBar.FindHelp	Hledat nápovědu k...
-  endfun
+   if exists("*Do_toolbar_tmenu")
+      delfun Do_toolbar_tmenu
+   endif
+   fun Do_toolbar_tmenu()
+      tmenu ToolBar.Open		Otevřít soubor
+      tmenu ToolBar.Save		Uložit soubor
+      tmenu ToolBar.SaveAll		Uložit všechny soubory
+      if has("printer") || has("unix")
+         tmenu ToolBar.Print		Tisk
+      endif
+      tmenu ToolBar.Undo		Zpět
+      tmenu ToolBar.Redo		Zrušit vrácení
+      tmenu ToolBar.Cut		Vyříznout
+      tmenu ToolBar.Copy		Kopírovat
+      tmenu ToolBar.Paste		Vložit
+      tmenu ToolBar.Find		Hledat...
+      tmenu ToolBar.FindNext	Hledat další
+      tmenu ToolBar.FindPrev	Hledat předchozí
+      tmenu ToolBar.Replace		Nahradit...
+      if 0	" disabled; These are in the Windows menu
+         tmenu ToolBar.New		Nové okno
+         tmenu ToolBar.WinSplit	Rozdělit okno
+         tmenu ToolBar.WinMax		Maximalizovat okno
+         tmenu ToolBar.WinMin		Minimalizovat okno
+         tmenu ToolBar.WinClose	Zavřít okno
+      endif
+      tmenu ToolBar.LoadSesn	Načíst sezení
+      tmenu ToolBar.SaveSesn	Uložit sezení
+      tmenu ToolBar.RunScript	Spustit skript
+      tmenu ToolBar.Make		Spustit make
+      tmenu ToolBar.Shell		Spustit shell
+      tmenu ToolBar.RunCtags	Spustit ctags
+      tmenu ToolBar.TagJump		Skočit na tag pod kurzorem
+      tmenu ToolBar.Help		Nápověda
+      tmenu ToolBar.FindHelp	Hledat nápovědu k...
+   endfun
 endif
 " }}}
 
+" {{{ DIALOG TEXTS
+let g:menutrans_no_file = "[Žádný soubor]"
+let g:menutrans_help_dialog = "Zadejte hledaný příkaz nebo slovo:\n\n\tPřidejte i_ pro příkazy vkládacího režimu (např. i_CTRL-X)\n\tPřidejte c_ pro příkazy příkazové řádky (např. c_<Del>)\n\tPřidejte ' pro jméno volby (např. 'shiftwidth')"
+let g:menutrans_path_dialog = "Zadejte cesty pro vyhledávání souborů. Jednotlivé cesty oddělte čárkou"
+let g:menutrans_tags_dialog = "Zadejte jména souborů s tagy. Jména oddělte čárkami."
+let g:menutrans_textwidth_dialog = "Zadejte délku řádku (0 pro zakázání formátování):"
+let g:menutrans_fileformat_dialog = "Vyberte typ konce řádků"
+" }}}" 
+
 let &cpo = s:keepcpo
 unlet s:keepcpo
+
+
+
+" vim:set foldmethod=marker expandtab tabstop=3 shiftwidth=3:
--- a/runtime/lang/menu_czech_czech_republic.ascii.vim
+++ b/runtime/lang/menu_czech_czech_republic.ascii.vim
@@ -1,30 +1,38 @@
-" Menu Translations:	Czech for systems without localization
-" Maintainer:		Jiri Brezina <brzj@seznam.cz>
-" vim:set foldmethod=marker:
-" $Revision: 1.3 $
-" $Date: 2005/12/19 22:06:56 $
+" Menu Translations:    Czech (latin1 - w/o diacritics)
+" Maintainer:           Jiri Sedlak <jiri_sedlak@users.sourceforge.net>
+" Previous maintainer:  Jiri Brezina
+" Based on:             menu.vim (2012-10-21)
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
-  finish
+   finish
 endif
+
 let did_menu_trans = 1
 let s:keepcpo= &cpo
 set cpo&vim
 
+scriptencoding latin1
+
 " {{{ File menu
 menutrans &File				&Soubor
 menutrans &Open\.\.\.<Tab>:e		&Otevrit\.\.\.<Tab>:e
 menutrans Sp&lit-Open\.\.\.<Tab>:sp	Otevrit\ v\ no&vem\ okne\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	Otevrit\ tab\.\.\.<Tab>:tabnew
 menutrans &New<Tab>:enew		&Novy<Tab>:enew
 menutrans &Close<Tab>:close		&Zavrit<Tab>:close
 menutrans &Save<Tab>:w			&Ulozit<Tab>:w
 menutrans Save\ &As\.\.\.<Tab>:sav	Ulozit\ &jako\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	Rozdelit\ okno\ -\ &Diff\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	Rozdelit\ okno\ -\ &Patch\.\.\.
-menutrans &Print			&Tisk
-menutrans Sa&ve-Exit<Tab>:wqa		U&lozit\ -\ Konec<Tab>:wqa
-menutrans E&xit<Tab>:qa			&Konec<Tab>:qa
+if has("printer") || has("unix")
+   menutrans &Print			&Tisk
+endif
+menutrans Sa&ve-Exit<Tab>:wqa		U&lozit\ a\ ukoncit<Tab>:wqa
+menutrans E&xit<Tab>:qa			&Ukoncit<Tab>:qa
+
+if has("diff")
+   menutrans Split\ &Diff\ with\.\.\.	Rozdelit\ okno\ -\ &Diff\.\.\.
+   menutrans Split\ Patched\ &By\.\.\.	Rozdelit\ okno\ -\ &Patch\.\.\.
+endif
 " }}}
 
 " {{{ Edit menu
@@ -37,24 +45,32 @@ menutrans &Copy<Tab>"+y			&Kopirovat<Tab
 menutrans &Paste<Tab>"+gP		V&lozit<Tab>"+gP
 menutrans Put\ &Before<Tab>[p		Vlozit\ &pred<Tab>[p
 menutrans Put\ &After<Tab>]p		Vlozi&t\ za<Tab>]p
-menutrans &Delete<Tab>x			&Smazat<Tab>x
+if has("win32") || has("win16")
+   menutrans &Delete<Tab>x			&Smazat<Tab>x
+endif
 menutrans &Select\ All<Tab>ggVG		Vy&brat\ vse<Tab>ggVG
-menutrans &Find\.\.\.			&Hledat\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
-menutrans Options\.\.\.			Volb&y\.\.\.
+if has("win32")  || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
+   menutrans &Find\.\.\.			&Hledat\.\.\.
+   menutrans Find\ and\ Rep&lace\.\.\.	&Nahradit\.\.\.
+else
+   menutrans Find<Tab>/ &Hledat<Tab>/
+   menutrans Find\ and\ Rep&lace<Tab>:%s  &Nahradit<Tab>:%s
+   menutrans Find\ and\ Rep&lace<Tab>:s   &Nahradit<Tab>:s
+endif
 menutrans Settings\ &Window		Nastav&eni\ okna
-	" {{{2 Edit -1
+" {{{2 Edit -1
+menutrans Startup\ &Settings  Pocatecni\ &nastaveni
 menutrans &Global\ Settings				&Globalni\ nastaveni
 menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	&Prepnout\ zvyrazneni\ vzoru<Tab>:set\ hls!
 menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		Prepnout\ ignorovani\ &VERZALEK<Tab>:set\ ic!
 menutrans Toggle\ &Showmatch<Tab>:set\ sm!		Prepnout\ &Showmatch\ \{\(\[\])\}<Tab>:set\ sm!
 menutrans &Context\ lines				Zobrazit\ konte&xt\ kurzoru
 menutrans &Virtual\ Edit				Virtualni\ p&ozice\ kurzoru
-	menutrans Never						Nikdy
-	menutrans Block\ Selection				Vyber\ Bloku
-	menutrans Insert\ mode					Insert\ mod
-	menutrans Block\ and\ Insert				Blok\ a\ Insert
-	menutrans Always					Vzdycky
+menutrans Never						Nikdy
+menutrans Block\ Selection				Vyber\ Bloku
+menutrans Insert\ mode					Insert\ mod
+menutrans Block\ and\ Insert				Blok\ a\ Insert
+menutrans Always					Vzdycky
 menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!		Prepnout\ Insert\ mo&d<Tab>:set\ im!
 menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!		Prepnout\ kompatibilni\ rezim\ s\ 'vi'<Tab>:set\ cp!
 menutrans Search\ &Path\.\.\.				Nastavit\ &cestu\ k\ prohledavani\.\.\.
@@ -63,9 +79,10 @@ menutrans Toggle\ &Toolbar				Prepnout\ 
 menutrans Toggle\ &Bottom\ Scrollbar			Pr&epnout\ dolni\ rolovaci\ listu
 menutrans Toggle\ &Left\ Scrollbar			Prepnout\ &levou\ rolovaci\ listu
 menutrans Toggle\ &Right\ Scrollbar			Prepnout\ p&ravou\ rolovaci\ listu
-	" {{{2 Edit -2
+" {{{2 Edit -2
 menutrans F&ile\ Settings				Nastaveni\ so&uboru
 menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	Prepnout\ cislovani\ ra&dku<Tab>:set\ nu!
+menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Prepnout\ relativni\ cislovani\ ra&dku<Tab>:set\ rnu!
 menutrans Toggle\ &List\ Mode<Tab>:set\ list!		Prepnout\ &List\ mod<Tab>:set\ list!
 menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		Prepnout\ zala&movani\ radku<Tab>:set\ wrap!
 menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	Prepnout\ zl&om\ ve\ slove<Tab>:set\ lbr!
@@ -76,10 +93,12 @@ menutrans &Shiftwidth					Nastav&it\ sir
 menutrans Soft\ &Tabstop				Nastavit\ Soft\ &Tabstop
 menutrans Te&xt\ Width\.\.\.				Sirka\ te&xtu\.\.\.
 menutrans &File\ Format\.\.\.				&Format\ souboru\.\.\.
-	" {{{2 Edit -3
+" {{{2 Edit -3
 menutrans C&olor\ Scheme		Barevne\ s&chema
 menutrans &Keymap			Klavesova\ m&apa
-menutrans Select\ Fo&nt\.\.\.		Vybrat\ pis&mo\.\.\.
+if has("win32") || has("win16") || has("gui_motif") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
+   menutrans Select\ Fo&nt\.\.\.		Vybrat\ pis&mo\.\.\.
+endif
 " }}}1
 
 " {{{ Programming menu
@@ -88,46 +107,52 @@ menutrans &Jump\ to\ this\ tag<Tab>g^]	&
 menutrans Jump\ &back<Tab>^T		Skocit\ &zpet<Tab>^T
 menutrans Build\ &Tags\ File		&Vytvorit\ soubor\ tagu
 
-menutrans &Spelling			&Kontrola\ pravopisu
-menutrans &Spell\ Check\ On		Kontrola\ pravopisu\ &zapnuta
-menutrans Spell\ Check\ &Off		Kontrola\ pravopisu\ &vypnuta
-menutrans To\ Next\ error<Tab>]s	&Dalsi\ chyba<Tab>]s
-menutrans To\ Previous\ error<Tab>[s	&Predchozi\ chyba<Tab>[s
-menutrans Suggest\ Corrections<Tab>z?	&Navrh\ oprav<Tab>z?
-menutrans Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"	Nastav\ jazyk\ na\ "en"
-menutrans Set\ language\ to\ "en_au"	Nastav\ jazyk\ na\ "en_au"
-menutrans Set\ language\ to\ "en_ca"	Nastav\ jazyk\ na\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"	Nastav\ jazyk\ na\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"	Nastav\ jazyk\ na\ "en_nz"
-menutrans Set\ language\ to\ "en_us"	Nastav\ jazyk\ na\ "en_us"
-menutrans Set\ language\ to\ "cz"	Nastav\ jazyk\ na\ "cz"
-menutrans Set\ language\ to\ "cs_cz"	Nastav\ jazyk\ na\ "cs_cz"
-menutrans &Find\ More\ Languages	Nalezt\ dalsi\ &jazyky
+if has("spell")
+   menutrans &Spelling			&Kontrola\ pravopisu
+   menutrans &Spell\ Check\ On		&Zapnout\ kontrolu\ pravopisu
+   menutrans Spell\ Check\ &Off		&Vypnout \kontrolu\ pravopisu
+   menutrans To\ &Next\ error<Tab>]s	&Dalsi\ chyba<Tab>]s
+   menutrans To\ &Previous\ error<Tab>[s	&Predchozi\ chyba<Tab>[s
+   menutrans Suggest\ &Corrections<Tab>z=	&Navrhnout\ opravy<Tab>z=
+   menutrans &Repeat\ correction<Tab>:spellrepall	Zopakovat\ &opravu<Tab>:spellrepall
+   menutrans Set\ language\ to\ "en"	Nastavit\ jazyk\ na\ "en"
+   menutrans Set\ language\ to\ "en_au"	Nastavit\ jazyk\ na\ "en_au"
+   menutrans Set\ language\ to\ "en_ca"	Nastavit\ jazyk\ na\ "en_ca"
+   menutrans Set\ language\ to\ "en_gb"	Nastavit\ jazyk\ na\ "en_gb"
+   menutrans Set\ language\ to\ "en_nz"	Nastavit\ jazyk\ na\ "en_nz"
+   menutrans Set\ language\ to\ "en_us"	Nastavit\ jazyk\ na\ "en_us"
+   menutrans &Find\ More\ Languages	Nalezt\ dalsi\ &jazyky
+   let g:menutrans_set_lang_to = "Nastavit jazyk na"
+endif
 
-menutrans &Folding			&Foldy
-menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv	&Zobrazit\ radek\ kurzoru<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zo&brazit\ pouze\ radek\ kurzoru\ <Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm	&Vyjmout\ jednu\ uroven\ foldu<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM	Zavri&t\ vsechny\ foldy<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr	Pridat\ jedn&u\ uroven\ foldu<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR	&Otevrit\ vsechny\ foldy<Tab>zR
-menutrans Fold\ Met&hod			Metoda\ &skladani
-	"menutrans M&anual			&Rucne
-	"menutrans I&ndent			&Odsazeni
-	"menutrans E&xpression			&Vyraz
-	"menutrans S&yntax			&Syntax
-	"menutrans &Diff			&Diff
-	"menutrans Ma&rker			Ma&rker
-menutrans Create\ &Fold<Tab>zf		Vytvorit\ &fold<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		Vymazat\ fol&d<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	V&ymazat\ vsechny\ foldy<Tab>zD
-menutrans Fold\ col&umn\ width		Sloupec\ zob&razeni\ foldu
+if has("Folding")   
+   menutrans &Folding			&Skladani
+   menutrans &Enable/Disable\ folds<Tab>zi &Ano/Ne<Tab>zi
+   menutrans &View\ Cursor\ Line<Tab>zv	Zobrazit\ radek\ &kurzoru<Tab>zv
+   menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx		Zobrazit\ &pouze\ radek\ kurzoru\ <Tab>zMzx
+   menutrans C&lose\ more\ folds<Tab>zm	Slozit\ &jednu\ uroven\ skladu<Tab>zm
+   menutrans &Close\ all\ folds<Tab>zM	Slozit\ vsechny\ sklady<Tab>zM
+   menutrans O&pen\ more\ folds<Tab>zr	Pridat\ jednu\ uroven\ skladu<Tab>zr
+   menutrans &Open\ all\ folds<Tab>zR	&Otevrit\ vsechny\ sklady<Tab>zR
+   menutrans Fold\ Met&hod			&Metoda\ skladani
+   menutrans M&anual			&Rucne
+   menutrans I&ndent			&Odsazeni
+   menutrans E&xpression	&Vyraz
+   menutrans S&yntax			&Syntaxe
+   menutrans &Diff			&Rozdily
+   menutrans Ma&rker			&Znacky
+   menutrans Create\ &Fold<Tab>zf		Vytvorit\ &sklad<Tab>zf
+   menutrans &Delete\ Fold<Tab>zd		Vymazat\ skla&d<Tab>zd
+   menutrans Delete\ &All\ Folds<Tab>zD	Vymazat\ vsechny\ sklady<Tab>zD
+   menutrans Fold\ col&umn\ width		Sloupec\ zob&razeni\ skladu
+endif
 
-menutrans &Update			&Obnovit
-menutrans &Get\ Block			&Sejmout\ Blok
-menutrans &Put\ Block			&Vlozit\ Blok
+if has("diff")
+   menutrans &Update			&Obnovit
+   menutrans &Get\ Block			&Sejmout\ Blok
+   menutrans &Put\ Block			&Vlozit\ Blok
+endif
+
 menutrans &Make<Tab>:make		&Make<Tab>:make
 menutrans &List\ Errors<Tab>:cl		Vypis\ &chyb<Tab>:cl
 menutrans L&ist\ Messages<Tab>:cl!	Vyp&is\ zprav<Tab>:cl!
@@ -140,7 +165,7 @@ menutrans SeT\ Compiler			Nas&taveni\ ko
 menutrans &Update<Tab>:cwin		O&bnovit<Tab>:cwin
 menutrans &Open<Tab>:copen		&Otevrit<Tab>:copen
 menutrans &Close<Tab>:cclose		&Zavrit<Tab>:cclose
-menutrans &Set\ Compiler		N&astavit\ kompilator
+menutrans Se&T\ Compiler		N&astavit\ kompilator
 
 menutrans &Convert\ to\ HEX<Tab>:%!xxd	Prevest\ do\ sestnactkoveho\ format&u<Tab>:%!xxd
 menutrans Conve&rt\ back<Tab>:%!xxd\ -r Pr&evest\ zpet<Tab>:%!xxd\ -r
@@ -168,7 +193,6 @@ menutrans &Delete		Z&rusit
 menutrans &Alternate		&Zmenit
 menutrans &Next			&Dalsi
 menutrans &Previous		&Predchozi
-menutrans [No\ File]		[Zadny\ soubor]
 " }}}
 
 " {{{ Menu Window
@@ -219,6 +243,8 @@ menutrans &Paste		&Vlozit
 menutrans &Delete		&Smazat
 menutrans Select\ Blockwise	Vybrat\ blokove
 menutrans Select\ &Word		Vybrat\ &slovo
+menutrans Select\ Pa&ragraph Vybrat\ &odstavec
+menutrans Select\ &Sentence   Vybrat\ ve&tu
 menutrans Select\ &Line		Vybrat\ &radek
 menutrans Select\ &Block	Vybrat\ &blok
 menutrans Select\ &All		Vybrat\ &vse
@@ -226,42 +252,57 @@ menutrans Select\ &All		Vybrat\ &vse
 
 " {{{ The GUI toolbar
 if has("toolbar")
-  if exists("*Do_toolbar_tmenu")
-    delfun Do_toolbar_tmenu
-  endif
-  fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		Otevrit soubor
-    tmenu ToolBar.Save		Ulozit soubor
-    tmenu ToolBar.SaveAll		Ulozit vsechny soubory
-    tmenu ToolBar.Print		Tisk
-    tmenu ToolBar.Undo		Zpet
-    tmenu ToolBar.Redo		Zrusit vraceni
-    tmenu ToolBar.Cut		Vyriznout
-    tmenu ToolBar.Copy		Kopirovat
-    tmenu ToolBar.Paste		Vlozit
-    tmenu ToolBar.Find		Hledat...
-    tmenu ToolBar.FindNext	Hledat dalsi
-    tmenu ToolBar.FindPrev	Hledat predchozi
-    tmenu ToolBar.Replace		Nahradit...
-    if 0	" disabled; These are in the Windows menu
-      tmenu ToolBar.New		Nove okno
-      tmenu ToolBar.WinSplit	Rozdelit okno
-      tmenu ToolBar.WinMax		Maximalizovat okno
-      tmenu ToolBar.WinMin		Minimalizovat okno
-      tmenu ToolBar.WinClose	Zavrit okno
-    endif
-    tmenu ToolBar.LoadSesn	Nacist sezeni
-    tmenu ToolBar.SaveSesn	Ulozit sezeni
-    tmenu ToolBar.RunScript	Spustit skript
-    tmenu ToolBar.Make		Spustit make
-    tmenu ToolBar.Shell		Spustit shell
-    tmenu ToolBar.RunCtags	Spustit ctags
-    tmenu ToolBar.TagJump		Skocit na tag pod kurzorem
-    tmenu ToolBar.Help		Napoveda
-    tmenu ToolBar.FindHelp	Hledat napovedu k...
-  endfun
+   if exists("*Do_toolbar_tmenu")
+      delfun Do_toolbar_tmenu
+   endif
+   fun Do_toolbar_tmenu()
+      tmenu ToolBar.Open		Otevrit soubor
+      tmenu ToolBar.Save		Ulozit soubor
+      tmenu ToolBar.SaveAll		Ulozit vsechny soubory
+      if has("printer") || has("unix")
+         tmenu ToolBar.Print		Tisk
+      endif
+      tmenu ToolBar.Undo		Zpet
+      tmenu ToolBar.Redo		Zrusit vraceni
+      tmenu ToolBar.Cut		Vyriznout
+      tmenu ToolBar.Copy		Kopirovat
+      tmenu ToolBar.Paste		Vlozit
+      tmenu ToolBar.Find		Hledat...
+      tmenu ToolBar.FindNext	Hledat dalsi
+      tmenu ToolBar.FindPrev	Hledat predchozi
+      tmenu ToolBar.Replace		Nahradit...
+      if 0	" disabled; These are in the Windows menu
+         tmenu ToolBar.New		Nove okno
+         tmenu ToolBar.WinSplit	Rozdelit okno
+         tmenu ToolBar.WinMax		Maximalizovat okno
+         tmenu ToolBar.WinMin		Minimalizovat okno
+         tmenu ToolBar.WinClose	Zavrit okno
+      endif
+      tmenu ToolBar.LoadSesn	Nacist sezeni
+      tmenu ToolBar.SaveSesn	Ulozit sezeni
+      tmenu ToolBar.RunScript	Spustit skript
+      tmenu ToolBar.Make		Spustit make
+      tmenu ToolBar.Shell		Spustit shell
+      tmenu ToolBar.RunCtags	Spustit ctags
+      tmenu ToolBar.TagJump		Skocit na tag pod kurzorem
+      tmenu ToolBar.Help		Napoveda
+      tmenu ToolBar.FindHelp	Hledat napovedu k...
+   endfun
 endif
 " }}}
 
+" {{{ DIALOG TEXTS
+let g:menutrans_no_file = "[Zadny soubor]"
+let g:menutrans_help_dialog = "Zadejte hledany prikaz nebo slovo:\n\n\tPridejte i_ pro prikazy vkladaciho rezimu (napr. i_CTRL-X)\n\tPridejte c_ pro prikazy prikazove radky (napr. c_<Del>)\n\tPridejte ' pro jmeno volby (napr. 'shiftwidth')"
+let g:menutrans_path_dialog = "Zadejte cesty pro vyhledavani souboru. Jednotlive cesty oddelte carkou"
+let g:menutrans_tags_dialog = "Zadejte jmena souboru s tagy. Jmena oddelte carkami."
+let g:menutrans_textwidth_dialog = "Zadejte delku radku (0 pro zakazani formatovani):"
+let g:menutrans_fileformat_dialog = "Vyberte typ konce radku"
+" }}}" 
+
 let &cpo = s:keepcpo
 unlet s:keepcpo
+
+
+
+" vim:set foldmethod=marker expandtab tabstop=3 shiftwidth=3: