summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2017-11-16 15:42:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2017-11-16 15:42:11 +0000
commitf5b4ab61c7c2267f6fd09ba5941c824edae5101d (patch)
treeb82cf428bdb5694cf6dfb86718f9dbfe0ebb681d
parentReleasing progress-linux version 2:8.0.1226-1~dschinn1. (diff)
downloadvim-f5b4ab61c7c2267f6fd09ba5941c824edae5101d.zip
vim-f5b4ab61c7c2267f6fd09ba5941c824edae5101d.tar.xz
Merging upstream version 2:8.0.1257.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--Filelist1
-rw-r--r--README.md2
-rw-r--r--nsis/gvim.nsi46
-rw-r--r--nsis/vimrc.ini68
-rw-r--r--runtime/autoload/ada.vim2
-rw-r--r--runtime/autoload/sqlcomplete.vim4
-rw-r--r--runtime/doc/autocmd.txt6
-rw-r--r--runtime/doc/cmdline.txt5
-rw-r--r--runtime/doc/diff.txt4
-rw-r--r--runtime/doc/eval.txt66
-rw-r--r--runtime/doc/filetype.txt9
-rw-r--r--runtime/doc/ft_rust.txt2
-rw-r--r--runtime/doc/gui.txt7
-rw-r--r--runtime/doc/gui_w32.txt36
-rw-r--r--runtime/doc/help.txt5
-rw-r--r--runtime/doc/message.txt5
-rw-r--r--runtime/doc/motion.txt2
-rw-r--r--runtime/doc/options.txt22
-rw-r--r--runtime/doc/os_mac.txt5
-rw-r--r--runtime/doc/os_win32.txt41
-rw-r--r--runtime/doc/quickref.txt4
-rw-r--r--runtime/doc/spell.txt4
-rw-r--r--runtime/doc/starting.txt7
-rw-r--r--runtime/doc/syntax.txt15
-rw-r--r--runtime/doc/tags14
-rw-r--r--runtime/doc/tagsrch.txt3
-rw-r--r--runtime/doc/term.txt3
-rw-r--r--runtime/doc/terminal.txt9
-rw-r--r--runtime/doc/todo.txt110
-rw-r--r--runtime/doc/usr_41.txt4
-rw-r--r--runtime/doc/version8.txt4
-rw-r--r--runtime/filetype.vim25
-rw-r--r--runtime/ftplugin/c.vim6
-rw-r--r--runtime/ftplugin/gdb.vim12
-rw-r--r--runtime/ftplugin/neomuttrc.vim23
-rw-r--r--runtime/ftplugin/python.vim35
-rw-r--r--runtime/indent/gitolite.vim10
-rw-r--r--runtime/indent/vhdl.vim17
-rw-r--r--runtime/mswin.vim19
-rw-r--r--runtime/optwin.vim8
-rw-r--r--runtime/pack/dist/opt/termdebug/plugin/termdebug.vim2
-rw-r--r--runtime/plugin/matchparen.vim22
-rw-r--r--runtime/scripts.vim2
-rw-r--r--runtime/synmenu.vim15
-rw-r--r--runtime/syntax/bib.vim9
-rw-r--r--runtime/syntax/gitolite.vim150
-rw-r--r--runtime/syntax/help.vim6
-rw-r--r--runtime/syntax/html.vim17
-rw-r--r--runtime/syntax/neomuttrc.vim1032
-rw-r--r--runtime/syntax/sshdconfig.vim5
-rw-r--r--runtime/tutor/tutor.pt4
-rw-r--r--runtime/tutor/tutor.pt.utf-84
-rw-r--r--src/Makefile19
-rwxr-xr-xsrc/auto/configure93
-rw-r--r--src/charset.c9
-rw-r--r--src/config.h.in1
-rw-r--r--src/configure.ac96
-rw-r--r--src/digraph.c4
-rw-r--r--src/dosinst.c44
-rw-r--r--src/edit.c4
-rw-r--r--src/eval.c106
-rw-r--r--src/evalfunc.c48
-rw-r--r--src/ex_docmd.c7
-rw-r--r--src/ex_getln.c26
-rw-r--r--src/feature.h8
-rw-r--r--src/fileio.c50
-rw-r--r--src/getchar.c11
-rw-r--r--src/globals.h6
-rw-r--r--src/gui.c39
-rw-r--r--src/gui_mac.c4
-rw-r--r--src/gui_w32.c19
-rw-r--r--src/if_python.c20
-rw-r--r--src/if_python3.c21
-rw-r--r--src/if_ruby.c14
-rw-r--r--src/keymap.h2
-rw-r--r--src/macros.h11
-rw-r--r--src/main.c15
-rw-r--r--src/mbyte.c26
-rw-r--r--src/message.c7
-rw-r--r--src/misc1.c11
-rw-r--r--src/misc2.c21
-rw-r--r--src/option.c18
-rw-r--r--src/os_mac.h90
-rw-r--r--src/os_macosx.m8
-rw-r--r--src/os_unix.c11
-rw-r--r--src/os_win32.c6
-rw-r--r--src/po/Make_cyg.mak4
-rw-r--r--src/po/Make_ming.mak29
-rw-r--r--src/po/Make_mvc.mak2
-rw-r--r--src/po/check.vim5
-rw-r--r--src/po/de.po41
-rw-r--r--src/po/eo.po188
-rw-r--r--src/po/fi.po780
-rw-r--r--src/po/fr.po192
-rw-r--r--src/proto.h4
-rw-r--r--src/proto/eval.pro3
-rw-r--r--src/proto/evalfunc.pro2
-rw-r--r--src/proto/os_win32.pro1
-rw-r--r--src/proto/search.pro2
-rw-r--r--src/pty.c8
-rw-r--r--src/regexp.c30
-rw-r--r--src/regexp_nfa.c4
-rw-r--r--src/screen.c6
-rw-r--r--src/search.c47
-rw-r--r--src/structs.h15
-rw-r--r--src/term.c4
-rw-r--r--src/terminal.c30
-rw-r--r--src/termlib.c2
-rw-r--r--src/testdir/Make_all.mak7
-rw-r--r--src/testdir/Make_amiga.mak1
-rw-r--r--src/testdir/Make_dos.mak1
-rw-r--r--src/testdir/Make_ming.mak1
-rw-r--r--src/testdir/Make_vms.mms19
-rw-r--r--src/testdir/main.aap6
-rw-r--r--src/testdir/shared.vim15
-rw-r--r--src/testdir/test12.in52
-rw-r--r--src/testdir/test12.ok10
-rw-r--r--src/testdir/test40.in63
-rw-r--r--src/testdir/test40.ok11
-rw-r--r--src/testdir/test45.in92
-rw-r--r--src/testdir/test45.ok23
-rw-r--r--src/testdir/test83.in76
-rw-r--r--src/testdir/test83.ok4
-rw-r--r--src/testdir/test_alot.vim1
-rw-r--r--src/testdir/test_autocmd.vim82
-rw-r--r--src/testdir/test_channel.vim46
-rw-r--r--src/testdir/test_clientserver.vim2
-rw-r--r--src/testdir/test_cmdline.vim21
-rw-r--r--src/testdir/test_fold.vim167
-rw-r--r--src/testdir/test_ins_complete.vim19
-rw-r--r--src/testdir/test_netbeans.vim6
-rw-r--r--src/testdir/test_normal.vim7
-rw-r--r--src/testdir/test_popup.vim10
-rw-r--r--src/testdir/test_scroll_opt.vim36
-rw-r--r--src/testdir/test_search.vim270
-rw-r--r--src/testdir/test_swap.vim48
-rw-r--r--src/testdir/test_tagjump.vim55
-rw-r--r--src/testdir/test_terminal.vim22
-rw-r--r--src/ui.c4
-rw-r--r--src/undo.c2
-rw-r--r--src/version.c79
-rw-r--r--src/vim.h49
-rw-r--r--src/window.c2
143 files changed, 3672 insertions, 1849 deletions
diff --git a/Filelist b/Filelist
index 8b3449c..56962c8 100644
--- a/Filelist
+++ b/Filelist
@@ -451,6 +451,7 @@ SRC_DOS = \
src/xxd/Make_mvc.mak \
nsis/gvim.nsi \
nsis/gvim_version.nsh \
+ nsis/vimrc.ini \
nsis/README.txt \
uninstal.txt \
src/VisVim/Commands.cpp \
diff --git a/README.md b/README.md
index 53795a7..41f0875 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,11 @@
`README.md` for version 8.0 of Vim: Vi IMproved.
+
[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
[![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master)
[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
[![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim)
+[![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim)
## What is Vim? ##
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index 8447d5f..4e9bbfb 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -83,6 +83,7 @@ SilentInstall normal
# These are the pages we use
Page license
Page components
+Page custom SetCustom ValidateCustom ": _vimrc setting"
Page directory "" "" CheckInstallDir
Page instfiles
UninstPage uninstConfirm
@@ -135,6 +136,10 @@ Function .onInit
StrCpy $1 "-register-OLE"
StrCpy $2 "gvim evim gview gvimdiff vimtutor"
+ # Extract InstallOptions files
+ # $PLUGINSDIR will automatically be removed when the installer closes
+ InitPluginsDir
+ File /oname=$PLUGINSDIR\vimrc.ini "vimrc.ini"
FunctionEnd
Function .onUserAbort
@@ -404,7 +409,7 @@ Section "Add an Edit-with-Vim context menu entry"
SectionEnd
##########################################################
-Section "Create a _vimrc if it doesn't exist"
+Section "Create a _vimrc if it doesn't exist" sec_vimrc_id
SectionIn 1 3
StrCpy $1 "$1 -create-vimrc"
@@ -463,6 +468,45 @@ Section -post
SectionEnd
##########################################################
+Function SetCustom
+ # Display the InstallOptions dialog
+
+ # Check if a _vimrc should be created
+ SectionGetFlags ${sec_vimrc_id} $0
+ IntOp $0 $0 & 1
+ StrCmp $0 "1" +2 0
+ Abort
+
+ Push $3
+ InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
+ Pop $3
+ Pop $3
+FunctionEnd
+
+Function ValidateCustom
+ ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 2" "State"
+ StrCmp $3 "1" 0 +3
+ StrCpy $1 "$1 -vimrc-remap no"
+ Goto behave
+
+ StrCpy $1 "$1 -vimrc-remap win"
+
+ behave:
+ ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 5" "State"
+ StrCmp $3 "1" 0 +3
+ StrCpy $1 "$1 -vimrc-behave unix"
+ Goto done
+
+ ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 6" "State"
+ StrCmp $3 "1" 0 +3
+ StrCpy $1 "$1 -vimrc-behave mswin"
+ Goto done
+
+ StrCpy $1 "$1 -vimrc-behave default"
+ done:
+FunctionEnd
+
+##########################################################
Section Uninstall
# Apparently $INSTDIR is set to the directory where the uninstaller is
# created. Thus the "vim61" directory is included in it.
diff --git a/nsis/vimrc.ini b/nsis/vimrc.ini
new file mode 100644
index 0000000..a3e9ecb
--- /dev/null
+++ b/nsis/vimrc.ini
@@ -0,0 +1,68 @@
+[Settings]
+NumFields=7
+
+[Field 1]
+Type=GroupBox
+Left=0
+Right=-1
+Top=0
+Bottom=53
+Text=" Key remapping "
+
+[Field 2]
+Type=radiobutton
+Text=Do not remap keys for Windows behavior (Default)
+Left=10
+Right=-10
+Top=17
+Bottom=25
+State=1
+Flags=GROUP
+
+[Field 3]
+Type=radiobutton
+Text=Remap a few keys for Windows behavior (<C-V>, <C-C>, <C-A>, <C-S>, <C-F>, etc)
+Left=10
+Right=-10
+Top=30
+Bottom=47
+State=0
+Flags=NOTABSTOP
+
+[Field 4]
+Type=GroupBox
+Left=0
+Right=-1
+Top=55
+Bottom=-5
+Text=" Mouse behavior "
+
+[Field 5]
+Type=radiobutton
+Text=Right button extends selection, left button starts visual mode (Unix)
+Left=10
+Right=-5
+Top=72
+Bottom=80
+State=0
+Flags=GROUP
+
+[Field 6]
+Type=radiobutton
+Text=Right button has a popup menu, left button starts select mode (Windows)
+Left=10
+Right=-5
+Top=85
+Bottom=93
+State=0
+Flags=NOTABSTOP
+
+[Field 7]
+Type=radiobutton
+Text=Right button has a popup menu, left button starts visual mode (Default)
+Left=10
+Right=-5
+Top=98
+Bottom=106
+State=1
+Flags=NOTABSTOP
diff --git a/runtime/autoload/ada.vim b/runtime/autoload/ada.vim
index ce3a193..d04feb9 100644
--- a/runtime/autoload/ada.vim
+++ b/runtime/autoload/ada.vim
@@ -591,7 +591,7 @@ function ada#Map_Menu (Text, Keys, Command)
\" :" . a:Command
execute
\ "inoremap <buffer>" .
- \ " <Learder>a" . a:Keys .
+ \ " <Leader>a" . a:Keys .
\" <C-O>:" . a:Command
endif
return
diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim
index f7e86a9..ef5ce2e 100644
--- a/runtime/autoload/sqlcomplete.vim
+++ b/runtime/autoload/sqlcomplete.vim
@@ -2,7 +2,7 @@
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 16.0
-" Last Change: 2015 Dec 29
+" Last Change: 2017 Oct 15
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
@@ -860,7 +860,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Start characterwise visual mode
" Advance right one character
- " Search foward until one of the following:
+ " Search forward until one of the following:
" 1. Another select/update/delete statement
" 2. A ; at the end of a line (the delimiter)
" 3. The end of the file (incase no delimiter)
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index da35c27..e1e96a7 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 8.0. Last change: 2017 Jul 14
+*autocmd.txt* For Vim version 8.0. Last change: 2017 Oct 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -501,6 +501,10 @@ CmdlineEnter After moving the cursor to the command line,
|cmdwin-char|
*CmdlineLeave*
CmdlineLeave Before leaving the command line.
+ Also when abandoning the command line, after
+ typing CTRL-C or <Esc>.
+ When the commands result in an error the
+ command line is still executed.
<afile> is set to a single character,
indicating the type of command-line.
|cmdwin-char|
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index a0e37b5..d87d4fe 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt* For Vim version 8.0. Last change: 2017 Sep 17
+*cmdline.txt* For Vim version 8.0. Last change: 2017 Oct 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -839,7 +839,8 @@ Note: these are typed literally, they are not special keys!
<cfile> is replaced with the path name under the cursor (like what
|gf| uses)
<afile> When executing autocommands, is replaced with the file name
- for a file read or write.
+ of the buffer being manipulated, or the file for a read or
+ write.
<abuf> When executing autocommands, is replaced with the currently
effective buffer number (for ":r file" and ":so file" it is
the current buffer, the file being read/sourced is not in a
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 1a7ca73..e6e225a 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt* For Vim version 8.0. Last change: 2017 Sep 26
+*diff.txt* For Vim version 8.0. Last change: 2017 Oct 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -326,7 +326,7 @@ g:diff_translations to zero: >
let g:diff_translations = 0
<
-After setting this variable, Reload the syntax script: >
+After setting this variable, reload the syntax script: >
set syntax=diff
<
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 759ad16..13396c6 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 8.0. Last change: 2017 Sep 17
+*eval.txt* For Vim version 8.0. Last change: 2017 Oct 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -120,9 +120,8 @@ To test for a non-empty string, use empty(): >
Function arguments often behave slightly different from |TRUE|: If the
argument is present and it evaluates to a non-zero Number, |v:true| or a
non-empty String, then the value is considered to be TRUE.
-Note that " " and "0" are also non-empty strings, thus cause the mode to be
-cleared. A List, Dictionary or Float is not a Number or String, thus
-evaluates to FALSE.
+Note that " " and "0" are also non-empty strings, thus considered to be TRUE.
+A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.
*E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913*
List, Dictionary, Funcref, Job and Channel types are not automatically
@@ -815,14 +814,15 @@ Examples:
"abc" == "Abc" evaluates to 1 if 'ignorecase' is set, 0 otherwise
*E691* *E692*
-A |List| can only be compared with a |List| and only "equal", "not equal" and
-"is" can be used. This compares the values of the list, recursively.
-Ignoring case means case is ignored when comparing item values.
+A |List| can only be compared with a |List| and only "equal", "not equal",
+"is" and "isnot" can be used. This compares the values of the list,
+recursively. Ignoring case means case is ignored when comparing item values.
*E735* *E736*
A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
-equal" and "is" can be used. This compares the key/values of the |Dictionary|
-recursively. Ignoring case means case is ignored when comparing item values.
+equal", "is" and "isnot" can be used. This compares the key/values of the
+|Dictionary| recursively. Ignoring case means case is ignored when comparing
+item values.
*E694*
A |Funcref| can only be compared with a |Funcref| and only "equal", "not
@@ -2321,7 +2321,7 @@ searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])
server2client({clientid}, {string})
Number send reply string
serverlist() String get a list of available servers
-setbufline( {expr}, {lnum}, {line})
+setbufline({expr}, {lnum}, {line})
Number set line {lnum} to {line} in buffer
{expr}
setbufvar({expr}, {varname}, {val})
@@ -2950,6 +2950,9 @@ ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
correct contents. Also does not add a newline for a channel
in NL mode, the caller must do that. The NL in the response
is removed.
+ Note that Vim does not know when the text received on a raw
+ channel is complete, it may only return the first part and you
+ need to use ch_readraw() to fetch the rest.
See |channel-use|.
{only available when compiled with the |+channel| feature}
@@ -6463,6 +6466,12 @@ remote_expr({server}, {string} [, {idvar} [, {timeout}]])
{only available when compiled with the |+clientserver| feature}
Note: Any errors will cause a local error message to be issued
and the result will be the empty string.
+
+ Variables will be evaluated in the global namespace,
+ independent of a function currently being activel. Except
+ when in debug mode, then local function variables and
+ arguments can be evaluated.
+
Examples: >
:echo remote_expr("gvim", "2+2")
:echo remote_expr("gvim1", "b:current_syntax")
@@ -6784,6 +6793,7 @@ searchpair({start}, {middle}, {end} [, {flags} [, {skip}
When {skip} is omitted or empty, every match is accepted.
When evaluating {skip} causes an error the search is aborted
and -1 returned.
+ {skip} can be a string, a lambda, a funcref or a partial.
For {stopline} and {timeout} see |search()|.
@@ -8153,6 +8163,11 @@ term_setsize({buf}, {expr}) *term_setsize()*
term_start({cmd}, {options}) *term_start()*
Open a terminal window and run {cmd} in it.
+ {cmd} can be a string or a List, like with |job_start()|. The
+ string "NONE" can be used to open a terminal window without
+ starting a job, the pty of the terminal can be used by a
+ command like gdb.
+
Returns the buffer number of the terminal window. If {cmd}
cannot be executed the window does open and shows an error
message.
@@ -8877,9 +8892,8 @@ listcmds Compiled with commands for the buffer list |:files|
and the argument list |arglist|.
localmap Compiled with local mappings and abbr. |:map-local|
lua Compiled with Lua interface |Lua|.
-mac Any Macintosh version of Vim, but not all OS X.
-macunix Compiled for OS X, with |mac-darwin-feature|
-osx Compiled for OS X, with or w/o |mac-darwin-feature|
+mac Any Macintosh version of Vim cf. osx
+macunix Synonym for osxdarwin
menu Compiled with support for |:menu|.
mksession Compiled with support for |:mksession|.
modify_fname Compiled with file name modifiers. |filename-modifiers|
@@ -8902,6 +8916,8 @@ netbeans_enabled Compiled with support for |netbeans| and connected.
netbeans_intg Compiled with support for |netbeans|.
num64 Compiled with 64-bit |Number| support.
ole Compiled with OLE automation support for Win32.
+osx Compiled for macOS cf. mac
+osxdarwin Compiled for macOS, with |mac-darwin-feature|
packages Compiled with |packages| support.
path_extra Compiled with up/downwards search in 'path' and 'tags'
perl Compiled with Perl interface.
@@ -9053,13 +9069,16 @@ See |:verbose-cmd| for more information.
*E124* *E125* *E853* *E884*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
- Define a new function by the name {name}. The name
- must be made of alphanumeric characters and '_', and
- must start with a capital or "s:" (see above). Note
- that using "b:" or "g:" is not allowed. (since patch
- 7.4.260 E884 is given if the function name has a colon
- in the name, e.g. for "foo:bar()". Before that patch
- no error was given).
+ Define a new function by the name {name}. The body of
+ the function follows in the next lines, until the
+ matching |:endfunction|.
+
+ The name must be made of alphanumeric characters and
+ '_', and must start with a capital or "s:" (see
+ above). Note that using "b:" or "g:" is not allowed.
+ (since patch 7.4.260 E884 is given if the function
+ name has a colon in the name, e.g. for "foo:bar()".
+ Before that patch no error was given).
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
@@ -9195,9 +9214,10 @@ to the number of named arguments. When using "...", the number of arguments
may be larger.
It is also possible to define a function without any arguments. You must
-still supply the () then. The body of the function follows in the next lines,
-until the matching |:endfunction|. It is allowed to define another function
-inside a function body.
+still supply the () then.
+
+It is allowed to define another function inside a function
+body.
*local-variables*
Inside a function local variables can be used. These will disappear when the
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 795b259..4b47a39 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt* For Vim version 8.0. Last change: 2017 Mar 28
+*filetype.txt* For Vim version 8.0. Last change: 2017 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -43,7 +43,7 @@ Detail: The ":filetype on" command will load one of these files:
BufNewFile and BufRead events. If the file type is not found by the
name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
contents of the file.
- When the GUI is running or will start soon, the menu.vim script is
+ When the GUI is running or will start soon, the |menu.vim| script is
also sourced. See |'go-M'| about avoiding that.
To add your own file types, see |new-filetype| below. To search for help on a
@@ -607,6 +607,7 @@ Works on:
- Linux
- Mac OS
- FreeBSD
+ - OpenBSD
- Cygwin
- Win 10 under Bash
@@ -620,6 +621,10 @@ For bash,zsh,ksh or dash by adding to the config file (.bashrc,.zshrc, ...)
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER -"
+On OpenBSD:
+
+ export MANPAGER="env MAN_PN=1 vim -M +MANPAGER"
+
For (t)csh by adding to the config file
setenv MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
diff --git a/runtime/doc/ft_rust.txt b/runtime/doc/ft_rust.txt
index 71e3027..750ba76 100644
--- a/runtime/doc/ft_rust.txt
+++ b/runtime/doc/ft_rust.txt
@@ -199,7 +199,7 @@ COMMANDS *rust-commands*
|g:rust_playpen_url| is the base URL to the playpen, by default
"https://play.rust-lang.org/".
- |g:rust_shortener_url| is the base URL for the shorterner, by
+ |g:rust_shortener_url| is the base URL for the shortener, by
default "https://is.gd/"
:RustFmt *:RustFmt*
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index df02c5c..ab9d4b7 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -482,6 +482,7 @@ menus and menu items. They are most useful for things that you can't remember
what the key sequence was.
For creating menus in a different language, see |:menutrans|.
+If you don't want to use menus at all, see |'go-M'|.
*menu.vim*
The default menus are read from the file "$VIMRUNTIME/menu.vim". See
@@ -498,7 +499,11 @@ in the menu (which can take a bit of time to load). If you want to have all
filetypes already present at startup, add: >
:let do_syntax_sel_menu = 1
-<
+Note that the menu.vim is sourced when `:syntax on` or `:filetype on` is
+executed or after your .vimrc file is sourced. This means that the 'encoding'
+option and the language of messages (`:language messages`) must be set before
+that (if you want to change them).
+
*console-menus*
Although this documentation is in the GUI section, you can actually use menus
in console mode too. You will have to load |menu.vim| explicitly then, it is
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index ec69442..d8052fe 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt* For Vim version 8.0. Last change: 2014 Dec 20
+*gui_w32.txt* For Vim version 8.0. Last change: 2017 Oct 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -382,38 +382,8 @@ Note that a menu that starts with ']' will not be displayed.
==============================================================================
7. Command line arguments *gui-w32-cmdargs*
-Analysis of a command line into parameters is not standardised in MS Windows.
-Gvim has to provide logic to analyse a command line. This logic is likely to
-be different from the default logic provided by a compilation system used to
-build vim. The differences relate to unusual double quote (") usage.
-The arguments "C:\My Music\freude.txt" and "+/Sch\"iller" are handled in the
-same way. The argument "+/Sch""iller" may be handled different by gvim and
-vim, depending what it was compiled with.
-
-The rules are:
- a) A parameter is a sequence of graphic characters.
- b) Parameters are separated by white space.
- c) A parameter can be enclosed in double quotes to include white space.
- d) A sequence of zero or more backslashes (\) and a double quote (")
- is special. The effective number of backslashes is halved, rounded
- down. An even number of backslashes reverses the acceptability of
- spaces and tabs, an odd number of backslashes produces a literal
- double quote.
-
-So:
- " is a special double quote
- \" is a literal double quote
- \\" is a literal backslash and a special double quote
- \\\" is a literal backslash and a literal double quote
- \\\\" is 2 literal backslashes and a special double quote
- \\\\\" is 2 literal backslashes and a literal double quote
- etc.
-
-Example: >
- gvim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
-
-opens "C:\My Music\freude" and executes the line mode commands: >
- set ignorecase; /"foo\ and /bar\"
+Command line arguments behave the same way as with the console application,
+see |win32-cmdargs|.
==============================================================================
8. Various *gui-w32-various*
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 2be3ced..527b8f7 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt* For Vim version 8.0. Last change: 2016 Sep 12
+*help.txt* For Vim version 8.0. Last change: 2017 Oct 28
VIM - main help file
k
@@ -142,6 +142,7 @@ Special issues ~
|print.txt| printing
|remote.txt| using Vim as a server or client
|term.txt| using different terminals and mice
+|terminal.txt| Terminal window support
|digraph.txt| list of available digraphs
|mbyte.txt| multi-byte text support
|mlang.txt| non-English language support
@@ -150,6 +151,7 @@ Special issues ~
|hebrew.txt| Hebrew language support and editing
|russian.txt| Russian language support and editing
|ft_ada.txt| Ada (the programming language) support
+|ft_rust.txt| Filetype plugin for Rust
|ft_sql.txt| about the SQL filetype plugin
|hangulin.txt| Hangul (Korean) input mode
|rileft.txt| right-to-left editing mode
@@ -202,6 +204,7 @@ Standard plugins ~
|pi_logipat.txt| Logical operators on patterns
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
+|pi_spec.txt| Filetype plugin to work with rpm spec files
|pi_tar.txt| Tar file explorer
|pi_vimball.txt| Create a self-installing Vim script
|pi_zip.txt| Zip archive explorer
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index dbc4280..ed7aea2 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt* For Vim version 8.0. Last change: 2017 Mar 25
+*message.txt* For Vim version 8.0. Last change: 2017 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -639,6 +639,9 @@ starts. It can be fixed in one of these ways:
- Just write the file again the next day. Or set your clock to the next day,
write the file twice and set the clock back.
+If you get W11 all the time, you may need to disable "Acronis Active
+Protection" or register vim as a trusted service/application.
+
*W12* >
Warning: File "{filename}" has changed and the buffer was changed in Vim as well
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 85d0c4a..329b099 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt* For Vim version 8.0. Last change: 2017 Mar 12
+*motion.txt* For Vim version 8.0. Last change: 2017 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index ebe9c92..2027a4b 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 8.0. Last change: 2017 Sep 24
+*options.txt* For Vim version 8.0. Last change: 2017 Nov 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -886,7 +886,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'background' is not dark/light, 'background' will be set and the
screen is redrawn. This may have side effects, make t_BG empty in
your .vimrc if you suspect this problem. The response to |t_RB| can
- be found in |v:termrgbresp|.
+ be found in |v:termrbgresp|.
When starting the GUI, the default value for 'background' will be
"light". When the value is not set in the .gvimrc, and Vim detects
@@ -3895,7 +3895,7 @@ A jump table for the options with a short description can be found at |Q_op|.
that this flag must be added in the .vimrc file, before
switching on syntax or filetype recognition (when the |gvimrc|
file is sourced the system menu has already been loaded; the
- ":syntax on" and ":filetype on" commands load the menu too).
+ `:syntax on` and `:filetype on` commands load the menu too).
*'go-g'*
'g' Grey menu items: Make menu items that are not active grey. If
'g' is not included inactive menu items are not shown at all.
@@ -4447,7 +4447,17 @@ A jump table for the options with a short description can be found at |Q_op|.
match may not be found. This is to avoid that Vim hangs while you
are typing the pattern.
The highlighting can be set with the 'i' flag in 'highlight'.
- See also: 'hlsearch'.
+ When 'hlsearch' is on, all matched strings are highlighted too while typing
+ a search command. See also: 'hlsearch'.
+ If you don't want turn 'hlsearch' on, but want to highlight all matches
+ while searching, you can turn on and off 'hlsearch' with autocmd.
+ Example: >
+ augroup vimrc-incsearch-highlight
+ autocmd!
+ autocmd CmdlineEnter /,\? :set hlsearch
+ autocmd CmdlineLeave /,\? :set nohlsearch
+ augroup END
+<
CTRL-L can be used to add one character from after the current match
to the command line. If 'ignorecase' and 'smartcase' are set and the
command line has no uppercase characters, the added character is
@@ -5117,7 +5127,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:au FileType c,cpp,java set mps+==:;
< For a more advanced way of using "%", see the matchit.vim plugin in
- the $VIMRUNTIME/macros directory. |add-local-help|
+ the $VIMRUNTIME/pack/dist/opt/matchit directory. |add-local-help|
*'matchtime'* *'mat'*
'matchtime' 'mat' number (default 5)
@@ -5477,6 +5487,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Specifies the name of the MzScheme shared library. The default is
DYNAMIC_MZSCH_DLL which was specified at compile time.
Environment variables are expanded |:set_env|.
+ The value must be set in the |vimrc| script or ealier. In the
+ startup, before the |load-plugins| step.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt
index cff87de..2a2b07a 100644
--- a/runtime/doc/os_mac.txt
+++ b/runtime/doc/os_mac.txt
@@ -164,8 +164,9 @@ If you want to disable it, pass `--disable-darwin` to the configure script: >
and then run `make` to build Vim. The order of the options doesn't matter.
To make sure at runtime whether or not the darwin feature is compiled in, you
-can use `has('macunix')` which returns 1 if the feature is compiled in; 0
-otherwise.
+can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
+otherwise. For backwards comptibility, you can still use `macunix` instead of
+`osxdarwin`.
Notable use cases where `--disable-darwin` is turned out to be useful are:
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index 9112dac..bb1dbdc 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -81,10 +81,45 @@ The directory of the Vim executable is appended to $PATH. This is mostly to
make "!xxd" work, as it is in the Tools menu. And it also means that when
executable() returns 1 the executable can actually be executed.
-Quotes in file names *win32-quotes*
+Command line arguments *win32-cmdargs*
+
+Analysis of a command line into parameters is not standardised in MS Windows.
+Vim and gvim used to use different logic to parse it (before 7.4.432), and the
+logic was also depended on what it was compiled with. Now Vim and gvim both
+use the CommandLineToArgvW() Win32 API, so they behave in the same way.
+
+The basic rules are: *win32-backslashes*
+ a) A parameter is a sequence of graphic characters.
+ b) Parameters are separated by white space.
+ c) A parameter can be enclosed in double quotes to include white space.
+ d) A sequence of zero or more backslashes (\) and a double quote (")
+ is special. The effective number of backslashes is halved, rounded
+ down. An even number of backslashes reverses the acceptability of
+ spaces and tabs, an odd number of backslashes produces a literal
+ double quote.
+
+So:
+ " is a special double quote
+ \" is a literal double quote
+ \\" is a literal backslash and a special double quote
+ \\\" is a literal backslash and a literal double quote
+ \\\\" is 2 literal backslashes and a special double quote
+ \\\\\" is 2 literal backslashes and a literal double quote
+ etc.
-Quotes inside a file name (or any other command line argument) can be escaped
-with a backslash. E.g. >
+Example: >
+ vim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
+
+opens "C:\My Music\freude" and executes the line mode commands: >
+ set ignorecase; /"foo\ and /bar\"
+
+These rules are also described in the reference of the CommandLineToArgvW API:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391.aspx
+
+ *win32-quotes*
+There are additional rules for quotes (which are not well documented).
+As described above, quotes inside a file name (or any other command line
+argument) can be escaped with a backslash. E.g. >
vim -c "echo 'foo\"bar'"
Alternatively use three quotes to get one: >
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index c4d6790..c900ff5 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt* For Vim version 8.0. Last change: 2017 Sep 10
+*quickref.txt* For Vim version 8.0. Last change: 2017 Oct 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -780,6 +780,8 @@ Short explanation of each option: *option-list*
'listchars' 'lcs' characters for displaying in list mode
'loadplugins' 'lpl' load plugin scripts when starting up
'luadll' name of the Lua dynamic library
+'mzschemedll' name of the MzScheme dynamic library
+'mzschemegcdll' name of the MzScheme dynamic library for GC
'macatsui' Mac GUI: use ATSUI text drawing
'magic' changes special characters in search patterns
'makeef' 'mef' name of the errorfile for ":make"
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 9b62fda..aacfe53 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt* For Vim version 8.0. Last change: 2016 Jan 08
+*spell.txt* For Vim version 8.0. Last change: 2017 Oct 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -723,7 +723,7 @@ Additionally the following items are recognized:
= Case must match exactly.
? Rare word.
! Bad (wrong) word.
- digit A region in which the word is valid. If no regions are
+ 1 to 9 A region in which the word is valid. If no regions are
specified the word is valid in all regions.
Example:
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 0ea6ea2..f289c83 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt* For Vim version 8.0. Last change: 2017 Jul 15
+*starting.txt* For Vim version 8.0. Last change: 2017 Oct 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -873,6 +873,9 @@ accordingly. Vim proceeds in this order:
(*) Using this file or environment variable will cause 'compatible' to be
off by default. See |compatible-default|.
+ Note: When using the |mzscheme| interface, it is initialzed after loading
+ the vimrc file. Changing 'mzschemedll' later has no effect.
+
4. Load the plugin scripts. *load-plugins*
This does the same as the command: >
:runtime! plugin/**/*.vim
@@ -1044,7 +1047,7 @@ details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
patch 7.4.2111 to be exact).
This should work well for new Vim users. If you create your own .vimrc, it is
-recommended to add this line somewhere near the top: >
+recommended to add these lines somewhere near the top: >
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
Then Vim works like before you had a .vimrc. Copying $VIMRUNTIME/vimrc_example
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 8f887c4..248bace 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 8.0. Last change: 2017 Aug 12
+*syntax.txt* For Vim version 8.0. Last change: 2017 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -61,10 +61,12 @@ fine. If it doesn't, try setting the VIM environment variable to the
directory where the Vim stuff is located. For example, if your syntax files
are in the "/usr/vim/vim50/syntax" directory, set $VIMRUNTIME to
"/usr/vim/vim50". You must do this in the shell, before starting Vim.
+This command also sources the |menu.vim| script when the GUI is running or
+will start soon. See |'go-M'| about avoiding that.
*:syn-on* *:syntax-on*
-The ":syntax enable" command will keep your current color settings. This
-allows using ":highlight" commands to set your preferred colors before or
+The `:syntax enable` command will keep your current color settings. This
+allows using `:highlight` commands to set your preferred colors before or
after using this command. If you want Vim to overrule your settings with the
defaults, use: >
:syntax on
@@ -810,12 +812,9 @@ See |mysyntaxfile-add| for installing script languages permanently.
APACHE *apache.vim* *ft-apache-syntax*
-The apache syntax file provides syntax highlighting depending on Apache HTTP
-server version, by default for 1.3.x. Set "apache_version" to Apache version
-(as a string) to get highlighting for another version. Example: >
+The apache syntax file provides syntax highlighting for Apache HTTP server
+version 2.2.3.
- :let apache_version = "2.0"
-<
*asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k*
ASSEMBLY *ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 1099b81..e167f39 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -477,6 +477,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'msm' options.txt /*'msm'*
'mzq' options.txt /*'mzq'*
'mzquantum' options.txt /*'mzquantum'*
+'mzschemedll' options.txt /*'mzschemedll'*
+'mzschemegcdll' options.txt /*'mzschemegcdll'*
'nf' options.txt /*'nf'*
'noacd' options.txt /*'noacd'*
'noai' options.txt /*'noai'*
@@ -976,6 +978,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_PS' term.txt /*'t_PS'*
't_RB' term.txt /*'t_RB'*
't_RC' term.txt /*'t_RC'*
+'t_RF' term.txt /*'t_RF'*
't_RI' term.txt /*'t_RI'*
't_RS' term.txt /*'t_RS'*
't_RV' term.txt /*'t_RV'*
@@ -3654,6 +3657,8 @@ Cmd-event autocmd.txt /*Cmd-event*
CmdUndefined autocmd.txt /*CmdUndefined*
Cmdline cmdline.txt /*Cmdline*
Cmdline-mode cmdline.txt /*Cmdline-mode*
+CmdlineEnter autocmd.txt /*CmdlineEnter*
+CmdlineLeave autocmd.txt /*CmdlineLeave*
CmdwinEnter autocmd.txt /*CmdwinEnter*
CmdwinLeave autocmd.txt /*CmdwinLeave*
ColorScheme autocmd.txt /*ColorScheme*
@@ -3756,7 +3761,6 @@ E169 message.txt /*E169*
E17 message.txt /*E17*
E170 eval.txt /*E170*
E171 eval.txt /*E171*
-E172 message.txt /*E172*
E173 message.txt /*E173*
E174 map.txt /*E174*
E175 map.txt /*E175*
@@ -6524,6 +6528,7 @@ ga various.txt /*ga*
garbagecollect() eval.txt /*garbagecollect()*
gd pattern.txt /*gd*
gdb debug.txt /*gdb*
+gdb-version terminal.txt /*gdb-version*
ge motion.txt /*ge*
get() eval.txt /*get()*
get-ms-debuggers debug.txt /*get-ms-debuggers*
@@ -7800,6 +7805,7 @@ option-summary options.txt /*option-summary*
option-window options.txt /*option-window*
options options.txt /*options*
options-changed version5.txt /*options-changed*
+options-in-terminal terminal.txt /*options-in-terminal*
options.txt options.txt /*options.txt*
optwin options.txt /*optwin*
or() eval.txt /*or()*
@@ -8618,6 +8624,7 @@ t_PE term.txt /*t_PE*
t_PS term.txt /*t_PS*
t_RB term.txt /*t_RB*
t_RC term.txt /*t_RC*
+t_RF term.txt /*t_RF*
t_RI term.txt /*t_RI*
t_RS term.txt /*t_RS*
t_RV term.txt /*t_RV*
@@ -9115,8 +9122,9 @@ v:t_none eval.txt /*v:t_none*
v:t_number eval.txt /*v:t_number*
v:t_string eval.txt /*v:t_string*
v:termblinkresp eval.txt /*v:termblinkresp*
+v:termrbgresp eval.txt /*v:termrbgresp*
v:termresponse eval.txt /*v:termresponse*
-v:termrgbresp eval.txt /*v:termrgbresp*
+v:termrfgresp eval.txt /*v:termrfgresp*
v:termstyleresp eval.txt /*v:termstyleresp*
v:termu7resp eval.txt /*v:termu7resp*
v:testing eval.txt /*v:testing*
@@ -9401,6 +9409,8 @@ wildmenumode() eval.txt /*wildmenumode()*
win32 os_win32.txt /*win32*
win32-!start gui_w32.txt /*win32-!start*
win32-PATH os_win32.txt /*win32-PATH*
+win32-backslashes os_win32.txt /*win32-backslashes*
+win32-cmdargs os_win32.txt /*win32-cmdargs*
win32-colors gui_w32.txt /*win32-colors*
win32-compiling os_win32.txt /*win32-compiling*
win32-curdir os_win32.txt /*win32-curdir*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 3ef372e..c3da90d 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt* For Vim version 8.0. Last change: 2016 Sep 20
+*tagsrch.txt* For Vim version 8.0. Last change: 2017 Oct 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -195,6 +195,7 @@ the same entry.
information in the tags file(s).
When [ident] is not given, the last tag name from the
tag stack is used.
+ See |tag-!| for [!].
With a '>' in the first column is indicated which is
the current position in the list (if there is one).
[ident] can be a regexp pattern, see |tag-regexp|.
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 0fc6939..61dfb4b 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt* For Vim version 8.0. Last change: 2017 Aug 28
+*term.txt* For Vim version 8.0. Last change: 2017 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -327,6 +327,7 @@ Added by Vim (there are no standard codes for these):
|xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes|
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
see |'ambiwidth'|
+ t_RF request terminal foreground color *t_RF* *'t_RF'*
t_RB request terminal background color *t_RB* *'t_RB'*
t_8f set foreground color (R, G, B) *t_8f* *'t_8f'*
|xterm-true-color|
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index d44e1b8..be68015 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt* For Vim version 8.0. Last change: 2017 Sep 26
+*terminal.txt* For Vim version 8.0. Last change: 2017 Oct 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -84,7 +84,7 @@ These are defined like any mapping, but apply only when typing keys that are
sent to the job running in the terminal. For example, to make Escape switch
to Terminal-Normal mode: >
tnoremap <Esc> <C-W>N
-
+< *options-in-terminal*
After opening the terminal window and setting 'buftype' to "terminal" the
BufWinEnter autocommand event is triggered. This makes it possible to set
options specifically for the window and buffer. Example: >
@@ -472,8 +472,11 @@ Customizing ~
To change the name of the gdb command, set the "termdebugger" variable before
invoking `:Termdebug`: >
let termdebugger = "mygdb"
+< *gdb-version*
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
-interface. This probably requires gdb version 7.12.
+interface. This probably requires gdb version 7.12. if you get this error:
+ Undefined command: "new-ui". Try "help".~
+Then your gdb is too old.
The color of the signs can be adjusted with these highlight groups:
- debugPC the current position
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 85fb6a6..71521c0 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.0. Last change: 2017 Sep 27
+*todo.txt* For Vim version 8.0. Last change: 2017 Nov 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7,9 +7,9 @@
TODO list for Vim *todo*
This is a veeeery long list of known bugs, current work and desired
-improvements. To make it a little bit accessible, the items are grouped by
-subject. In the first column of the line a classification is used to be able
-to look for "the next thing to do":
+improvements. To make it a little bit accessible, the older items are grouped
+by subject. In the first column of the line a classification is used to be
+able to look for "the next thing to do":
Priority classification:
9 next point release
@@ -35,14 +35,6 @@ entered there will not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-MS-Windows build and installer improvements:
-- Switch to VC2015 for building. (Ken Takata, 2017 Sep 21)
- Check resulting binary on XP.
-- Patch to install 32 and 64 bit Gvimext and related dll files. (Ken Takata,
- 2017 Sep 23, #2144)
-
-:term hangs in Athena and Motif. (Kazunobu Kuriyama, 2017 Sep 17)
-
Universal solution to detect if t_RS is working, using cursor position.
Koichi Iwamoto, #2126
@@ -154,49 +146,38 @@ Suggested by Hiroki Kokubun:
- [hybrid](https://github.com/w0ng/vim-hybrid)
Include solarized color scheme?
+Compiler warnings (geeknik, 2017 Oct 26):
+- signed integer overflow in do_sub() (#2249)
+- signed integer overflow in get_address() (#2248)
+- signed integer overflow in getdecchrs() (#2254)
+- signed integer overflow in nfa_regatom() (#2251)
+- undefined left shift in get_string_tv() (#2250)
+
+Patch to recognize neumutt temp files. (Teubel György, 2017 Oct 31, #2269)
+
When starting with --clean packages under "start" are not loaded. Make this
work: :packadd START {name} similar to :runtime START name
When using :packadd files under "later" are not used, which is inconsistent
with packages under "start". (xtal8, #1994)
+Patch to test autocommand effects. (James McCoy, 2017 Oct 31, #2271)
+
After 8.0.0962 pasting leaves the cursor in another position. (Ken Takata,
2017 Aug 23, #2015) Also (zdm, 2017 Aug 23)
-Patch to fix popup menu drawing when changing the window size. (Ozaki Kiichi,
-2017 Sep 17, #2110)
-
-Patch to fix cursor highlighting with match. (Ozaki Kiichi, 2017 Sep 17,
-#2111)
-
-Patch for not profiling the first line of a script. (Lemonboy, 2017 Sep 17,
-#2103)
-
-Mac Terminal.app: ctermbg=15 gives light grey instead of white.
-ctermbg=256 breaks clearing till end of the line. Both work fine in xterm.
-
-Patch to avoid `rb_load_protect` as a workaround not to crash (#2147)
-
-Patch for drag&drop reordering of GUI tab pages reordering.
-(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
-Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
-Update 2016 Aug 10.
-
-Using ":hi" causes a redraw, but a redraw may update the status line, which
-may trigger a ":hi" command.
-
-Last line not in profile if it is a continuation line. (LemonBoy, 2017 Sep 17,
-#2112)
+fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
(Marcin Szewczyk, 2017 Apr 26)
-Patch to make Mac features more clear and add "macdarwin". (Kazunobu Kuriyama,
-2017 Sep 5)
-
Using 'wildignore' also applies to literally entered file name. Also with
:drop (remote commands).
+"gvim --remote" from a directory with non-word characters changes the current
+directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
+Also see #1689.
+
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
Lemonboy can reproduce (2017 Jun 5)
@@ -204,17 +185,25 @@ ml_get errors with buggy script. (Dominique, 2017 Apr 30)
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
-Patch to make ":set scroll&" work properly. (Ozaki Kiichi, 2017 Sep 17, #2104)
+When a timer is running and typing CTRL-R on the command line, it is not
+redrawn properly. (xtal8, 2017 Oct 23, #2241)
-mswin.vim should not map CTRL-F in the console (#2093)
-Patch from Christian, 2017 Sep 15.
-Installer patch from Ken Takata, link on #2093.
+Patch for manpager plugin. (Lcd, 2017 Oct 12)
+Asked maintainer.
Default install on MS-Windows should source defaults.vim.
Ask whether to use Windows or Vim key behavior?
+When using command line window, CmdlineLeave is triggered without
+CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
+Add some way to get the nested state. Although CmdwinEnter is obviously
+always nested.
+
matchit hasn't been maintained for a long time. #955.
+MS-Windows: buffer completetion doesn't work when using backslash (or slash)
+for a path separator. (xtal8, #2201)
+
Test runtime files.
Start with filetype detection: testdir/test_filetype.vim
@@ -236,6 +225,17 @@ line breaks. (Ken Takata, 2017 Aug 22)
This example in the help does not work (Andy Wokula, 2017 Aug 20):
augroup mine | au! BufRead | augroup END
+24 bit color support in MS-Windows console, using vcon. (Nobuhiro Takasaki,
+2017 Oct 1, #2060). Should not set 'tgc' automatically.
+
+Patch to change GUI behavior: instead of changing the window size change the
+lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
+#703)
+
+Patch to skip globpath() for color schemes, keymaps and compiler settings.
+So that loading menus is faster. (Ken Takata, 2017 Oct 23)
+Update to expand the menus in a CursorHold autocmd. (2017 Oct 25)
+
Memory leaks in test_channel? (or is it because of fork())
Memory leak in test_arabic.
Using uninitialized value in test_crypt.
@@ -244,7 +244,7 @@ Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
It can replace the BeOS code, which is likely not used anymore.
-Now on github: #1856.
+Now on github: #1856. Updated Oct 2017
Got permission to include this under the Vim license.
Refactored HTML indent file. (Michael Lee, #1821)
@@ -252,6 +252,8 @@ Refactored HTML indent file. (Michael Lee, #1821)
Test_writefile_fails_conversion failure on Solaris because if different iconv
behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
+'tagrelative' is broken in specific situation. (xaizek, 2017 Oct 19, #2221)
+
All functions are global, which makes functions like get() and len() awkward.
For the future use the ~get() and ~len() syntax, e.g.:
mylist~get(idx)
@@ -269,6 +271,9 @@ The ++ options for the :edit command are also useful on the Vim command line.
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
#2089) Patch with possible solution by Björn Linse.
+The change list index is local to a buffer, but it doesn't make sense using it
+for another buffer. (lacygoll) Copy w_changelistidx to wininfo_S and back.
+
X11: Putting more than about 262040 characters of text on the clipboard and
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
clip_x11_request_selection_cb() is called with zero value and length.
@@ -292,6 +297,12 @@ terminal.c and then CTRL-N twice.
Should do current file first and not split it up when more results are found.
(Also #1890)
+Patch from Christian Brabandt to preserve upper case marks when wiping out a
+buffer. (2013 Dec 9)
+Also fixes #2166?
+
+Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
+
Python: After "import vim" error messages only show the first line of the
stack trace. (Yggdroot, 2017 Jul 28, #1887)
@@ -406,10 +417,6 @@ Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
Completion for :!cmd shows each match twice. #1435
-Patch to change GUI behavior: instead of changing the window size change the
-lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
-#703)
-
GTK: When adding a timer from 'balloonexpr' it won't fire, because
g_main_context_iteration() doesn't return. Need to trigger an event when the
timer expires.
@@ -1035,8 +1042,6 @@ Jun 8)
Bug: Autocompleting ":tag/pat" replaces "/pat" with a match but does not
insert a space. (Micha Mos, 2014 Nov 7)
-Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
-
No error for missing endwhile. (ZyX, 2014 Mar 20)
Patch to make extend() fail early when it might fail at some point.
@@ -1182,9 +1187,6 @@ When evaluating expression in backticks, autoload doesn't work.
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
Dec 13.
-Patch from Christian Brabandt to preserve upper case marks when wiping out a
-buffer. (2013 Dec 9)
-
GTK: problem with 'L' in 'guioptions' changing the window width.
(Aaron Cornelius, 2012 Feb 6)
@@ -1458,8 +1460,6 @@ Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
BT regexp engine: After trying a \@> match and failing, submatches are not
cleared. See test64.
-Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
-
Patch to make "z=" work when 'spell' is off. Does this have nasty side
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
Would also need to do this for spellbadword() and spellsuggest().
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 8b2ce53..c13a0cb 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 8.0. Last change: 2017 Aug 22
+*usr_41.txt* For Vim version 8.0. Last change: 2017 Oct 15
VIM USER MANUAL - by Bram Moolenaar
@@ -889,7 +889,7 @@ GUI: *gui-functions*
Vim server: *server-functions*
serverlist() return the list of server names
- remote_startserve() run a server
+ remote_startserver() run a server
remote_send() send command characters to a Vim server
remote_expr() evaluate an expression in a Vim server
server2client() send a reply to a client of a Vim server
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index de16d8a..f64e87f 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -11778,7 +11778,7 @@ Files: src/os_unix.c
Patch 7.4.1915
Problem: The effect of the PopupMenu autocommand isn't directly visible.
Solution: Call gui_update_menus() before displaying the popup menu. (Shane
- Harper, closs #855)
+ Harper, closes #855)
Files: src/menu.c
Patch 7.4.1916 (after 7.4.1906)
@@ -15398,7 +15398,7 @@ Files: src/testdir/test_undo.vim, src/undo.c
Patch 8.0.0150
Problem: When the pattern of :filter does not have a separator then
completion of the command fails.
-Solution: Skip over the pattern. (Ozaki Kiichi, clodes #1299)
+Solution: Skip over the pattern. (Ozaki Kiichi, closes #1299)
Files: src/ex_docmd.c, src/testdir/test_filter_cmd.vim
Patch 8.0.0151
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index de00f23..328f8da 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Aug 11
+" Last Change: 2017 Nov 02
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -292,14 +292,14 @@ au BufNewFile,BufRead *.bst setf bst
" BIND configuration
" sudoedit uses namedXXXX.conf
-au BufNewFile,BufRead named*.conf,rndc*.conf setf named
+au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named
" BIND zone
au BufNewFile,BufRead named.root setf bindzone
au BufNewFile,BufRead *.db call s:BindzoneCheck('')
func! s:BindzoneCheck(default)
- if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
+ if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
setf bindzone
elseif a:default != ''
exe 'setf ' . a:default
@@ -1155,8 +1155,8 @@ au BufNewFile,BufRead *.m4
" MaGic Point
au BufNewFile,BufRead *.mgp setf mgp
-" Mail (for Elm, trn, mutt, muttng, rn, slrn)
-au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
+" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt)
+au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
" Mail aliases
au BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases setf mailaliases
@@ -1354,6 +1354,9 @@ au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc
" Natural
au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural
+" Noemutt setup file
+au BufNewFile,BufRead Neomuttrc setf neomuttrc
+
" Netrc
au BufNewFile,BufRead .netrc setf netrc
@@ -1445,6 +1448,9 @@ au BufNewFile,BufRead *.dpr setf pascal
" PDF
au BufNewFile,BufRead *.pdf setf pdf
+" PCMK - HAE - crm configure edit
+au BufNewFile,BufRead *.pcmk setf pcmk
+
" Perl
if has("fname_case")
au BufNewFile,BufRead *.pl,*.PL call s:FTpl()
@@ -2437,6 +2443,9 @@ au BufNewFile,BufRead *.wbt setf winbatch
" WSML
au BufNewFile,BufRead *.wsml setf wsml
+" WPL
+au BufNewFile,BufRead *.wpl setf xml
+
" WvDial
au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial
@@ -2717,7 +2726,7 @@ au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make')
au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
" Mail (also matches muttrc.vim, so this is below the other checks)
-au BufNewFile,BufRead mutt[[:alnum:]._-]\\\{6\} setf mail
+au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail
au BufNewFile,BufRead reportbug-* call s:StarSetf('mail')
@@ -2732,6 +2741,10 @@ au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf')
au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc')
au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
+" Neomutt setup file
+au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc')
+au BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc')
+
" Nroff macros
au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')
diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim
index 5c95438..371a78c 100644
--- a/runtime/ftplugin/c.vim
+++ b/runtime/ftplugin/c.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Jun 12
+" Last Change: 2017 Sep 28
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -35,8 +35,8 @@ if has("vms")
endif
" When the matchit plugin is loaded, this makes the % command skip parens and
-" braces in comments.
-let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
+" braces in comments properly.
+let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
let b:match_skip = 's:comment\|string\|character\|special'
" Win32 can filter files in the browse dialog
diff --git a/runtime/ftplugin/gdb.vim b/runtime/ftplugin/gdb.vim
new file mode 100644
index 0000000..2473b13
--- /dev/null
+++ b/runtime/ftplugin/gdb.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language: gdb
+" Maintainer: Michaël Peeters <NOSPAMm.vim@noekeon.org>
+" Last Changed: 26 Oct 2017
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+setlocal commentstring=#%s
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal cms<"
diff --git a/runtime/ftplugin/neomuttrc.vim b/runtime/ftplugin/neomuttrc.vim
new file mode 100644
index 0000000..86f1cde
--- /dev/null
+++ b/runtime/ftplugin/neomuttrc.vim
@@ -0,0 +1,23 @@
+" Vim filetype plugin file
+" Language: NeoMutt RC File
+" Previous Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
+" Latest Revision: 2017-09-17
+" Original version copied from ftplugin/muttrc.vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &l:include = '^\s*source\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/python.vim b/runtime/ftplugin/python.vim
index 546e3bd..d52a338 100644
--- a/runtime/ftplugin/python.vim
+++ b/runtime/ftplugin/python.vim
@@ -1,9 +1,10 @@
" Vim filetype plugin file
" Language: python
-" Maintainer: James Sully <sullyj3@gmail.com>
+" Maintainer: Tom Picton <tom@tompicton.co.uk>
+" Previous Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: Tue, 09 October 2016
-" https://github.com/sullyj3/vim-ftplugin-python
+" Last Change: Fri, 20 October 2017
+" https://github.com/tpict/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -24,31 +25,51 @@ set wildignore+=*.pyc
let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
let b:prev_toplevel='\v^(class\|def\|async def)>'
+let b:next_endtoplevel='\v%$\|\S.*\n+(def\|class)'
+let b:prev_endtoplevel='\v\S.*\n+(def\|class)'
let b:next='\v%$\|^\s*(class\|def\|async def)>'
let b:prev='\v^\s*(class\|def\|async def)>'
+let b:next_end='\v\S\n*(%$\|^\s*(class\|def\|async def)\|^\S)'
+let b:prev_end='\v\S\n*(^\s*(class\|def\|async def)\|^\S)'
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"
+execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
+execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W')<cr>"
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb')<cr>"
+execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0)<cr>"
+execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0)<cr>"
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W')<cr>"
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb')<cr>"
+execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
+execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W')<cr>"
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb')<cr>"
+execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0)<cr>"
+execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0)<cr>"
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W')<cr>"
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb')<cr>"
+execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0)<cr>"
+execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0)<cr>"
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W')<cr>"
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb')<cr>"
+execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0)<cr>"
+execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0)<cr>"
if !exists('*<SID>Python_jump')
- fun! <SID>Python_jump(mode, motion, flags) range
+ fun! <SID>Python_jump(mode, motion, flags, ...) range
+ let l:startofline = (a:0 >= 1) ? a:1 : 1
+
if a:mode == 'x'
normal! gv
endif
- normal! 0
+ if l:startofline == 1
+ normal! 0
+ endif
let cnt = v:count1
mark '
@@ -57,7 +78,9 @@ if !exists('*<SID>Python_jump')
let cnt = cnt - 1
endwhile
- normal! ^
+ if l:startofline == 1
+ normal! ^
+ endif
endfun
endif
diff --git a/runtime/indent/gitolite.vim b/runtime/indent/gitolite.vim
index 2d24b59..b36f30a 100644
--- a/runtime/indent/gitolite.vim
+++ b/runtime/indent/gitolite.vim
@@ -1,8 +1,10 @@
" Vim indent file
" Language: gitolite configuration
-" URL: https://github.com/tmatilai/gitolite.vim
-" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
-" Last Change: 2017 Jun 13
+" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/indent/gitolite.vim
+" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/indent/gitolite.vim)
+" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
+" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
+" Last Change: 2017 Oct 05
if exists("b:did_indent")
finish
@@ -30,6 +32,8 @@ function! GetGitoliteIndent()
return shiftwidth()
elseif cline =~ '^\s*config\s'
return shiftwidth()
+ elseif cline =~ '^\s*option\s'
+ return shiftwidth()
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
return shiftwidth()
elseif cline =~ '^\s*#'
diff --git a/runtime/indent/vhdl.vim b/runtime/indent/vhdl.vim
index 7c39560..ad31806 100644
--- a/runtime/indent/vhdl.vim
+++ b/runtime/indent/vhdl.vim
@@ -1,8 +1,8 @@
" VHDL indent ('93 syntax)
" Language: VHDL
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
-" Version: 1.60
-" Last Change: 2017 Jun 13
+" Version: 1.62
+" Last Change: 2017 Oct 17
" URL: http://www.vim.org/scripts/script.php?script_id=1450
" only load this indent file when no other was loaded
@@ -412,11 +412,12 @@ function GetVHDLindent()
" ****************************************************************************************
" indent: maintain indent of previous opening statement
- " keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
+ " keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
" where: start of current line
- if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
+ if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
return ind2
endif
+
" ****************************************************************************************
" indent: maintain indent of previous opening statement, corner case which
" does not end in ;, but is part of a mapping
@@ -424,10 +425,10 @@ function GetVHDLindent()
" prevline without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
" where: start of current line
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*[^;].*$'
- if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
- return ind2
- endif
- endif
+ if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
+ return ind2
+ endif
+ endif
" return leftover filtered indent
return ind
diff --git a/runtime/mswin.vim b/runtime/mswin.vim
index 6dff7e7..da869a9 100644
--- a/runtime/mswin.vim
+++ b/runtime/mswin.vim
@@ -1,7 +1,7 @@
" Set options and add mapping such that Vim behaves a lot like MS-Windows
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last change: 2017 Feb 09
+" Last change: 2017 Oct 28
" bail out if this isn't wanted (mrsvim.vim uses this).
if exists("g:skip_loading_mswin") && g:skip_loading_mswin
@@ -105,14 +105,15 @@ onoremap <C-F4> <C-C><C-W>c
if has("gui")
" CTRL-F is the search dialog
- noremap <C-F> :promptfind<CR>
- inoremap <C-F> <C-\><C-O>:promptfind<CR>
- cnoremap <C-F> <C-\><C-C>:promptfind<CR>
-
- " CTRL-H is the replace dialog
- noremap <C-H> :promptrepl<CR>
- inoremap <C-H> <C-\><C-O>:promptrepl<CR>
- cnoremap <C-H> <C-\><C-C>:promptrepl<CR>
+ noremap <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/"
+ inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/"
+ cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/"
+
+ " CTRL-H is the replace dialog,
+ " but in console, it might be backspace, so don't map it there
+ nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>"
+ inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>"
+ cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>"
endif
" restore 'cpoptions'
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index ac70006..127232f 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Sep 10
+" Last Change: 2017 Oct 19
" If there already is an option window, jump to that one.
let buf = bufnr('option-window')
@@ -1360,6 +1360,12 @@ if exists("&tcldll")
call append("$", "tcldll\tname of the Tcl dynamic library")
call <SID>OptionG("tcldll", &tcldll)
endif
+if exists("&mzschemedll")
+ call append("$", "mzschemedll\tname of the Tcl dynamic library")
+ call <SID>OptionG("mzschemedll", &mzschemedll)
+ call append("$", "mzschemegcdll\tname of the Tcl GC dynamic library")
+ call <SID>OptionG("mzschemegcdll", &mzschemegcdll)
+endif
set cpo&vim
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
index 28d5a9b..229cc7a 100644
--- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -95,6 +95,7 @@ func s:StartDebug(cmd)
let s:gdbwin = win_getid(winnr())
" Connect gdb to the communication pty, using the GDB/MI interface
+ " If you get an error "undefined command" your GDB is too old.
call term_sendkeys(gdbbuf, 'new-ui mi ' . commpty . "\r")
" Sign used to highlight the line where the program has stopped.
@@ -299,6 +300,7 @@ func s:HandleCursor(msg)
endif
endif
exe lnum
+ exe 'sign unplace ' . s:pc_id
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
setlocal signcolumn=yes
endif
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index 5db1f64..4f68fd8 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2016 Feb 16
+" Last Change: 2017 Sep 30
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -186,9 +186,23 @@ function! s:Highlight_Matching_Pair()
endfunction
" Define commands that will disable and enable the plugin.
-command! NoMatchParen windo silent! call matchdelete(3) | unlet! g:loaded_matchparen |
- \ au! matchparen
-command! DoMatchParen runtime plugin/matchparen.vim | windo doau CursorMoved
+command! DoMatchParen call s:DoMatchParen()
+command! NoMatchParen call s:NoMatchParen()
+
+func! s:NoMatchParen()
+ let w = winnr()
+ noau windo silent! call matchdelete(3)
+ unlet! g:loaded_matchparen
+ exe "noau ". w . "wincmd w"
+ au! matchparen
+endfunc
+
+func! s:DoMatchParen()
+ runtime plugin/matchparen.vim
+ let w = winnr()
+ silent windo doau CursorMoved
+ exe "noau ". w . "wincmd w"
+endfunc
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index 9107d6a..e4362c8 100644
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -324,7 +324,7 @@ else
set ft=sindacmp
" DNS zone files
- elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
+ elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
set ft=bindzone
" BAAN
diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim
index b156cd2..6814c60 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -2,7 +2,7 @@
" This file is normally sourced from menu.vim.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2014 Aug 13
+" Last Change: 2017 Oct 28
" Define the SetSyn function, used for the Syntax menu entries.
" Set 'filetype' and also 'syntax' if it is manually selected.
@@ -351,12 +351,13 @@ an 50.70.510 &Syntax.M.Muttrc :cal SetSyn("muttrc")<CR>
an 50.80.100 &Syntax.NO.Nanorc :cal SetSyn("nanorc")<CR>
an 50.80.110 &Syntax.NO.Nastran\ input/DMAP :cal SetSyn("nastran")<CR>
an 50.80.120 &Syntax.NO.Natural :cal SetSyn("natural")<CR>
-an 50.80.130 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
-an 50.80.140 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
-an 50.80.150 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
-an 50.80.160 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
-an 50.80.170 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
-an 50.80.180 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
+an 50.80.130 &Syntax.NO.Neomuttrc :cal SetSyn("neomuttrc")<CR>
+an 50.80.140 &Syntax.NO.Netrc :cal SetSyn("netrc")<CR>
+an 50.80.150 &Syntax.NO.Ninja :cal SetSyn("ninja")<CR>
+an 50.80.160 &Syntax.NO.Novell\ NCF\ batch :cal SetSyn("ncf")<CR>
+an 50.80.170 &Syntax.NO.Not\ Quite\ C\ (LEGO) :cal SetSyn("nqc")<CR>
+an 50.80.180 &Syntax.NO.Nroff :cal SetSyn("nroff")<CR>
+an 50.80.190 &Syntax.NO.NSIS\ script :cal SetSyn("nsis")<CR>
an 50.80.200 &Syntax.NO.Obj\ 3D\ wavefront :cal SetSyn("obj")<CR>
an 50.80.210 &Syntax.NO.Objective\ C :cal SetSyn("objc")<CR>
an 50.80.220 &Syntax.NO.Objective\ C++ :cal SetSyn("objcpp")<CR>
diff --git a/runtime/syntax/bib.vim b/runtime/syntax/bib.vim
index f2b99e9..ac8dcda 100644
--- a/runtime/syntax/bib.vim
+++ b/runtime/syntax/bib.vim
@@ -2,7 +2,7 @@
" Language: BibTeX (bibliographic database format for (La)TeX)
" Maintainer: Bernd Feige <Bernd.Feige@gmx.net>
" Filenames: *.bib
-" Last Change: 2016 Sep 12
+" Last Change: 2017 Sep 29
" Thanks to those who pointed out problems with this file or supplied fixes!
@@ -81,16 +81,18 @@ syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1
syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField
syn match bibVariable contained /[^{}," \t=]/
syn region bibComment start=/./ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
-syn region bibMath contained start=/\$/ end=/\$/ skip=/\(\\\$\)/
+syn region bibMath contained start=/\(\\\)\@<!\$/ end=/\$/ skip=/\(\\\$\)/
syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents
syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents
syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents
syn region bibField contained start="\S\+\s*=\s*" end=/[}),]/me=e-1 contains=bibEntryKw,bibNSEntryKw,bibBrace,bibParen,bibQuote,bibVariable
-syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField
+syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField,bibComment3
" Actually, 5.8 <= Vim < 6.0 would ignore the `fold' keyword anyway, but Vim<5.8 would produce
" an error, so we explicitly distinguish versions with and without folding functionality:
syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment
syn region bibComment2 start=/@Comment\s*[{(]/ end=/^\s*[})]/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
+" biblatex style comments inside a bibEntry
+syn match bibComment3 "%.*"
" Synchronization
" ===============
@@ -111,6 +113,7 @@ hi def link bibVariable Constant
hi def link bibUnescapedSpecial Error
hi def link bibComment Comment
hi def link bibComment2 Comment
+hi def link bibComment3 Comment
let b:current_syntax = "bib"
diff --git a/runtime/syntax/gitolite.vim b/runtime/syntax/gitolite.vim
index 718aad0..3a6da26 100644
--- a/runtime/syntax/gitolite.vim
+++ b/runtime/syntax/gitolite.vim
@@ -1,8 +1,10 @@
" Vim syntax file
" Language: gitolite configuration
-" URL: https://github.com/tmatilai/gitolite.vim
-" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
-" Last Change: 2011-12-25
+" URL: https://github.com/sitaramc/gitolite/blob/master/contrib/vim/syntax/gitolite.vim
+" (https://raw.githubusercontent.com/sitaramc/gitolite/master/contrib/vim/syntax/gitolite.vim)
+" Maintainer: Sitaram Chamarty <sitaramc@gmail.com>
+" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
+" Last Change: 2017 Oct 05
if exists("b:current_syntax")
finish
@@ -11,74 +13,80 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-" Comment
-syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
-syn keyword gitoliteTodo TODO FIXME XXX NOT contained
-
-" Groups, users and repos
-syn match gitoliteGroupDef "\(^\s*\)\@<=@[^=]\{-1,}\(\s*=\)\@=" contains=gitoliteSpaceError,gitoliteUserError nextgroup=gitoliteGroupDefSep
-syn match gitoliteGroupDefSep "\s*=" contained nextgroup=gitoliteRepoLine
-syn match gitoliteRepoDef "^\s*repo\s" nextgroup=gitoliteRepoLine
-
-syn match gitoliteRepoLine ".*" contained transparent contains=gitoliteGroup,gitoliteWildRepo,gitoliteCreator,gitoliteExtCmdHelper,gitoliteRepoError,gitoliteComment
-syn match gitoliteUserLine ".*" contained transparent contains=gitoliteGroup,gitolitePreProc,gitoliteUserError,gitoliteComment
-
-syn match gitoliteWildRepo "[ \t=]\@<=[^ \t]*[\\^$|()[\]*?{},][^ \t]*" contained contains=gitoliteCreator,gitoliteRepoError
-syn match gitoliteGroup "[ \t=]\@<=@[^ \t]\+" contained contains=gitoliteUserError
-
-syn keyword gitoliteCreator CREATER CREATOR contained
-syn keyword gitolitePreProc CREATER CREATOR READERS WRITERS contained
-
-syn match gitoliteExtCmdHelper "[ \t=]\@<=EXTCMD/" contained nextgroup=gitoliteExtCmd
-syn match gitoliteExtCmd "rsync\(\s\|$\)" contained
-
-" Illegal characters
-syn match gitoliteRepoError "[^ \t0-9a-zA-Z._@+/\\^$|()[\]*?{},-]\+" contained
-syn match gitoliteUserError "[^ \t0-9a-zA-Z._@+-]\+" contained
-syn match gitoliteSpaceError "\s\+" contained
-
-" Permission
-syn match gitoliteKeyword "^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\)[ \t=]\@=" nextgroup=gitoliteRefex
-syn match gitoliteKeyword "^\s*-[ \t=]\@=" nextgroup=gitoliteDenyRefex
-syn match gitoliteRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteUserLine
-syn match gitoliteDenyRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteDenyUsers
-syn match gitoliteSpecialRefex "\sNAME/"he=e-1 contained
-syn match gitoliteSpecialRefex "/USER/"hs=s+1,he=e-1 contained
-syn match gitoliteDenyUsers ".*" contained contains=gitoliteUserError,gitoliteComment
-
-" Configuration
-syn match gitoliteKeyword "^\s*config\s\+" nextgroup=gitoliteConfVariable
-syn match gitoliteConfVariable "[^=]*" contained
-
-" Include
-syn match gitoliteInclude "^\s*\(include\|subconf\)\s"
-
-" String
-syn region gitoliteString start=+"+ end=+"+ oneline
-
-" Define the default highlighting
-hi def link gitoliteComment Comment
-hi def link gitoliteTodo Todo
-hi def link gitoliteGroupDef gitoliteGroup
-hi def link gitoliteGroup Identifier
-hi def link gitoliteWildRepo Special
-hi def link gitoliteRepoError gitoliteError
-hi def link gitoliteUserError gitoliteError
-hi def link gitoliteSpaceError gitoliteError
-hi def link gitoliteError Error
-hi def link gitoliteCreator gitolitePreProc
-hi def link gitolitePreProc PreProc
-hi def link gitoliteExtCmdHelper PreProc
-hi def link gitoliteExtCmd Special
-hi def link gitoliteRepoDef Type
-hi def link gitoliteKeyword Keyword
-hi def link gitoliteRefex String
-hi def link gitoliteDenyRefex gitoliteRefex
-hi def link gitoliteSpecialRefex PreProc
-hi def link gitoliteDenyUsers WarningMsg
-hi def link gitoliteConfVariable Identifier
-hi def link gitoliteInclude Include
-hi def link gitoliteString String
+" this seems to be the best way, for now.
+syntax sync fromstart
+
+" ---- common stuff
+
+syn match gitoliteGroup '@\S\+'
+
+syn match gitoliteComment '#.*' contains=gitoliteTodo
+syn keyword gitoliteTodo TODO FIXME XXX NOT contained
+
+" ---- main section
+
+" catch template-data syntax appearing outside template-data section
+syn match gitoliteRepoError '^\s*repo.*='
+syn match gitoliteRepoError '^\s*\S\+\s*=' " this gets overridden later when first word is a perm, don't worry
+
+" normal gitolite group and repo lines
+syn match gitoliteGroupLine '^\s*@\S\+\s*=\s*\S.*$' contains=gitoliteGroup,gitoliteComment
+syn match gitoliteRepoLine '^\s*repo\s\+[^=]*$' contains=gitoliteRepo,gitoliteGroup,gitoliteComment
+syn keyword gitoliteRepo repo contained
+
+syn keyword gitoliteSpecialRepo CREATOR
+
+" normal gitolite rule lines
+syn match gitoliteRuleLine '^\s*\(-\|C\|R\|RW+\?C\?D\?\)\s[^#]*' contains=gitoliteRule,gitoliteCreateRule,gitoliteDenyRule,gitoliteRefex,gitoliteUsers,gitoliteGroup
+syn match gitoliteRule '\(^\s*\)\@<=\(-\|C\|R\|RW+\?C\?D\?\)\s\@=' contained
+syn match gitoliteRefex '\(^\s*\(-\|R\|RW+\?C\?D\?\)\s\+\)\@<=\S.\{-}\(\s*=\)\@=' contains=gitoliteSpecialRefex
+syn match gitoliteSpecialRefex 'NAME/'
+syn match gitoliteSpecialRefex '/USER/'
+syn match gitoliteCreateRule '\(^\s*C\s.*=\s*\)\@<=\S[^#]*[^# ]' contained contains=gitoliteGroup
+syn match gitoliteDenyRule '\(^\s*-\s.*=\s*\)\@<=\S[^#]*[^# ]' contained
+
+" normal gitolite config (and similar) lines
+syn match gitoliteConfigLine '^\s*\(config\|option\|include\|subconf\)\s[^#]*' contains=gitoliteConfigKW,gitoliteConfigKey,gitoliteConfigVal,gitoliteComment
+syn keyword gitoliteConfigKW config option include subconf contained
+syn match gitoliteConfigKey '\(\(config\|option\)\s\+\)\@<=[^ =]*' contained
+syn match gitoliteConfigVal '\(=\s*\)\@<=\S.*' contained
+
+" ---- template-data section
+
+syn region gitoliteTemplateLine matchgroup=PreProc start='^=begin template-data$' end='^=end$' contains=gitoliteTplRepoLine,gitoliteTplRoleLine,gitoliteGroup,gitoliteComment,gitoliteTplError
+
+syn match gitoliteTplRepoLine '^\s*repo\s\+\S.*=.*' contained contains=gitoliteTplRepo,gitoliteTplTemplates,gitoliteGroup
+syn keyword gitoliteTplRepo repo contained
+syn match gitoliteTplTemplates '\(=\s*\)\@<=\S.*' contained contains=gitoliteGroup,gitoliteComment
+
+syn match gitoliteTplRoleLine '^\s*\S\+\s*=\s*.*' contained contains=gitoliteTplRole,gitoliteGroup,gitoliteComment
+syn match gitoliteTplRole '\S\+\s*='he=e-1 contained
+
+" catch normal gitolite rules appearing in template-data section
+syn match gitoliteTplError '^\s*repo[^=]*$' contained
+syn match gitoliteTplError '^\s*\(-\|R\|RW+\?C\?D\?\)\s'he=e-1 contained
+syn match gitoliteTplError '^\s*\(config\|option\|include\|subconf\)\s'he=e-1 contained
+syn match gitoliteTplError '^\s*@\S\+\s*=' contained contains=NONE
+
+hi def link gitoliteGroup Identifier
+hi def link gitoliteComment Comment
+hi def link gitoliteTodo ToDo
+hi def link gitoliteRepoError Error
+hi def link gitoliteGroupLine PreProc
+hi def link gitoliteRepo Keyword
+hi def link gitoliteSpecialRepo PreProc
+hi def link gitoliteRule Keyword
+hi def link gitoliteCreateRule PreProc
+hi def link gitoliteDenyRule WarningMsg
+hi def link gitoliteRefex Constant
+hi def link gitoliteSpecialRefex PreProc
+hi def link gitoliteConfigKW Keyword
+hi def link gitoliteConfigKey Identifier
+hi def link gitoliteConfigVal String
+hi def link gitoliteTplRepo Keyword
+hi def link gitoliteTplTemplates Constant
+hi def link gitoliteTplRole Constant
+hi def link gitoliteTplError Error
let b:current_syntax = "gitolite"
diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim
index 70c4e65..693a113 100644
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
-" Last Change: 2017 Jun 13
+" Last Change: 2017 Oct 19
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -60,6 +60,7 @@ syn match helpSpecial "\<N\>"
syn match helpSpecial "\<N\.$"me=e-1
syn match helpSpecial "\<N\.\s"me=e-2
syn match helpSpecial "(N\>"ms=s+1
+
syn match helpSpecial "\[N]"
" avoid highlighting N N in help.txt
syn match helpSpecial "N N"he=s+1
@@ -85,6 +86,9 @@ syn match helpSpecial "\[arguments]"
syn match helpSpecial "\[ident]"
syn match helpSpecial "\[addr]"
syn match helpSpecial "\[group]"
+" Don't highlight [converted] and others that do not have a tag
+syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]"
+
syn match helpSpecial "CTRL-."
syn match helpSpecial "CTRL-Break"
syn match helpSpecial "CTRL-PageUp"
diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim
index 49d3ab4..5f943a9 100644
--- a/runtime/syntax/html.vim
+++ b/runtime/syntax/html.vim
@@ -3,8 +3,9 @@
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
-" Last Change: 2017 Jan 21
-" included patch from Jorge Maldonado Ventura
+" Last Change: 2017 Sep 30
+" included patch from Christian Brabandt to make use of the strikethrough attributes
+"
" Please check :help html.vim for some comments and a description of the options
@@ -45,13 +46,13 @@ syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
syn keyword htmlTagName contained form hr html img
syn keyword htmlTagName contained input isindex kbd li link map menu
syn keyword htmlTagName contained meta ol option param pre p samp span
-syn keyword htmlTagName contained select small strike sub sup
+syn keyword htmlTagName contained select small sub sup
syn keyword htmlTagName contained table td textarea th tr tt ul var xmp
syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
" new html 4.0 tags
syn keyword htmlTagName contained abbr acronym bdo button col label
-syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
+syn keyword htmlTagName contained colgroup fieldset iframe ins legend
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
" new html 5 tags
@@ -135,6 +136,9 @@ if !exists("html_no_rendering")
" rendering
syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
+ syn region htmlStrike start="<del\>" end="</del>"me=e-6 contains=@htmlTop
+ syn region htmlStrike start="<strike\>" end="</strike>"me=e-9 contains=@htmlTop
+
syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
@@ -268,6 +272,11 @@ if !exists("html_no_rendering")
hi def htmlUnderline term=underline cterm=underline gui=underline
hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
hi def htmlItalic term=italic cterm=italic gui=italic
+ if v:version > 800 || v:version == 800 && has("patch1038")
+ hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough
+ else
+ hi def htmlStrike term=underline cterm=underline gui=underline
+ endif
endif
endif
diff --git a/runtime/syntax/neomuttrc.vim b/runtime/syntax/neomuttrc.vim
new file mode 100644
index 0000000..ea9d1f0
--- /dev/null
+++ b/runtime/syntax/neomuttrc.vim
@@ -0,0 +1,1032 @@
+" Vim syntax file
+" Language: NeoMutt setup files
+" Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
+" Last Change: 2017 Oct 28
+" Original version based on syntax/muttrc.vim
+
+" This file covers NeoMutt 20170912
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" Set the keyword characters
+setlocal isk=@,48-57,_,-
+
+" handling optional variables
+syntax match muttrcComment "^# .*$" contains=@Spell
+syntax match muttrcComment "^#[^ ].*$"
+syntax match muttrcComment "^#$"
+syntax match muttrcComment "[^\\]#.*$"lc=1
+
+" Escape sequences (back-tick and pipe goes here too)
+syntax match muttrcEscape +\\[#tnr"'Cc ]+
+syntax match muttrcEscape +[`|]+
+syntax match muttrcEscape +\\$+
+
+" The variables takes the following arguments
+"syn match muttrcString contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape
+syntax region muttrcString contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString
+syntax region muttrcString contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction
+syntax match muttrcStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL
+
+syntax region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand,muttrcVarDeprecatedStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad
+
+syntax match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1
+syntax match muttrcRXChars contained /[][|()][.*?+]*/
+syntax match muttrcRXChars contained /['"]^/ms=s+1
+syntax match muttrcRXChars contained /$['"]/me=e-1
+syntax match muttrcRXChars contained /\\/
+" Why does muttrcRXString2 work with one \ when muttrcRXString requires two?
+syntax region muttrcRXString contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars
+syntax region muttrcRXString contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars
+syntax region muttrcRXString contained skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars
+" For some reason, skip refuses to match backslashes here...
+syntax region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars
+syntax region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars
+syntax region muttrcRXString2 contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars
+syntax region muttrcRXString2 contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars
+
+" these must be kept synchronized with muttrcRXString, but are intended for
+" muttrcRXHooks
+syntax region muttrcRXHookString contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
+syntax region muttrcRXHookString contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
+syntax region muttrcRXHookString contained keepend skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
+syntax region muttrcRXHookString contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
+syntax region muttrcRXHookString contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL
+syntax match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL
+
+" these are exclusively for args lists (e.g. -rx pat pat pat ...)
+syntax region muttrcRXPat contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
+syntax region muttrcRXPat contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat
+syntax match muttrcRXPat contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat
+syntax match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat
+
+syntax match muttrcSpecial +\(['"]\)!\1+
+
+syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
+syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcString
+syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcString
+syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
+syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
+syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr contains=muttrcVariable,muttrcEscapedVariable
+syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" Now catch some email addresses and headers (purified version from mail.vim)
+syntax match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+"
+syntax match muttrcHeader "\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\="
+
+syntax match muttrcKeySpecial contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+
+syntax match muttrcKey contained "\S\+" contains=muttrcKeySpecial,muttrcKeyName
+syntax region muttrcKey contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=muttrcKeySpecial,muttrcKeyName
+syntax region muttrcKey contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=muttrcKeySpecial,muttrcKeyName
+syntax match muttrcKeyName contained "\\[trne]"
+syntax match muttrcKeyName contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|Next\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
+syntax match muttrcKeyName contained "\c<F\d\+>"
+
+syntax match muttrcFormatErrors contained /%./
+
+syntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/
+syntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/
+syntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/
+
+syntax region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" Format escapes and conditionals
+syntax match muttrcFormatConditionals2 contained /[^?]*?/
+function s:escapesConditionals(baseName, sequence, alignment, secondary)
+ exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/'
+ if a:alignment
+ exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%[>|*]./'
+ endif
+ if a:secondary
+ exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/ nextgroup=muttrcFormatConditionals2'
+ else
+ exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/'
+ endif
+endfunction
+
+" flatcap compiled a list of formats here: https://pastebin.com/raw/5QXhiP6L
+" UPDATE
+" The following info was pulled from hdr_format_str in hdrline.c
+call s:escapesConditionals('IndexFormat', '[AaBbCcDdEeFfgHIiJKLlMmNnOPqrSsTtuvWXxYyZz(<[{]\|G[a-zA-Z]\+', 1, 1)
+" The following info was pulled from alias_format_str in addrbook.c
+syntax match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/
+" The following info was pulled from newsgroup_format_str in browser.c
+call s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1)
+" The following info was pulled from cb_format_str in sidebar.c
+call s:escapesConditionals('SidebarFormat', '[BdFLNnSt!]', 1, 1)
+" The following info was pulled from query_format_str in query.c
+call s:escapesConditionals('QueryFormat', '[acent]', 0, 1)
+" The following info was pulled from mutt_attach_fmt in recvattach.c
+call s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1)
+" The following info was pulled from compose_format_str in compose.c
+syntax match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/
+syntax match muttrcComposeFormatEscapes contained /%[>|*]./
+" The following info was pulled from folder_format_str in browser.c
+call s:escapesConditionals('FolderFormat', '[CDdfFglNstu]', 1, 0)
+" The following info was pulled from mix_entry_fmt in remailer.c
+call s:escapesConditionals('MixFormat', '[acns]', 0, 0)
+" The following info was pulled from crypt_entry_fmt in crypt-gpgme.c
+" and pgp_entry_fmt in pgpkey.c (note that crypt_entry_fmt supports
+" 'p', but pgp_entry_fmt does not).
+call s:escapesConditionals('PGPFormat', '[acfklnptu[]', 0, 0)
+" The following info was pulled from _mutt_fmt_pgp_command in
+" pgpinvoke.c
+call s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1)
+" The following info was pulled from status_format_str in status.c
+call s:escapesConditionals('StatusFormat', '[bdFfhLlMmnoPprSstuVu]', 1, 1)
+" This matches the documentation, but directly contradicts the code
+" (according to the code, this should be identical to the
+" muttrcPGPCmdFormatEscapes
+syntax match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acfklntu[%]/
+" The following info was pulled from _mutt_fmt_smime_command in
+" smime.c
+call s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1)
+
+syntax region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes
+syntax region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
+syntax region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes
+syntax region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes
+syntax region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes
+
+syntax match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr
+syntax match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr
+syntax match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr
+syntax match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr
+syntax match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr
+syntax match muttrcVarEqualsGrpIdxFmt contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr
+syntax match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr
+syntax match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr
+syntax match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr
+syntax match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr
+syntax match muttrcVarEqualsSdbFmt contained skipwhite "=" nextgroup=muttrcSidebarFormatStr
+syntax match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr
+syntax match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr
+syntax match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr
+syntax match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr
+
+syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" List of the different screens in mutt
+" UPDATE
+syntax keyword muttrcMenu contained alias attach browser compose editor index pager postpone pgp mix query generic
+syntax match muttrcMenuList "\S\+" contained contains=muttrcMenu
+syntax match muttrcMenuCommas /,/ contained
+
+" List of hooks in Commands in init.h
+" UPDATE
+syntax keyword muttrcHooks contained skipwhite
+ \ account-hook append-hook charset-hook
+ \ close-hook crypt-hook fcc-hook fcc-save-hook folder-hook iconv-hook mbox-hook
+ \ message-hook open-hook pgp-hook reply-hook save-hook send-hook send2-hook
+syntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand
+
+syntax region muttrcSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
+syntax region muttrcSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL
+
+syntax region muttrcNoSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern
+syntax region muttrcNoSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern
+
+syntax match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType
+syntax match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType
+syntax match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag
+
+syntax match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)"
+
+syntax keyword muttrcAsterisk contained *
+syntax keyword muttrcListsKeyword lists skipwhite nextgroup=muttrcGroupDef,muttrcComment
+syntax keyword muttrcListsKeyword unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment
+
+syntax keyword muttrcSubscribeKeyword subscribe nextgroup=muttrcGroupDef,muttrcComment
+syntax keyword muttrcSubscribeKeyword unsubscribe nextgroup=muttrcAsterisk,muttrcComment
+
+syntax keyword muttrcAlternateKeyword contained alternates unalternates
+syntax region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
+
+" muttrcVariable includes a prefix because partial strings are considered
+" valid.
+syntax match muttrcVariable contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
+syntax match muttrcVariableInner contained "\$[a-zA-Z_-]\+"
+syntax match muttrcEscapedVariable contained "\\\$[a-zA-Z_-]\+"
+
+syntax match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail
+syntax match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
+
+" First, functions that take regular expressions:
+syntax match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL
+syntax match muttrcRXHooks /\<\%(account\|append\|close\|crypt\|folder\|mbox\|open\|pgp\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL
+
+" Now, functions that take patterns
+syntax match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern
+syntax match muttrcPatHooks /\<\%(charset\|iconv\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern
+syntax match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-save\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern
+
+syntax match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction
+syntax match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL
+syntax match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL
+syntax match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL
+syntax match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL
+syntax match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
+
+syntax region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s
+syntax region muttrcMacroDescr contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s
+syntax region muttrcMacroDescr contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s
+syntax match muttrcMacroDescrNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
+syntax region muttrcMacroBody contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
+syntax region muttrcMacroBody matchgroup=Type contained skipwhite start=+'+ms=e skip=+\\'+ end=+'\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
+syntax region muttrcMacroBody matchgroup=Type contained skipwhite start=+"+ms=e skip=+\\"+ end=+"\|\%(\%(\\\\\)\@<!$\)+me=s contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcSpam,muttrcNoSpam,muttrcCommand,muttrcAction,muttrcVariable nextgroup=muttrcMacroDescr,muttrcMacroDescrNL
+syntax match muttrcMacroBodyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroBody,muttrcMacroBodyNL
+syntax match muttrcMacroKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcMacroBody,muttrcMacroBodyNL
+syntax match muttrcMacroKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroKey,muttrcMacroKeyNL
+syntax match muttrcMacroMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcMacroKey,muttrcMacroKeyNL
+syntax match muttrcMacroMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
+
+syntax match muttrcAddrContent contained "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+\s*" skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
+syntax region muttrcAddrContent contained start=+'+ end=+'\s*+ skip=+\\'+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
+syntax region muttrcAddrContent contained start=+"+ end=+"\s*+ skip=+\\"+ skipwhite contains=muttrcEmail nextgroup=muttrcAddrContent
+syntax match muttrcAddrDef contained "-addr\s\+" skipwhite nextgroup=muttrcAddrContent
+
+syntax match muttrcGroupFlag contained "-group"
+syntax region muttrcGroupDef contained start="-group\s\+" skip="\\$" end="\s" skipwhite keepend contains=muttrcGroupFlag,muttrcUnHighlightSpace
+
+syntax keyword muttrcGroupKeyword contained group ungroup
+syntax region muttrcGroupLine keepend start=+^\s*\%(un\)\?group\s+ skip=+\\$+ end=+$+ contains=muttrcGroupKeyword,muttrcGroupDef,muttrcAddrDef,muttrcRXDef,muttrcUnHighlightSpace,muttrcComment
+
+syntax match muttrcAliasGroupName contained /\w\+/ skipwhite nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
+syntax match muttrcAliasGroupDefNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL
+syntax match muttrcAliasGroupDef contained /\s*-group/ skipwhite nextgroup=muttrcAliasGroupName,muttrcAliasGroupDefNL contains=muttrcGroupFlag
+syntax match muttrcAliasComma contained /,/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
+syntax match muttrcAliasEmail contained /\S\+@\S\+/ contains=muttrcEmail nextgroup=muttrcAliasName,muttrcAliasNameNL skipwhite
+syntax match muttrcAliasEncEmail contained /<[^>]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma
+syntax match muttrcAliasEncEmailNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
+syntax match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL
+syntax region muttrcAliasName contained matchgroup=Type start=/(/ end=/)/ skipwhite
+syntax match muttrcAliasNameNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL
+syntax match muttrcAliasENNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
+syntax match muttrcAliasKey contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL
+syntax match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
+
+syntax match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
+syntax match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
+
+syntax match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]"
+syntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)"
+syntax match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable
+syntax match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
+syntax match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
+syntax match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
+syntax region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
+"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
+syntax region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
+syntax region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+
+syntax region muttrcSimplePatString contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1
+syntax region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString
+syntax region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString
+syntax region muttrcSimplePatRXContainer contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString
+syntax match muttrcSimplePatMetas contained /[(|)]/
+
+syntax match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas
+syntax match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString
+syntax region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
+syntax region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL
+syntax region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
+syntax match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL
+syntax match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL
+" Keep muttrcPattern and muttrcOptPattern synchronized
+syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
+syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
+syntax region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat
+syntax match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat
+syntax match muttrcPattern contained skipwhite /[.]/
+syntax region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
+syntax region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas
+
+" Colour definitions takes object, foreground and background arguments (regexps excluded).
+syntax match muttrcColorMatchCount contained "[0-9]\+"
+syntax match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
+syntax region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
+syntax region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
+syntax keyword muttrcColor contained black blue cyan default green magenta red white yellow
+syntax keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
+syntax match muttrcColor contained "\<\%(bright\)\=color\d\{1,3}\>"
+" Now for the structure of the color line
+syntax match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
+syntax match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
+syntax match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL
+syntax match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL
+syntax match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL
+syntax match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL
+syntax match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
+syntax match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose
+" And now color's brother:
+syntax region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
+syntax region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
+syntax match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
+syntax match muttrcUnColorPatNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL
+syntax match muttrcUnColorAll contained skipwhite /[*]/
+syntax match muttrcUnColorAPNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
+syntax match muttrcUnColorIndex contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL
+syntax match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
+syntax match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL
+syntax region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace
+
+syntax keyword muttrcMonoAttrib contained bold none normal reverse standout underline
+syntax keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField,muttrcColorCompose
+syntax match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono
+
+" List of fields in Fields in color.c
+" UPDATE
+syntax keyword muttrcColorField skipwhite contained
+ \ attach_headers attachment bold error hdrdefault index_author index_collapsed
+ \ index_date index_label index_number index_size index_subject index_tags
+ \ indicator markers message normal progress prompt quoted search sidebar_divider
+ \ sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new
+ \ sidebar_ordinary sidebar_spoolfile signature status tilde tree underline
+ \ body header index index_flags index_tag
+ \ nextgroup=muttrcColor
+syntax match muttrcColorField contained "\<quoted\d\=\>"
+
+syntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField
+" List of fields in ComposeFields in color.c
+" UPDATE
+syntax keyword muttrcColorComposeField skipwhite contained
+ \ header security_encrypt security_sign security_both security_none
+ \ nextgroup=muttrcColorFG,muttrcColorFGNL
+syntax region muttrcColorLine keepend start=/^\s*color\s\+/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
+
+
+function s:boolQuadGen(type, vars, deprecated)
+ let l:novars = copy(a:vars)
+ call map(l:novars, '"no" . v:val')
+ let l:invvars = copy(a:vars)
+ call map(l:invvars, '"inv" . v:val')
+
+ let l:orig_type = copy(a:type)
+ if a:deprecated
+ let l:type = 'Deprecated' . a:type
+ else
+ let l:type = a:type
+ endif
+
+ exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
+ exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
+ exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr'
+endfunction
+
+" List of DT_BOOL in MuttVars in init.h
+" UPDATE
+call s:boolQuadGen('Bool', [
+ \ 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'askbcc', 'askcc',
+ \ 'ask_follow_up', 'ask_x_comment_to', 'attach_split', 'autoedit', 'auto_tag',
+ \ 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly', 'check_mbox_size',
+ \ 'check_new', 'collapse_all', 'collapse_flagged', 'collapse_unread',
+ \ 'confirmappend', 'confirmcreate', 'crypt_autoencrypt', 'crypt_autopgp',
+ \ 'crypt_autosign', 'crypt_autosmime', 'crypt_confirmhook',
+ \ 'crypt_opportunistic_encrypt', 'crypt_replyencrypt', 'crypt_replysign',
+ \ 'crypt_replysignencrypted', 'crypt_timestamp', 'crypt_use_gpgme',
+ \ 'crypt_use_pka', 'delete_untag', 'digest_collapse', 'duplicate_threads',
+ \ 'edit_headers', 'encode_from', 'fast_reply', 'fcc_clear', 'flag_safe',
+ \ 'followup_to', 'force_name', 'forward_decode', 'forward_decrypt',
+ \ 'forward_quote', 'forward_references', 'hdrs', 'header',
+ \ 'header_cache_compress', 'header_color_partial', 'help', 'hidden_host',
+ \ 'hide_limited', 'hide_missing', 'hide_thread_subject', 'hide_top_limited',
+ \ 'hide_top_missing', 'history_remove_dups', 'honor_disposition', 'idn_decode',
+ \ 'idn_encode', 'ignore_linear_white_space', 'ignore_list_reply_to',
+ \ 'imap_check_subscribed', 'imap_idle', 'imap_list_subscribed', 'imap_passive',
+ \ 'imap_peek', 'imap_servernoise', 'implicit_autoview', 'include_onlyfirst',
+ \ 'keep_flagged', 'keywords_legacy', 'keywords_standard', 'mailcap_sanitize',
+ \ 'mail_check_recent', 'mail_check_stats', 'maildir_check_cur',
+ \ 'maildir_header_cache_verify', 'maildir_trash', 'markers', 'mark_old',
+ \ 'menu_move_off', 'menu_scroll', 'message_cache_clean', 'meta_key', 'metoo',
+ \ 'mh_purge', 'mime_forward_decode', 'mime_subject', 'mime_type_query_first',
+ \ 'narrow_tree', 'nm_record', 'nntp_listgroup', 'nntp_load_description',
+ \ 'pager_stop', 'pgp_auto_decode', 'pgp_autoinline', 'pgp_check_exit',
+ \ 'pgp_ignore_subkeys', 'pgp_long_ids', 'pgp_replyinline',
+ \ 'pgp_retainable_sigs', 'pgp_self_encrypt', 'pgp_show_unusable',
+ \ 'pgp_strict_enc', 'pgp_use_gpg_agent', 'pipe_decode', 'pipe_split',
+ \ 'pop_auth_try_all', 'pop_last', 'postpone_encrypt', 'print_decode',
+ \ 'print_split', 'prompt_after', 'read_only', 'reflow_space_quotes',
+ \ 'reflow_text', 'reply_self', 'reply_with_xorig', 'resolve',
+ \ 'resume_draft_files', 'resume_edited_draft_files', 'reverse_alias',
+ \ 'reverse_name', 'reverse_realname', 'rfc2047_parameters', 'save_address',
+ \ 'save_empty', 'save_name', 'save_unsubscribed', 'score', 'show_new_news',
+ \ 'show_only_unread', 'sidebar_folder_indent', 'sidebar_new_mail_only',
+ \ 'sidebar_next_new_wrap', 'sidebar_on_right', 'sidebar_short_path',
+ \ 'sidebar_visible', 'sig_dashes', 'sig_on_top', 'smart_wrap',
+ \ 'smime_ask_cert_label', 'smime_decrypt_use_default_key', 'smime_is_default',
+ \ 'smime_self_encrypt', 'sort_re', 'ssl_force_tls', 'ssl_use_sslv2',
+ \ 'ssl_use_sslv3', 'ssl_usesystemcerts', 'ssl_use_tlsv1', 'ssl_use_tlsv1_1',
+ \ 'ssl_use_tlsv1_2', 'ssl_verify_dates', 'ssl_verify_host',
+ \ 'ssl_verify_partial_chains', 'status_on_top', 'strict_threads', 'suspend',
+ \ 'text_flowed', 'thorough_search', 'thread_received', 'tilde', 'ts_enabled',
+ \ 'uncollapse_jump', 'uncollapse_new', 'use_8bitmime', 'use_domain',
+ \ 'use_envelope_from', 'use_from', 'use_ipv6', 'user_agent',
+ \ 'virtual_spoolfile', 'wait_key', 'weed', 'wrap_search', 'write_bcc',
+ \ 'x_comment_to'
+ \ ], 0)
+
+" Deprecated Bools
+" UPDATE
+" List of DT_SYNONYM synonyms of Bools in MuttVars in init.h
+call s:boolQuadGen('Bool', [
+ \ 'edit_hdrs', 'envelope_from', 'forw_decode', 'forw_decrypt', 'forw_quote',
+ \ 'pgp_autoencrypt', 'pgp_autosign', 'pgp_auto_traditional',
+ \ 'pgp_create_traditional', 'pgp_replyencrypt', 'pgp_replysign',
+ \ 'pgp_replysignencrypted', 'xterm_set_titles'
+ \ ], 1)
+
+" List of DT_QUAD in MuttVars in init.h
+" UPDATE
+call s:boolQuadGen('Quad', [
+ \ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce',
+ \ 'catchup_newsgroup', 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach',
+ \ 'followup_to_poster', 'forward_edit', 'honor_followup_to', 'include',
+ \ 'mime_forward', 'mime_forward_rest', 'move', 'pgp_encrypt_self',
+ \ 'pgp_mime_auto', 'pop_delete', 'pop_reconnect', 'post_moderated', 'postpone',
+ \ 'print', 'quit', 'recall', 'reply_to', 'smime_encrypt_self', 'ssl_starttls',
+ \ ], 0)
+
+" Deprecated Quads
+" UPDATE
+" List of DT_SYNONYM synonyms of Quads in MuttVars in init.h
+call s:boolQuadGen('Quad', [
+ \ 'mime_fwd', 'pgp_verify_sig'
+ \ ], 1)
+
+" List of DT_NUMBER in MuttVars in init.h
+" UPDATE
+syntax keyword muttrcVarNum skipwhite contained
+ \ connect_timeout debug_level history imap_keepalive imap_pipeline_depth
+ \ imap_poll_timeout mail_check mail_check_stats_interval menu_context net_inc
+ \ nm_db_limit nm_open_timeout nm_query_window_current_position
+ \ nm_query_window_duration nntp_context nntp_poll pager_context
+ \ pager_index_lines pgp_timeout pop_checkinterval read_inc reflow_wrap
+ \ save_history score_threshold_delete score_threshold_flag score_threshold_read
+ \ search_context sendmail_wait sidebar_width skip_quoted_offset sleep_time
+ \ smime_timeout ssl_min_dh_prime_bits time_inc timeout wrap wrap_headers
+ \ wrapmargin write_inc
+ \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" List of DT_STRING in MuttVars in init.h
+" UPDATE
+" Special cases first, and all the rest at the end
+" A lot of special cases are format, flatcap compiled a list here https://pastebin.com/raw/5QXhiP6L
+" Formats themselves must be updated in their respective groups
+" See s:escapesConditionals
+syntax match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt
+syntax keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt
+syntax keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt
+syntax keyword muttrcVarStr contained skipwhite folder_format vfolder_format nextgroup=muttrcVarEqualsFolderFmt
+syntax keyword muttrcVarStr contained skipwhite attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt
+" Deprecated format
+syntax keyword muttrcVarDeprecatedStr contained skipwhite hdr_format msg_format nextgroup=muttrcVarEqualsIdxFmt
+syntax keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt
+syntax keyword muttrcVarStr contained skipwhite
+ \ pgp_decode_command pgp_verify_command pgp_decrypt_command
+ \ pgp_clearsign_command pgp_sign_command pgp_encrypt_sign_command
+ \ pgp_encrypt_only_command pgp_import_command pgp_export_command
+ \ pgp_verify_key_command pgp_list_secring_command pgp_list_pubring_command
+ \ nextgroup=muttrcVarEqualsPGPCmdFmt
+syntax keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt
+syntax keyword muttrcVarStr contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt
+syntax keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt
+syntax keyword muttrcVarStr contained skipwhite
+ \ smime_decrypt_command smime_verify_command smime_verify_opaque_command
+ \ smime_sign_command smime_sign_opaque_command smime_encrypt_command
+ \ smime_pk7out_command smime_get_cert_command smime_get_signer_cert_command
+ \ smime_import_cert_command smime_get_cert_email_command
+ \ nextgroup=muttrcVarEqualsSmimeFmt
+syntax keyword muttrcVarStr contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt
+" Deprecated format
+syntax keyword muttrcVarDeprecatedStr contained skipwhite xterm_icon xterm_title nextgroup=muttrcVarEqualsStatusFmt
+syntax keyword muttrcVarStr contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt
+syntax keyword muttrcVarStr contained skipwhite group_index_format nextgroup=muttrcVarEqualsGrpIdxFmt
+syntax keyword muttrcVarStr contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSdbFmt
+syntax keyword muttrcVarStr contained skipwhite
+ \ assumed_charset attach_charset attach_sep attribution_locale charset
+ \ config_charset content_type default_hook dsn_notify dsn_return empty_subject
+ \ escape forward_attribution_intro forward_attribution_trailer forward_format
+ \ header_cache_pagesize hostname imap_authenticators imap_delim_chars
+ \ imap_headers imap_login imap_pass imap_user indent_string mailcap_path
+ \ mark_macro_prefix mh_seq_flagged mh_seq_replied mh_seq_unseen
+ \ mime_type_query_command newsgroups_charset news_server nm_default_uri
+ \ nm_exclude_tags nm_hidden_tags nm_query_type nm_query_window_current_search
+ \ nm_query_window_timebase nm_record_tags nm_unread_tag nntp_authenticators
+ \ nntp_pass nntp_user pgp_self_encrypt_as pgp_sign_as pipe_sep
+ \ pop_authenticators pop_host pop_pass pop_user post_indent_string
+ \ postpone_encrypt_as preconnect realname send_charset
+ \ show_multipart_alternative sidebar_delim_chars sidebar_divider_char
+ \ sidebar_indent_string simple_search smime_default_key smime_encrypt_with
+ \ smime_self_encrypt_as smime_sign_digest_alg smtp_authenticators smtp_pass
+ \ smtp_url spam_separator ssl_ciphers tunnel xlabel_delimiter
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" Deprecated strings
+syntax keyword muttrcVarDeprecatedStr contained skipwhite
+ \ forw_format indent_str post_indent_str smime_sign_as
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_ADDRESS
+syntax keyword muttrcVarStr contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_HCACHE
+syntax keyword muttrcVarStr contained skipwhite header_cache_backend nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_MAGIC
+syntax keyword muttrcVarStr contained skipwhite mbox_type nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_MBTABLE
+syntax keyword muttrcVarStr contained skipwhite flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_PATH
+syntax keyword muttrcVarStr contained skipwhite
+ \ alias_file certificate_file debug_file display_filter editor entropy_file
+ \ folder header_cache history_file inews ispell mbox message_cachedir mixmaster
+ \ new_mail_command news_cache_dir newsrc pager postponed print_command
+ \ query_command record sendmail shell signature smime_ca_location
+ \ smime_certificates smime_keys spoolfile ssl_ca_certificates_file
+ \ ssl_client_cert tmpdir trash visual
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of deprecated DT_PATH
+syntax keyword muttrcVarDeprecatedStr contained skipwhite print_cmd nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_REGEX
+syntax keyword muttrcVarStr contained skipwhite
+ \ attach_keyword gecos_mask mask pgp_decryption_okay pgp_good_sign quote_regexp
+ \ reply_regexp smileys
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+" List of DT_SORT
+syntax keyword muttrcVarStr contained skipwhite
+ \ pgp_sort_keys sidebar_sort_method sort sort_alias sort_aux sort_browser
+ \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+
+" List of commands in Commands in init.h
+" UPDATE
+" Remember to remove hooks, they have already been dealt with
+syntax keyword muttrcCommand skipwhite charset-hook nextgroup=muttrcRXString
+syntax keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks
+syntax keyword muttrcCommand skipwhite spam nextgroup=muttrcSpamPattern
+syntax keyword muttrcCommand skipwhite nospam nextgroup=muttrcNoSpamPattern
+syntax keyword muttrcCommand skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL
+syntax keyword muttrcCommand skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL
+syntax keyword muttrcCommand skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL
+syntax keyword muttrcCommand skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL
+syntax keyword muttrcCommand skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr,muttrcVarDeprecatedBool,muttrcVarDeprecatedQuad,muttrcVarDeprecatedStr
+syntax keyword muttrcCommand skipwhite exec nextgroup=muttrcFunction
+syntax keyword muttrcCommand skipwhite
+ \ alternative_order attachments auto_view hdr_order ifdef ifndef ignore lua
+ \ lua-source mailboxes mailto_allow mime_lookup my_hdr push score setenv
+ \ sidebar_whitelist source subjectrx tag-formats tag-transforms
+ \ unalternative_order unattachments unauto_view uncolor unhdr_order unignore
+ \ unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore unsetenv
+ \ unsidebar_whitelist unsubjectrx unvirtual-mailboxes virtual-mailboxes
+
+" List of functions in functions.h
+" UPDATE
+syntax match muttrcFunction contained "\<accept\>"
+syntax match muttrcFunction contained "\<append\>"
+syntax match muttrcFunction contained "\<attach-file\>"
+syntax match muttrcFunction contained "\<attach-key\>"
+syntax match muttrcFunction contained "\<accept\>"
+syntax match muttrcFunction contained "\<append\>"
+syntax match muttrcFunction contained "\<attach-file\>"
+syntax match muttrcFunction contained "\<attach-key\>"
+syntax match muttrcFunction contained "\<attach-message\>"
+syntax match muttrcFunction contained "\<attach-news-message\>"
+syntax match muttrcFunction contained "\<backspace\>"
+syntax match muttrcFunction contained "\<backward-char\>"
+syntax match muttrcFunction contained "\<backward-word\>"
+syntax match muttrcFunction contained "\<bol\>"
+syntax match muttrcFunction contained "\<bottom\>"
+syntax match muttrcFunction contained "\<bottom-page\>"
+syntax match muttrcFunction contained "\<bounce-message\>"
+syntax match muttrcFunction contained "\<break-thread\>"
+syntax match muttrcFunction contained "\<buffy-cycle\>"
+syntax match muttrcFunction contained "\<buffy-list\>"
+syntax match muttrcFunction contained "\<capitalize-word\>"
+syntax match muttrcFunction contained "\<catchup\>"
+syntax match muttrcFunction contained "\<chain-next\>"
+syntax match muttrcFunction contained "\<chain-prev\>"
+syntax match muttrcFunction contained "\<change-dir\>"
+syntax match muttrcFunction contained "\<change-folder\>"
+syntax match muttrcFunction contained "\<change-folder-readonly\>"
+syntax match muttrcFunction contained "\<change-newsgroup\>"
+syntax match muttrcFunction contained "\<change-newsgroup-readonly\>"
+syntax match muttrcFunction contained "\<change-vfolder\>"
+syntax match muttrcFunction contained "\<check-new\>"
+syntax match muttrcFunction contained "\<check-traditional-pgp\>"
+syntax match muttrcFunction contained "\<clear-flag\>"
+syntax match muttrcFunction contained "\<collapse-all\>"
+syntax match muttrcFunction contained "\<collapse-parts\>"
+syntax match muttrcFunction contained "\<collapse-thread\>"
+syntax match muttrcFunction contained "\<complete\>"
+syntax match muttrcFunction contained "\<complete-query\>"
+syntax match muttrcFunction contained "\<compose-to-sender\>"
+syntax match muttrcFunction contained "\<copy-file\>"
+syntax match muttrcFunction contained "\<copy-message\>"
+syntax match muttrcFunction contained "\<create-alias\>"
+syntax match muttrcFunction contained "\<create-mailbox\>"
+syntax match muttrcFunction contained "\<current-bottom\>"
+syntax match muttrcFunction contained "\<current-middle\>"
+syntax match muttrcFunction contained "\<current-top\>"
+syntax match muttrcFunction contained "\<decode-copy\>"
+syntax match muttrcFunction contained "\<decode-save\>"
+syntax match muttrcFunction contained "\<decrypt-copy\>"
+syntax match muttrcFunction contained "\<decrypt-save\>"
+syntax match muttrcFunction contained "\<delete\>"
+syntax match muttrcFunction contained "\<delete-char\>"
+syntax match muttrcFunction contained "\<delete-entry\>"
+syntax match muttrcFunction contained "\<delete-mailbox\>"
+syntax match muttrcFunction contained "\<delete-message\>"
+syntax match muttrcFunction contained "\<delete-pattern\>"
+syntax match muttrcFunction contained "\<delete-subthread\>"
+syntax match muttrcFunction contained "\<delete-thread\>"
+syntax match muttrcFunction contained "\<detach-file\>"
+syntax match muttrcFunction contained "\<display-address\>"
+syntax match muttrcFunction contained "\<display-filename\>"
+syntax match muttrcFunction contained "\<display-message\>"
+syntax match muttrcFunction contained "\<display-toggle-weed\>"
+syntax match muttrcFunction contained "\<downcase-word\>"
+syntax match muttrcFunction contained "\<edit\>"
+syntax match muttrcFunction contained "\<edit-bcc\>"
+syntax match muttrcFunction contained "\<edit-cc\>"
+syntax match muttrcFunction contained "\<edit-description\>"
+syntax match muttrcFunction contained "\<edit-encoding\>"
+syntax match muttrcFunction contained "\<edit-fcc\>"
+syntax match muttrcFunction contained "\<edit-file\>"
+syntax match muttrcFunction contained "\<edit-followup-to\>"
+syntax match muttrcFunction contained "\<edit-from\>"
+syntax match muttrcFunction contained "\<edit-headers\>"
+syntax match muttrcFunction contained "\<edit-label\>"
+syntax match muttrcFunction contained "\<edit-message\>"
+syntax match muttrcFunction contained "\<edit-mime\>"
+syntax match muttrcFunction contained "\<edit-newsgroups\>"
+syntax match muttrcFunction contained "\<edit-reply-to\>"
+syntax match muttrcFunction contained "\<edit-subject\>"
+syntax match muttrcFunction contained "\<edit-to\>"
+syntax match muttrcFunction contained "\<edit-type\>"
+syntax match muttrcFunction contained "\<edit-x-comment-to\>"
+syntax match muttrcFunction contained "\<end-cond\>"
+syntax match muttrcFunction contained "\<enter-command\>"
+syntax match muttrcFunction contained "\<enter-mask\>"
+syntax match muttrcFunction contained "\<entire-thread\>"
+syntax match muttrcFunction contained "\<eol\>"
+syntax match muttrcFunction contained "\<exit\>"
+syntax match muttrcFunction contained "\<extract-keys\>"
+syntax match muttrcFunction contained "\<fetch-mail\>"
+syntax match muttrcFunction contained "\<filter-entry\>"
+syntax match muttrcFunction contained "\<first-entry\>"
+syntax match muttrcFunction contained "\<flag-message\>"
+syntax match muttrcFunction contained "\<followup-message\>"
+syntax match muttrcFunction contained "\<forget-passphrase\>"
+syntax match muttrcFunction contained "\<forward-char\>"
+syntax match muttrcFunction contained "\<forward-message\>"
+syntax match muttrcFunction contained "\<forward-to-group\>"
+syntax match muttrcFunction contained "\<forward-word\>"
+syntax match muttrcFunction contained "\<get-attachment\>"
+syntax match muttrcFunction contained "\<get-children\>"
+syntax match muttrcFunction contained "\<get-message\>"
+syntax match muttrcFunction contained "\<get-parent\>"
+syntax match muttrcFunction contained "\<goto-folder\>"
+syntax match muttrcFunction contained "\<group-reply\>"
+syntax match muttrcFunction contained "\<half-down\>"
+syntax match muttrcFunction contained "\<half-up\>"
+syntax match muttrcFunction contained "\<help\>"
+syntax match muttrcFunction contained "\<history-down\>"
+syntax match muttrcFunction contained "\<history-up\>"
+syntax match muttrcFunction contained "\<imap-fetch-mail\>"
+syntax match muttrcFunction contained "\<imap-logout-all\>"
+syntax match muttrcFunction contained "\<insert\>"
+syntax match muttrcFunction contained "\<ispell\>"
+syntax match muttrcFunction contained "\<jump\>"
+syntax match muttrcFunction contained "\<kill-eol\>"
+syntax match muttrcFunction contained "\<kill-eow\>"
+syntax match muttrcFunction contained "\<kill-line\>"
+syntax match muttrcFunction contained "\<kill-word\>"
+syntax match muttrcFunction contained "\<last-entry\>"
+syntax match muttrcFunction contained "\<limit\>"
+syntax match muttrcFunction contained "\<limit-current-thread\>"
+syntax match muttrcFunction contained "\<link-threads\>"
+syntax match muttrcFunction contained "\<list-reply\>"
+syntax match muttrcFunction contained "\<mail\>"
+syntax match muttrcFunction contained "\<mail-key\>"
+syntax match muttrcFunction contained "\<mark-as-new\>"
+syntax match muttrcFunction contained "\<mark-message\>"
+syntax match muttrcFunction contained "\<middle-page\>"
+syntax match muttrcFunction contained "\<mix\>"
+syntax match muttrcFunction contained "\<modify-labels\>"
+syntax match muttrcFunction contained "\<modify-labels-then-hide\>"
+syntax match muttrcFunction contained "\<new-mime\>"
+syntax match muttrcFunction contained "\<next-entry\>"
+syntax match muttrcFunction contained "\<next-line\>"
+syntax match muttrcFunction contained "\<next-new\>"
+syntax match muttrcFunction contained "\<next-new-then-unread\>"
+syntax match muttrcFunction contained "\<next-page\>"
+syntax match muttrcFunction contained "\<next-subthread\>"
+syntax match muttrcFunction contained "\<next-thread\>"
+syntax match muttrcFunction contained "\<next-undeleted\>"
+syntax match muttrcFunction contained "\<next-unread\>"
+syntax match muttrcFunction contained "\<next-unread-mailbox\>"
+syntax match muttrcFunction contained "\<parent-message\>"
+syntax match muttrcFunction contained "\<pgp-menu\>"
+syntax match muttrcFunction contained "\<pipe-entry\>"
+syntax match muttrcFunction contained "\<pipe-message\>"
+syntax match muttrcFunction contained "\<post-message\>"
+syntax match muttrcFunction contained "\<postpone-message\>"
+syntax match muttrcFunction contained "\<previous-entry\>"
+syntax match muttrcFunction contained "\<previous-line\>"
+syntax match muttrcFunction contained "\<previous-new\>"
+syntax match muttrcFunction contained "\<previous-new-then-unread\>"
+syntax match muttrcFunction contained "\<previous-page\>"
+syntax match muttrcFunction contained "\<previous-subthread\>"
+syntax match muttrcFunction contained "\<previous-thread\>"
+syntax match muttrcFunction contained "\<previous-undeleted\>"
+syntax match muttrcFunction contained "\<previous-unread\>"
+syntax match muttrcFunction contained "\<print-entry\>"
+syntax match muttrcFunction contained "\<print-message\>"
+syntax match muttrcFunction contained "\<purge-message\>"
+syntax match muttrcFunction contained "\<purge-thread\>"
+syntax match muttrcFunction contained "\<quasi-delete\>"
+syntax match muttrcFunction contained "\<query\>"
+syntax match muttrcFunction contained "\<query-append\>"
+syntax match muttrcFunction contained "\<quit\>"
+syntax match muttrcFunction contained "\<quote-char\>"
+syntax match muttrcFunction contained "\<read-subthread\>"
+syntax match muttrcFunction contained "\<read-thread\>"
+syntax match muttrcFunction contained "\<recall-message\>"
+syntax match muttrcFunction contained "\<reconstruct-thread\>"
+syntax match muttrcFunction contained "\<redraw-screen\>"
+syntax match muttrcFunction contained "\<refresh\>"
+syntax match muttrcFunction contained "\<reload-active\>"
+syntax match muttrcFunction contained "\<rename-attachment\>"
+syntax match muttrcFunction contained "\<rename-file\>"
+syntax match muttrcFunction contained "\<rename-mailbox\>"
+syntax match muttrcFunction contained "\<reply\>"
+syntax match muttrcFunction contained "\<resend-message\>"
+syntax match muttrcFunction contained "\<root-message\>"
+syntax match muttrcFunction contained "\<save-entry\>"
+syntax match muttrcFunction contained "\<save-message\>"
+syntax match muttrcFunction contained "\<search\>"
+syntax match muttrcFunction contained "\<search-next\>"
+syntax match muttrcFunction contained "\<search-opposite\>"
+syntax match muttrcFunction contained "\<search-reverse\>"
+syntax match muttrcFunction contained "\<search-toggle\>"
+syntax match muttrcFunction contained "\<select-entry\>"
+syntax match muttrcFunction contained "\<select-new\>"
+syntax match muttrcFunction contained "\<send-message\>"
+syntax match muttrcFunction contained "\<set-flag\>"
+syntax match muttrcFunction contained "\<shell-escape\>"
+syntax match muttrcFunction contained "\<show-limit\>"
+syntax match muttrcFunction contained "\<show-version\>"
+syntax match muttrcFunction contained "\<sidebar-next\>"
+syntax match muttrcFunction contained "\<sidebar-next-new\>"
+syntax match muttrcFunction contained "\<sidebar-open\>"
+syntax match muttrcFunction contained "\<sidebar-page-down\>"
+syntax match muttrcFunction contained "\<sidebar-page-up\>"
+syntax match muttrcFunction contained "\<sidebar-prev\>"
+syntax match muttrcFunction contained "\<sidebar-prev-new\>"
+syntax match muttrcFunction contained "\<sidebar-toggle-virtual\>"
+syntax match muttrcFunction contained "\<sidebar-toggle-visible\>"
+syntax match muttrcFunction contained "\<skip-quoted\>"
+syntax match muttrcFunction contained "\<smime-menu\>"
+syntax match muttrcFunction contained "\<sort\>"
+syntax match muttrcFunction contained "\<sort-mailbox\>"
+syntax match muttrcFunction contained "\<sort-reverse\>"
+syntax match muttrcFunction contained "\<subscribe\>"
+syntax match muttrcFunction contained "\<subscribe-pattern\>"
+syntax match muttrcFunction contained "\<sync-mailbox\>"
+syntax match muttrcFunction contained "\<tag-entry\>"
+syntax match muttrcFunction contained "\<tag-message\>"
+syntax match muttrcFunction contained "\<tag-pattern\>"
+syntax match muttrcFunction contained "\<tag-prefix\>"
+syntax match muttrcFunction contained "\<tag-prefix-cond\>"
+syntax match muttrcFunction contained "\<tag-subthread\>"
+syntax match muttrcFunction contained "\<tag-thread\>"
+syntax match muttrcFunction contained "\<toggle-disposition\>"
+syntax match muttrcFunction contained "\<toggle-mailboxes\>"
+syntax match muttrcFunction contained "\<toggle-new\>"
+syntax match muttrcFunction contained "\<toggle-quoted\>"
+syntax match muttrcFunction contained "\<toggle-read\>"
+syntax match muttrcFunction contained "\<toggle-recode\>"
+syntax match muttrcFunction contained "\<toggle-subscribed\>"
+syntax match muttrcFunction contained "\<toggle-unlink\>"
+syntax match muttrcFunction contained "\<toggle-write\>"
+syntax match muttrcFunction contained "\<top\>"
+syntax match muttrcFunction contained "\<top-page\>"
+syntax match muttrcFunction contained "\<transpose-chars\>"
+syntax match muttrcFunction contained "\<uncatchup\>"
+syntax match muttrcFunction contained "\<undelete-entry\>"
+syntax match muttrcFunction contained "\<undelete-message\>"
+syntax match muttrcFunction contained "\<undelete-pattern\>"
+syntax match muttrcFunction contained "\<undelete-subthread\>"
+syntax match muttrcFunction contained "\<undelete-thread\>"
+syntax match muttrcFunction contained "\<unsubscribe\>"
+syntax match muttrcFunction contained "\<unsubscribe-pattern\>"
+syntax match muttrcFunction contained "\<untag-pattern\>"
+syntax match muttrcFunction contained "\<upcase-word\>"
+syntax match muttrcFunction contained "\<update-encoding\>"
+syntax match muttrcFunction contained "\<verify-key\>"
+syntax match muttrcFunction contained "\<vfolder-from-query\>"
+syntax match muttrcFunction contained "\<vfolder-window-backward\>"
+syntax match muttrcFunction contained "\<vfolder-window-forward\>"
+syntax match muttrcFunction contained "\<view-attach\>"
+syntax match muttrcFunction contained "\<view-attachments\>"
+syntax match muttrcFunction contained "\<view-file\>"
+syntax match muttrcFunction contained "\<view-mailcap\>"
+syntax match muttrcFunction contained "\<view-name\>"
+syntax match muttrcFunction contained "\<view-text\>"
+syntax match muttrcFunction contained "\<what-key\>"
+syntax match muttrcFunction contained "\<write-fcc\>"
+
+
+
+" Define the default highlighting.
+" Only when an item doesn't have highlighting yet
+
+highlight def link muttrcComment Comment
+highlight def link muttrcEscape SpecialChar
+highlight def link muttrcRXChars SpecialChar
+highlight def link muttrcString String
+highlight def link muttrcRXString String
+highlight def link muttrcRXString2 String
+highlight def link muttrcSpecial Special
+highlight def link muttrcHooks Type
+highlight def link muttrcGroupFlag Type
+highlight def link muttrcGroupDef Macro
+highlight def link muttrcAddrDef muttrcGroupFlag
+highlight def link muttrcRXDef muttrcGroupFlag
+highlight def link muttrcRXPat String
+highlight def link muttrcAliasGroupName Macro
+highlight def link muttrcAliasKey Identifier
+highlight def link muttrcUnAliasKey Identifier
+highlight def link muttrcAliasEncEmail Identifier
+highlight def link muttrcAliasParens Type
+highlight def link muttrcSetNumAssignment Number
+highlight def link muttrcSetBoolAssignment Boolean
+highlight def link muttrcSetQuadAssignment Boolean
+highlight def link muttrcSetStrAssignment String
+highlight def link muttrcEmail Special
+highlight def link muttrcVariableInner Special
+highlight def link muttrcEscapedVariable String
+highlight def link muttrcHeader Type
+highlight def link muttrcKeySpecial SpecialChar
+highlight def link muttrcKey Type
+highlight def link muttrcKeyName SpecialChar
+highlight def link muttrcVarBool Identifier
+highlight def link muttrcVarQuad Identifier
+highlight def link muttrcVarNum Identifier
+highlight def link muttrcVarStr Identifier
+highlight def link muttrcMenu Identifier
+highlight def link muttrcCommand Keyword
+highlight def link muttrcMacroDescr String
+highlight def link muttrcAction Macro
+highlight def link muttrcBadAction Error
+highlight def link muttrcBindFunction Error
+highlight def link muttrcBindMenuList Error
+highlight def link muttrcFunction Macro
+highlight def link muttrcGroupKeyword muttrcCommand
+highlight def link muttrcGroupLine Error
+highlight def link muttrcSubscribeKeyword muttrcCommand
+highlight def link muttrcSubscribeLine Error
+highlight def link muttrcListsKeyword muttrcCommand
+highlight def link muttrcListsLine Error
+highlight def link muttrcAlternateKeyword muttrcCommand
+highlight def link muttrcAlternatesLine Error
+highlight def link muttrcAttachmentsLine muttrcCommand
+highlight def link muttrcAttachmentsFlag Type
+highlight def link muttrcAttachmentsMimeType String
+highlight def link muttrcColorLine Error
+highlight def link muttrcColorContext Error
+highlight def link muttrcColorContextI Identifier
+highlight def link muttrcColorContextH Identifier
+highlight def link muttrcColorKeyword muttrcCommand
+highlight def link muttrcColorField Identifier
+highlight def link muttrcColorCompose Identifier
+highlight def link muttrcColorComposeField Identifier
+highlight def link muttrcColor Type
+highlight def link muttrcColorFG Error
+highlight def link muttrcColorFGI Error
+highlight def link muttrcColorFGH Error
+highlight def link muttrcColorBG Error
+highlight def link muttrcColorBGI Error
+highlight def link muttrcColorBGH Error
+highlight def link muttrcMonoAttrib muttrcColor
+highlight def link muttrcMono muttrcCommand
+highlight def link muttrcSimplePat Identifier
+highlight def link muttrcSimplePatString Macro
+highlight def link muttrcSimplePatMetas Special
+highlight def link muttrcPattern Error
+highlight def link muttrcUnColorLine Error
+highlight def link muttrcUnColorKeyword muttrcCommand
+highlight def link muttrcUnColorIndex Identifier
+highlight def link muttrcShellString muttrcEscape
+highlight def link muttrcRXHooks muttrcCommand
+highlight def link muttrcRXHookNot Type
+highlight def link muttrcPatHooks muttrcCommand
+highlight def link muttrcPatHookNot Type
+highlight def link muttrcFormatConditionals2 Type
+highlight def link muttrcIndexFormatStr muttrcString
+highlight def link muttrcIndexFormatEscapes muttrcEscape
+highlight def link muttrcIndexFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcAliasFormatStr muttrcString
+highlight def link muttrcAliasFormatEscapes muttrcEscape
+highlight def link muttrcAttachFormatStr muttrcString
+highlight def link muttrcAttachFormatEscapes muttrcEscape
+highlight def link muttrcAttachFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcComposeFormatStr muttrcString
+highlight def link muttrcComposeFormatEscapes muttrcEscape
+highlight def link muttrcFolderFormatStr muttrcString
+highlight def link muttrcFolderFormatEscapes muttrcEscape
+highlight def link muttrcFolderFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcMixFormatStr muttrcString
+highlight def link muttrcMixFormatEscapes muttrcEscape
+highlight def link muttrcMixFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcPGPFormatStr muttrcString
+highlight def link muttrcPGPFormatEscapes muttrcEscape
+highlight def link muttrcPGPFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcPGPCmdFormatStr muttrcString
+highlight def link muttrcPGPCmdFormatEscapes muttrcEscape
+highlight def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcStatusFormatStr muttrcString
+highlight def link muttrcStatusFormatEscapes muttrcEscape
+highlight def link muttrcStatusFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcPGPGetKeysFormatStr muttrcString
+highlight def link muttrcPGPGetKeysFormatEscapes muttrcEscape
+highlight def link muttrcSmimeFormatStr muttrcString
+highlight def link muttrcSmimeFormatEscapes muttrcEscape
+highlight def link muttrcSmimeFormatConditionals muttrcFormatConditionals2
+highlight def link muttrcTimeEscapes muttrcEscape
+highlight def link muttrcPGPTimeEscapes muttrcEscape
+highlight def link muttrcStrftimeEscapes Type
+highlight def link muttrcStrftimeFormatStr muttrcString
+highlight def link muttrcFormatErrors Error
+
+highlight def link muttrcBindFunctionNL SpecialChar
+highlight def link muttrcBindKeyNL SpecialChar
+highlight def link muttrcBindMenuListNL SpecialChar
+highlight def link muttrcMacroDescrNL SpecialChar
+highlight def link muttrcMacroBodyNL SpecialChar
+highlight def link muttrcMacroKeyNL SpecialChar
+highlight def link muttrcMacroMenuListNL SpecialChar
+highlight def link muttrcColorMatchCountNL SpecialChar
+highlight def link muttrcColorNL SpecialChar
+highlight def link muttrcColorRXNL SpecialChar
+highlight def link muttrcColorBGNL SpecialChar
+highlight def link muttrcColorFGNL SpecialChar
+highlight def link muttrcAliasNameNL SpecialChar
+highlight def link muttrcAliasENNL SpecialChar
+highlight def link muttrcAliasNL SpecialChar
+highlight def link muttrcUnAliasNL SpecialChar
+highlight def link muttrcAliasGroupDefNL SpecialChar
+highlight def link muttrcAliasEncEmailNL SpecialChar
+highlight def link muttrcPatternNL SpecialChar
+highlight def link muttrcUnColorPatNL SpecialChar
+highlight def link muttrcUnColorAPNL SpecialChar
+highlight def link muttrcUnColorIndexNL SpecialChar
+highlight def link muttrcStringNL SpecialChar
+
+highlight def link muttrcVarDeprecatedBool Error
+highlight def link muttrcVarDeprecatedQuad Error
+highlight def link muttrcVarDeprecatedStr Error
+
+
+let b:current_syntax = "neomuttrc"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+"EOF vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim
diff --git a/runtime/syntax/sshdconfig.vim b/runtime/syntax/sshdconfig.vim
index c3abfff..3924aaf 100644
--- a/runtime/syntax/sshdconfig.vim
+++ b/runtime/syntax/sshdconfig.vim
@@ -6,8 +6,8 @@
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Contributor: Karsten Hopp <karsten@redhat.com>
" Originally: 2009-07-09
-" Last Change: 2016 Dec 28
-" SSH Version: 7.4p1
+" Last Change: 2017 Oct 25
+" SSH Version: 7.6p1
"
" Setup
@@ -224,7 +224,6 @@ syn keyword sshdconfigKeyword TrustedUserCAKeys
syn keyword sshdconfigKeyword UseDNS
syn keyword sshdconfigKeyword UseLogin
syn keyword sshdconfigKeyword UsePAM
-syn keyword sshdconfigKeyword UsePrivilegeSeparation
syn keyword sshdconfigKeyword VersionAddendum
syn keyword sshdconfigKeyword X11DisplayOffset
syn keyword sshdconfigKeyword X11Forwarding
diff --git a/runtime/tutor/tutor.pt b/runtime/tutor/tutor.pt
index d34e71c..a6bf21c 100644
--- a/runtime/tutor/tutor.pt
+++ b/runtime/tutor/tutor.pt
@@ -455,8 +455,8 @@ de Insero.
4. Mova o cursor at o primeiro erro.
- 5. Digite c$ para tornar o resto da linha igual segunda e pressione
- <ESC>.
+ 5. Digite c$ e digite o resto da segunda para torn-las iguais e
+ pressione <ESC>.
---> O fim desta linha precisa de ajuda para ficar igual segunda.
---> O fim desta linha precisa ser corrigido usando o comando c$.
diff --git a/runtime/tutor/tutor.pt.utf-8 b/runtime/tutor/tutor.pt.utf-8
index 89d41bd..be21ca5 100644
--- a/runtime/tutor/tutor.pt.utf-8
+++ b/runtime/tutor/tutor.pt.utf-8
@@ -455,8 +455,8 @@ de Inserção.
4. Mova o cursor até o primeiro erro.
- 5. Digite c$ para tornar o resto da linha igual à segunda e pressione
- <ESC>.
+ 5. Digite c$ e digite o resto da segunda linha para torná-las iguais e
+ pressione <ESC>.
---> O fim desta linha precisa de ajuda para ficar igual à segunda.
---> O fim desta linha precisa ser corrigido usando o comando c$.
diff --git a/src/Makefile b/src/Makefile
index 75e528e..e55e830 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -340,7 +340,7 @@ CClink = $(CC)
# When both GTK+ 2 and GTK+ 3 are possible then GTK+ 2 will be selected.
# To use GTK+ 3 instead use --enable-gui=gtk3 (see below).
#CONF_OPT_GUI = --disable-gtk2-check
-#CONF_OPT_GUI = --enable-gnome2-check
+#CONF_OPT_GUI = --enable-gnome-check
#CONF_OPT_GUI = --disable-gtk3-check
#CONF_OPT_GUI = --disable-motif-check
#CONF_OPT_GUI = --disable-athena-check
@@ -483,9 +483,12 @@ CClink = $(CC)
#CONF_OPT_CHANNEL = --disable-channel
# TERMINAL - Terminal emulator support, :terminal command. Requires the
-# channel feature.
-# Uncomment this when you want terminal emulator support.
+# channel feature. The default is enable for when using "huge" features.
+# Uncomment the first line when you want terminal emulator support for
+# not-huge builds. Uncomment the second line when you don't want terminal
+# emulator support in the huge build.
#CONF_OPT_TERMINAL = --enable-terminal
+#CONF_OPT_TERMINAL = --disable-terminal
# MULTIBYTE - To edit multi-byte characters.
# Uncomment this when you want to edit a multibyte language.
@@ -2100,13 +2103,13 @@ test1 \
test_listchars \
test_search_mbyte \
test_wordcount \
- test3 test11 test12 test14 test15 test17 \
+ test3 test11 test14 test15 test17 \
test29 test30 test36 test37 test39 \
- test40 test42 test44 test45 test48 test49 \
+ test42 test44 test48 test49 \
test50 test52 test55 test59 \
test64 test68 test69 \
- test70 test72 test73 test77 \
- test83 test85 test86 test87 test88 \
+ test70 test72 test73 \
+ test85 test86 test87 test88 \
test94 test95 test99 test108:
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
@@ -2186,6 +2189,7 @@ test_arglist \
test_hlsearch \
test_increment \
test_increment_dbcs \
+ test_ins_complete \
test_job_fails \
test_join \
test_json \
@@ -2239,6 +2243,7 @@ test_arglist \
test_reltime \
test_retab \
test_ruby \
+ test_scroll_opt \
test_scrollbind \
test_search \
test_searchpos \
diff --git a/src/auto/configure b/src/auto/configure
index 4ee62b3..16cbcf3 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -4187,6 +4187,8 @@ $as_echo_n "checking for Darwin (Mac OS X)... " >&6; }
if test "`(uname) 2>/dev/null`" = Darwin; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
+ MACOS_X=yes
+ CPPFLAGS="$CPPFLAGS -DMACOS_X"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-darwin argument" >&5
$as_echo_n "checking --disable-darwin argument... " >&6; }
@@ -4357,10 +4359,10 @@ rm -f core conftest.err conftest.$ac_objext \
fi
if test "$enable_darwin" = "yes"; then
- MACOSX=yes
+ MACOS_X_DARWIN=yes
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
- CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX"
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_DARWIN"
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
@@ -5153,7 +5155,7 @@ rm -f core conftest.err conftest.$ac_objext \
if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
else
- if test "x$MACOSX" = "xyes"; then
+ if test "x$MACOS_X" = "xyes"; then
ext="dylib"
indexes=""
else
@@ -5199,7 +5201,7 @@ $as_echo "yes" >&6; }
LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"${vi_cv_dll_name_lua}\\\" $LUA_CFLAGS"
fi
if test "X$LUA_CFLAGS$LUA_LIBS" != "X" && \
- test "x$MACOSX" = "xyes" && test "x$vi_cv_with_luajit" != "xno" && \
+ test "x$MACOS_X" = "xyes" && test "x$vi_cv_with_luajit" != "xno" && \
test "`(uname -m) 2>/dev/null`" = "x86_64"; then
LUA_LIBS="-pagezero_size 10000 -image_base 100000000 $LUA_LIBS"
fi
@@ -5404,7 +5406,7 @@ $as_echo "not found" >&6; }
for path in "${vi_cv_path_mzscheme_pfx}/lib" "${SCHEME_LIB}"; do
if test "X$path" != "X"; then
- if test "x$MACOSX" = "xyes"; then
+ if test "x$MACOS_X" = "xyes"; then
MZSCHEME_LIBS="-framework Racket"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${path}/libmzscheme3m.a"; then
@@ -5784,7 +5786,7 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
fi
fi
- if test "x$MACOSX" = "xyes"; then
+ if test "x$MACOS_X" = "xyes"; then
dir=/System/Library/Perl
darwindir=$dir/darwin
if test -d $darwindir; then
@@ -6002,7 +6004,7 @@ __:
eof
eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
rm -f -- "${tmp_mkf}"
- if test "x$MACOSX" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
+ if test "x$MACOS_X" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
vi_cv_path_python_plibs="-framework Python"
if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
@@ -6965,7 +6967,7 @@ $as_echo "$tclver - OK" >&6; };
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of Tcl include" >&5
$as_echo_n "checking for location of Tcl include... " >&6; }
- if test "x$MACOSX" != "xyes"; then
+ if test "x$MACOS_X" != "xyes"; then
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
else
tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
@@ -6987,7 +6989,7 @@ $as_echo "<not found>" >&6; }
if test -z "$SKIP_TCL"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of tclConfig.sh script" >&5
$as_echo_n "checking for location of tclConfig.sh script... " >&6; }
- if test "x$MACOSX" != "xyes"; then
+ if test "x$MACOS_X" != "xyes"; then
tclcnf=`echo $tclinc | sed s/include/lib/g`
tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
else
@@ -7475,7 +7477,7 @@ fi
$as_echo_n "checking --enable-terminal argument... " >&6; }
# Check whether --enable-terminal was given.
if test "${enable_terminal+set}" = set; then :
- enableval=$enable_terminal; enable_terminal="yes"
+ enableval=$enable_terminal;
else
enable_terminal="auto"
fi
@@ -7567,7 +7569,7 @@ fi
$as_echo "$enable_fontset" >&6; }
test -z "$with_x" && with_x=yes
-test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
+test "${enable_gui-yes}" != no -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
if test "$with_x" = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to: don't HAVE_X11" >&5
$as_echo "defaulting to: don't HAVE_X11" >&6; }
@@ -8584,7 +8586,7 @@ $as_echo "$ac_cv_small_wchar_t" >&6; }
fi
fi
-test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
+test "x$with_x" = xno -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-gui argument" >&5
$as_echo_n "checking --enable-gui argument... " >&6; }
@@ -8626,7 +8628,7 @@ $as_echo "Sorry, $enable_gui GUI is not supported" >&6; }
SKIP_PHOTON=YES ;;
esac
-elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
+elif test "x$MACOS_X" = "xyes" -a "x$with_x" = "xno" ; then
SKIP_CARBON=
case "$enable_gui_canon" in
no) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no GUI support" >&5
@@ -8804,7 +8806,7 @@ $as_echo "$enable_carbon_check" >&6; };
fi
-if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
+if test "x$MACOS_X" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Carbon GUI" >&5
$as_echo_n "checking for Carbon GUI... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -10624,7 +10626,7 @@ fi
done
-if test "x$MACOSX" = "xyes"; then
+if test "x$MACOS_X" = "xyes"; then
$as_echo "#define NO_STRINGS_WITH_STRING_H 1" >>confdefs.h
else
@@ -11551,7 +11553,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what tgetent() returns for an unknown terminal" >&5
$as_echo_n "checking what tgetent() returns for an unknown terminal... " >&6; }
-if ${vim_cv_tgent+:} false; then :
+if ${vim_cv_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -11577,11 +11579,11 @@ main()
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
- vim_cv_tgent=zero
+ vim_cv_tgetent=zero
else
- vim_cv_tgent=non-zero
+ vim_cv_tgetent=non-zero
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -11590,10 +11592,10 @@ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vim_cv_tgent" >&5
-$as_echo "$vim_cv_tgent" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vim_cv_tgetent" >&5
+$as_echo "$vim_cv_tgetent" >&6; }
-if test "x$vim_cv_tgent" = "xzero" ; then
+if test "x$vim_cv_tgetent" = "xzero" ; then
$as_echo "#define TGETENT_ZERO_ERR 0" >>confdefs.h
fi
@@ -12076,7 +12078,7 @@ for ac_func in fchdir fchown fsync getcwd getpseudotty \
getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
- usleep utime utimes
+ usleep utime utimes mblen
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -14099,28 +14101,51 @@ fi
done
-if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
+if test "x$MACOS_X" = "xyes" -a -n "$PERL"; then
if echo $LIBS | grep -e '-ldl' >/dev/null; then
LIBS=`echo $LIBS | sed s/-ldl//`
PERL_LIBS="$PERL_LIBS -ldl"
fi
fi
-if test "x$MACOSX" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -framework Cocoa" >&5
-$as_echo_n "checking whether we need -framework Cocoa... " >&6; }
- if test "x$features" != "xtiny" || test "x$enable_multibyte" = "xyes"; then
- LIBS=$"$LIBS -framework Cocoa"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if test "$MACOS_X" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need macOS frameworks" >&5
+$as_echo_n "checking whether we need macOS frameworks... " >&6; }
+ if test "$GUITYPE" = "CARBONGUI"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need Carbon" >&5
+$as_echo "yes, we need Carbon" >&6; }
+ LIBS="$LIBS -framework Carbon"
+ elif test "$MACOS_X_DARWIN" = "yes"; then
+ if test "$features" = "tiny"; then
+ OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
+ OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
+ if test "$enable_multibyte" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need CoreServices" >&5
+$as_echo "yes, we need CoreServices" >&6; }
+ LIBS="$LIBS -framework CoreServices"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_mac_conv.c++'`
+ OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_mac_conv.o++'`
+ CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's+-DMACOS_X_DARWIN++'`
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, we need AppKit" >&5
+$as_echo "yes, we need AppKit" >&6; }
+ LIBS="$LIBS -framework AppKit"
+ if test "$features" = "small" -a "$enable_multibyte" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: +multi_byte will be set in favor of +clipboard" >&5
+$as_echo "$as_me: +multi_byte will be set in favor of +clipboard" >&6;}
+ enable_multibyte=yes
+ $as_echo "#define FEAT_MBYTE 1" >>confdefs.h
+
+ fi
+ fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "x$features" = "xtiny"; then
- OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
- OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
- fi
fi
if test "x$MACARCH" = "xboth" && test "x$GUITYPE" = "xCARBONGUI"; then
LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
diff --git a/src/charset.c b/src/charset.c
index 4516816..003949f 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1852,7 +1852,7 @@ vim_isblankline(char_u *lbuf)
* If "what" contains STR2NR_OCT recognize octal numbers
* If "what" contains STR2NR_HEX recognize hex numbers
* If "what" contains STR2NR_FORCE always assume bin/oct/hex.
- * If maxlen > 0, check at a maximum maxlen chars
+ * If maxlen > 0, check at a maximum maxlen chars.
*/
void
vim_str2nr(
@@ -1900,17 +1900,14 @@ vim_str2nr(
if (what & STR2NR_OCT)
{
/* Don't interpret "0", "08" or "0129" as octal. */
- for (n = 1; VIM_ISDIGIT(ptr[n]); ++n)
+ for (n = 1; n != maxlen && VIM_ISDIGIT(ptr[n]); ++n)
{
if (ptr[n] > '7')
{
pre = 0; /* can't be octal */
break;
}
- if (ptr[n] >= '0')
- pre = '0'; /* assume octal */
- if (n == maxlen)
- break;
+ pre = '0'; /* assume octal */
}
}
}
diff --git a/src/config.h.in b/src/config.h.in
index fe68d49..e692d40 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -212,6 +212,7 @@
#undef HAVE_USLEEP
#undef HAVE_UTIME
#undef HAVE_BIND_TEXTDOMAIN_CODESET
+#undef HAVE_MBLEN
/* Define, if needed, for accessing large files. */
#undef _LARGE_FILES
diff --git a/src/configure.ac b/src/configure.ac
index f465096..e287124 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -134,6 +134,8 @@ dnl are a lot of other things we need to change besides GUI stuff
AC_MSG_CHECKING([for Darwin (Mac OS X)])
if test "`(uname) 2>/dev/null`" = Darwin; then
AC_MSG_RESULT(yes)
+ MACOS_X=yes
+ CPPFLAGS="$CPPFLAGS -DMACOS_X"
AC_MSG_CHECKING(--disable-darwin argument)
AC_ARG_ENABLE(darwin,
@@ -208,12 +210,12 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
fi
if test "$enable_darwin" = "yes"; then
- MACOSX=yes
+ MACOS_X_DARWIN=yes
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
dnl TODO: use -arch i386 on Intel machines
dnl Removed -no-cpp-precomp, only for very old compilers.
- CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX"
+ CPPFLAGS="$CPPFLAGS -DMACOS_X_DARWIN"
dnl If Carbon is found, assume we don't want X11
dnl unless it was specifically asked for (--with-x)
@@ -626,7 +628,7 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
else
- if test "x$MACOSX" = "xyes"; then
+ if test "x$MACOS_X" = "xyes"; then
ext="dylib"
indexes=""
else
@@ -670,7 +672,7 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"${vi_cv_dll_name_lua}\\\" $LUA_CFLAGS"
fi
if test "X$LUA_CFLAGS$LUA_LIBS" != "X" && \
- test "x$MACOSX" = "xyes" && test "x$vi_cv_with_luajit" != "xno" && \
+ test "x$MACOS_X" = "xyes" && test "x$vi_cv_with_luajit" != "xno" && \
test "`(uname -m) 2>/dev/null`" = "x86_64"; then
dnl OSX/x64 requires these flags. See http://luajit.org/install.html
LUA_LIBS="-pagezero_size 10000 -image_base 100000000 $LUA_LIBS"
@@ -802,7 +804,7 @@ if test "$enable_mzschemeinterp" = "yes"; then
for path in "${vi_cv_path_mzscheme_pfx}/lib" "${SCHEME_LIB}"; do
if test "X$path" != "X"; then
- if test "x$MACOSX" = "xyes"; then
+ if test "x$MACOS_X" = "xyes"; then
MZSCHEME_LIBS="-framework Racket"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${path}/libmzscheme3m.a"; then
@@ -1059,7 +1061,7 @@ if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
fi
fi
- if test "x$MACOSX" = "xyes"; then
+ if test "x$MACOS_X" = "xyes"; then
dnl Mac OS X 10.2 or later
dir=/System/Library/Perl
darwindir=$dir/darwin
@@ -1201,7 +1203,7 @@ eof
dnl -- delete the lines from make about Entering/Leaving directory
eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
rm -f -- "${tmp_mkf}"
- if test "x$MACOSX" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
+ if test "x$MACOS_X" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
vi_cv_path_python_plibs="-framework Python"
if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
@@ -1269,7 +1271,7 @@ eof
AC_MSG_CHECKING([if -pthread should be used])
threadsafe_flag=
thread_lib=
- dnl if test "x$MACOSX" != "xyes"; then
+ dnl if test "x$MACOS_X" != "xyes"; then
if test "`(uname) 2>/dev/null`" != Darwin; then
test "$GCC" = yes && threadsafe_flag="-pthread"
if test "`(uname) 2>/dev/null`" = FreeBSD; then
@@ -1474,7 +1476,7 @@ eof
AC_MSG_CHECKING([if -pthread should be used])
threadsafe_flag=
thread_lib=
- dnl if test "x$MACOSX" != "xyes"; then
+ dnl if test "x$MACOS_X" != "xyes"; then
if test "`(uname) 2>/dev/null`" != Darwin; then
test "$GCC" = yes && threadsafe_flag="-pthread"
if test "`(uname) 2>/dev/null`" = FreeBSD; then
@@ -1729,7 +1731,7 @@ if test "$enable_tclinterp" = "yes" -o "$enable_tclinterp" = "dynamic"; then
tcldll=`echo 'puts libtcl[[info tclversion]][[info sharedlibextension]]' | $vi_cv_path_tcl -`
AC_MSG_CHECKING(for location of Tcl include)
- if test "x$MACOSX" != "xyes"; then
+ if test "x$MACOS_X" != "xyes"; then
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
else
dnl For Mac OS X 10.3, use the OS-provided framework location
@@ -1749,7 +1751,7 @@ if test "$enable_tclinterp" = "yes" -o "$enable_tclinterp" = "dynamic"; then
fi
if test -z "$SKIP_TCL"; then
AC_MSG_CHECKING(for location of tclConfig.sh script)
- if test "x$MACOSX" != "xyes"; then
+ if test "x$MACOS_X" != "xyes"; then
tclcnf=`echo $tclinc | sed s/include/lib/g`
tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
else
@@ -2035,7 +2037,7 @@ fi
AC_MSG_CHECKING(--enable-terminal argument)
AC_ARG_ENABLE(terminal,
[ --enable-terminal Enable terminal emulation support.],
- [enable_terminal="yes"], [enable_terminal="auto"])
+ , [enable_terminal="auto"])
if test "$enable_terminal" = "yes" || test "$enable_terminal" = "auto" -a "x$features" = "xhuge" ; then
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
AC_MSG_RESULT([cannot use terminal emulator with tiny or small features])
@@ -2093,7 +2095,7 @@ AC_MSG_RESULT($enable_fontset)
dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
test -z "$with_x" && with_x=yes
-test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
+test "${enable_gui-yes}" != no -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
if test "$with_x" = no; then
AC_MSG_RESULT(defaulting to: don't HAVE_X11)
else
@@ -2224,7 +2226,7 @@ else
fi
fi
-test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
+test "x$with_x" = xno -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
AC_MSG_CHECKING(--enable-gui argument)
AC_ARG_ENABLE(gui,
@@ -2258,7 +2260,7 @@ if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
SKIP_PHOTON=YES ;;
esac
-elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
+elif test "x$MACOS_X" = "xyes" -a "x$with_x" = "xno" ; then
SKIP_CARBON=
case "$enable_gui_canon" in
no) AC_MSG_RESULT(no GUI support)
@@ -2380,7 +2382,7 @@ if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
fi
-if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
+if test "x$MACOS_X" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
AC_MSG_CHECKING(for Carbon GUI)
dnl already did the check, just give the message
AC_MSG_RESULT(yes);
@@ -3188,7 +3190,7 @@ AC_TRY_COMPILE([
AC_MSG_RESULT(no))
AC_CHECK_HEADERS(strings.h)
-if test "x$MACOSX" = "xyes"; then
+if test "x$MACOS_X" = "xyes"; then
dnl The strings.h file on OS/X contains a warning and nothing useful.
AC_DEFINE(NO_STRINGS_WITH_STRING_H)
else
@@ -3386,7 +3388,7 @@ if test "x$vim_cv_terminfo" = "xyes" ; then
AC_DEFINE(TERMINFO)
fi
-AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
+AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgetent],
[
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include "confdefs.h"
@@ -3400,15 +3402,15 @@ AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
main()
{char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
]])],[
- vim_cv_tgent=zero
+ vim_cv_tgetent=zero
],[
- vim_cv_tgent=non-zero
+ vim_cv_tgetent=non-zero
],[
AC_MSG_ERROR(failed to compile test program.)
])
])
-if test "x$vim_cv_tgent" = "xzero" ; then
+if test "x$vim_cv_tgetent" = "xzero" ; then
AC_DEFINE(TGETENT_ZERO_ERR, 0)
fi
@@ -3650,7 +3652,7 @@ AC_CHECK_FUNCS(fchdir fchown fsync getcwd getpseudotty \
getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
- usleep utime utimes)
+ usleep utime utimes mblen)
AC_FUNC_FSEEKO
dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
@@ -4277,7 +4279,7 @@ elif test x${DLL} = xdl.h; then
fi
AC_CHECK_HEADERS(setjmp.h)
-if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
+if test "x$MACOS_X" = "xyes" -a -n "$PERL"; then
dnl -ldl must come after DynaLoader.a
if echo $LIBS | grep -e '-ldl' >/dev/null; then
LIBS=`echo $LIBS | sed s/-ldl//`
@@ -4285,22 +4287,40 @@ if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
fi
fi
-if test "x$MACOSX" = "xyes"; then
- AC_MSG_CHECKING(whether we need -framework Cocoa)
- dnl Cocoa is needed with FEAT_CLIPBOARD or FEAT_MBYTE (the former is
- dnl disabled during tiny build)
- if test "x$features" != "xtiny" || test "x$enable_multibyte" = "xyes"; then
- LIBS=$"$LIBS -framework Cocoa"
- AC_MSG_RESULT(yes)
+if test "$MACOS_X" = "yes"; then
+ AC_MSG_CHECKING([whether we need macOS frameworks])
+ if test "$GUITYPE" = "CARBONGUI"; then
+ AC_MSG_RESULT([yes, we need Carbon])
+ LIBS="$LIBS -framework Carbon"
+ elif test "$MACOS_X_DARWIN" = "yes"; then
+ if test "$features" = "tiny"; then
+ dnl Since no FEAT_CLIPBOARD, no longer need for os_macosx.m.
+ OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
+ OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
+ if test "$enable_multibyte" = "yes"; then
+ AC_MSG_RESULT([yes, we need CoreServices])
+ LIBS="$LIBS -framework CoreServices"
+ else
+ dnl Since no FEAT_MBYTE, no longer need for os_mac_conv.c.
+ AC_MSG_RESULT([no])
+ OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_mac_conv.c++'`
+ OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_mac_conv.o++'`
+ CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's+-DMACOS_X_DARWIN++'`
+ fi
+ else
+ AC_MSG_RESULT([yes, we need AppKit])
+ LIBS="$LIBS -framework AppKit"
+ if test "$features" = "small" -a "$enable_multibyte" = "no"; then
+ dnl Since FEAT_CLIPBOARD is to be defined in vim.h for FEAT_SMALL, define
+ dnl FEAT_MBYTE in order not to compromise the interoperability of the
+ dnl clipboard.
+ AC_MSG_NOTICE([+multi_byte will be set in favor of +clipboard])
+ enable_multibyte=yes
+ AC_DEFINE(FEAT_MBYTE)
+ fi
+ fi
else
- AC_MSG_RESULT(no)
- fi
- dnl As mentioned above, tiny build implies os_macosx.m isn't needed.
- dnl Exclude it from OS_EXTRA_SRC so that linker won't complain about
- dnl missing Objective-C symbols.
- if test "x$features" = "xtiny"; then
- OS_EXTRA_SRC=`echo "$OS_EXTRA_SRC" | sed -e 's+os_macosx.m++'`
- OS_EXTRA_OBJ=`echo "$OS_EXTRA_OBJ" | sed -e 's+objects/os_macosx.o++'`
+ AC_MSG_RESULT([no])
fi
fi
if test "x$MACARCH" = "xboth" && test "x$GUITYPE" = "xCARBONGUI"; then
diff --git a/src/digraph.c b/src/digraph.c
index 0b78af7..6b5a5aa 100644
--- a/src/digraph.c
+++ b/src/digraph.c
@@ -321,7 +321,7 @@ static digr_T digraphdefault[] =
};
# else
-# if defined(MACOS) && !defined(FEAT_MBYTE)
+# if defined(MACOS_X) && !defined(FEAT_MBYTE)
/*
* Macintosh digraphs
@@ -449,7 +449,7 @@ static digr_T digraphdefault[] =
{NUL, NUL, NUL}
};
-# else /* !MACOS */
+# else /* !MACOS_X */
# ifdef OLD_DIGRAPHS
diff --git a/src/dosinst.c b/src/dosinst.c
index bb95bd8..94e8669 100644
--- a/src/dosinst.c
+++ b/src/dosinst.c
@@ -80,21 +80,23 @@ char *(remap_choices[]) =
"Do not remap keys for Windows behavior",
"Remap a few keys for Windows behavior (CTRL-V, CTRL-C, CTRL-F, etc)",
};
-int remap_choice = (int)remap_win;
+int remap_choice = (int)remap_no;
char *remap_text = "- %s";
enum
{
mouse_xterm = 1,
- mouse_mswin
+ mouse_mswin,
+ mouse_default
};
char *(mouse_choices[]) =
{
"\nChoose the way how Vim uses the mouse:",
"right button extends selection (the Unix way)",
- "right button has a popup menu (the Windows way)",
+ "right button has a popup menu, left button starts select mode (the Windows way)",
+ "right button has a popup menu, left button starts visual mode",
};
-int mouse_choice = (int)mouse_mswin;
+int mouse_choice = (int)mouse_default;
char *mouse_text = "- The mouse %s";
enum
@@ -155,8 +157,7 @@ get_choice(char **table, int entries)
{
if (idx)
printf("%2d ", idx);
- printf(table[idx]);
- printf("\n");
+ puts(table[idx]);
}
printf("Choice: ");
if (scanf("%d", &answer) != 1)
@@ -1176,6 +1177,8 @@ install_vimrc(int idx)
case mouse_mswin:
fprintf(fd, "behave mswin\n");
break;
+ case mouse_default:
+ break;
}
if ((tfd = fopen("diff.exe", "r")) != NULL)
{
@@ -2205,6 +2208,10 @@ print_cmd_line_help(void)
printf(" Create .bat files for Vim variants in the Windows directory.\n");
printf("-create-vimrc\n");
printf(" Create a default _vimrc file if one does not already exist.\n");
+ printf("-vimrc-remap [no|win]\n");
+ printf(" Remap keys when creating a default _vimrc file.\n");
+ printf("-vimrc-behave [unix|mswin|default]\n");
+ printf(" Set mouse behavior when creating a default _vimrc file.\n");
printf("-install-popup\n");
printf(" Install the Edit-with-Vim context menu entry\n");
printf("-install-openwith\n");
@@ -2260,6 +2267,28 @@ command_line_setup_choices(int argc, char **argv)
*/
init_vimrc_choices();
}
+ else if (strcmp(argv[i], "-vimrc-remap") == 0)
+ {
+ if (i + 1 == argc)
+ break;
+ i++;
+ if (strcmp(argv[i], "no") == 0)
+ remap_choice = remap_no;
+ else if (strcmp(argv[i], "win") == 0)
+ remap_choice = remap_win;
+ }
+ else if (strcmp(argv[i], "-vimrc-behave") == 0)
+ {
+ if (i + 1 == argc)
+ break;
+ i++;
+ if (strcmp(argv[i], "unix") == 0)
+ mouse_choice = mouse_xterm;
+ else if (strcmp(argv[i], "mswin") == 0)
+ mouse_choice = mouse_mswin;
+ else if (strcmp(argv[i], "default") == 0)
+ mouse_choice = mouse_default;
+ }
else if (strcmp(argv[i], "-install-popup") == 0)
{
init_popup_choice();
@@ -2424,8 +2453,7 @@ NULL
printf("\n");
for (i = 0; items[i] != NULL; ++i)
{
- printf(items[i]);
- printf("\n");
+ puts(items[i]);
printf("Hit Enter to continue, b (back) or q (quit help): ");
c = getchar();
rewind(stdin);
diff --git a/src/edit.c b/src/edit.c
index a179620..435e1ed 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -5977,7 +5977,7 @@ insert_special(
* Only use mod_mask for special keys, to avoid things like <S-Space>,
* unless 'allow_modmask' is TRUE.
*/
-#ifdef MACOS
+#ifdef MACOS_X
/* Command-key never produces a normal key */
if (mod_mask & MOD_MASK_CMD)
allow_modmask = TRUE;
@@ -8756,7 +8756,7 @@ ins_start_select(int c)
case K_KPAGEUP:
case K_PAGEDOWN:
case K_KPAGEDOWN:
-# ifdef MACOS
+# ifdef MACOS_X
case K_LEFT:
case K_RIGHT:
case K_UP:
diff --git a/src/eval.c b/src/eval.c
index 8cb91e7..b3e2be5 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -696,6 +696,70 @@ eval_to_bool(
return (int)retval;
}
+ static int
+eval_expr_typval(typval_T *expr, typval_T *argv, int argc, typval_T *rettv)
+{
+ char_u *s;
+ int dummy;
+ char_u buf[NUMBUFLEN];
+
+ if (expr->v_type == VAR_FUNC)
+ {
+ s = expr->vval.v_string;
+ if (s == NULL || *s == NUL)
+ return FAIL;
+ if (call_func(s, (int)STRLEN(s), rettv, argc, argv, NULL,
+ 0L, 0L, &dummy, TRUE, NULL, NULL) == FAIL)
+ return FAIL;
+ }
+ else if (expr->v_type == VAR_PARTIAL)
+ {
+ partial_T *partial = expr->vval.v_partial;
+
+ s = partial_name(partial);
+ if (s == NULL || *s == NUL)
+ return FAIL;
+ if (call_func(s, (int)STRLEN(s), rettv, argc, argv, NULL,
+ 0L, 0L, &dummy, TRUE, partial, NULL) == FAIL)
+ return FAIL;
+ }
+ else
+ {
+ s = get_tv_string_buf_chk(expr, buf);
+ if (s == NULL)
+ return FAIL;
+ s = skipwhite(s);
+ if (eval1(&s, rettv, TRUE) == FAIL)
+ return FAIL;
+ if (*s != NUL) /* check for trailing chars after expr */
+ {
+ EMSG2(_(e_invexpr2), s);
+ return FAIL;
+ }
+ }
+ return OK;
+}
+
+/*
+ * Like eval_to_bool() but using a typval_T instead of a string.
+ * Works for string, funcref and partial.
+ */
+ int
+eval_expr_to_bool(typval_T *expr, int *error)
+{
+ typval_T rettv;
+ int res;
+
+ if (eval_expr_typval(expr, NULL, 0, &rettv) == FAIL)
+ {
+ *error = TRUE;
+ return FALSE;
+ }
+ res = (get_tv_number_chk(&rettv, error) != 0);
+ clear_tv(&rettv);
+ return res;
+}
+
/*
* Top level evaluation function, returning a string. If "skip" is TRUE,
* only parsing to "nextcmd" is done, without reporting errors. Return
@@ -992,8 +1056,13 @@ call_vim_function(
if (str_arg_only)
len = 0;
else
- /* Recognize a number argument, the others must be strings. */
+ {
+ /* Recognize a number argument, the others must be strings. A dash
+ * is a string too. */
vim_str2nr(argv[i], NULL, &len, STR2NR_ALL, &n, NULL, 0);
+ if (len == 1 && *argv[i] == '-')
+ len = 0;
+ }
if (len != 0 && len == (int)STRLEN(argv[i]))
{
argvars[i].v_type = VAR_NUMBER;
@@ -9971,44 +10040,13 @@ filter_map_one(typval_T *tv, typval_T *expr, int map, int *remp)
{
typval_T rettv;
typval_T argv[3];
- char_u buf[NUMBUFLEN];
- char_u *s;
int retval = FAIL;
- int dummy;
copy_tv(tv, &vimvars[VV_VAL].vv_tv);
argv[0] = vimvars[VV_KEY].vv_tv;
argv[1] = vimvars[VV_VAL].vv_tv;
- if (expr->v_type == VAR_FUNC)
- {
- s = expr->vval.v_string;
- if (call_func(s, (int)STRLEN(s), &rettv, 2, argv, NULL,
- 0L, 0L, &dummy, TRUE, NULL, NULL) == FAIL)
- goto theend;
- }
- else if (expr->v_type == VAR_PARTIAL)
- {
- partial_T *partial = expr->vval.v_partial;
-
- s = partial_name(partial);
- if (call_func(s, (int)STRLEN(s), &rettv, 2, argv, NULL,
- 0L, 0L, &dummy, TRUE, partial, NULL) == FAIL)
- goto theend;
- }
- else
- {
- s = get_tv_string_buf_chk(expr, buf);
- if (s == NULL)
- goto theend;
- s = skipwhite(s);
- if (eval1(&s, &rettv, TRUE) == FAIL)
- goto theend;
- if (*s != NUL) /* check for trailing chars after expr */
- {
- EMSG2(_(e_invexpr2), s);
- goto theend;
- }
- }
+ if (eval_expr_typval(expr, argv, 2, &rettv) == FAIL)
+ goto theend;
if (map)
{
/* map(): replace the list item value */
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 55d2295..25536af 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -24,7 +24,7 @@
# include <float.h>
#endif
-#ifdef MACOS
+#ifdef MACOS_X
# include <time.h> /* for time_t */
#endif
@@ -5539,14 +5539,13 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef __BEOS__
"beos",
#endif
-#ifdef MACOS
- "mac",
-#endif
-#if defined(MACOS_X_UNIX)
- "macunix", /* built with 'darwin' enabled */
-#endif
-#if defined(__APPLE__) && __APPLE__ == 1
- "osx", /* built with or without 'darwin' enabled */
+#ifdef MACOS_X
+ "mac", /* Mac OS X (and, once, Mac OS Classic) */
+ "osx", /* Mac OS X */
+# ifdef MACOS_X_DARWIN
+ "macunix", /* Mac OS X, with the darwin feature */
+ "osxdarwin", /* synonym for macunix */
+# endif
#endif
#ifdef __QNX__
"qnx",
@@ -9532,13 +9531,12 @@ f_searchdecl(typval_T *argvars, typval_T *rettv)
searchpair_cmn(typval_T *argvars, pos_T *match_pos)
{
char_u *spat, *mpat, *epat;
- char_u *skip;
+ typval_T *skip;
int save_p_ws = p_ws;
int dir;
int flags = 0;
char_u nbuf1[NUMBUFLEN];
char_u nbuf2[NUMBUFLEN];
- char_u nbuf3[NUMBUFLEN];
int retval = 0; /* default: FAIL */
long lnum_stop = 0;
long time_limit = 0;
@@ -9572,10 +9570,16 @@ searchpair_cmn(typval_T *argvars, pos_T *match_pos)
/* Optional fifth argument: skip expression */
if (argvars[3].v_type == VAR_UNKNOWN
|| argvars[4].v_type == VAR_UNKNOWN)
- skip = (char_u *)"";
+ skip = NULL;
else
{
- skip = get_tv_string_buf_chk(&argvars[4], nbuf3);
+ skip = &argvars[4];
+ if (skip->v_type != VAR_FUNC && skip->v_type != VAR_PARTIAL
+ && skip->v_type != VAR_STRING)
+ {
+ /* Type error */
+ goto theend;
+ }
if (argvars[5].v_type != VAR_UNKNOWN)
{
lnum_stop = (long)get_tv_number_chk(&argvars[5], NULL);
@@ -9591,8 +9595,6 @@ searchpair_cmn(typval_T *argvars, pos_T *match_pos)
#endif
}
}
- if (skip == NULL)
- goto theend; /* type error */
retval = do_searchpair(spat, mpat, epat, dir, skip, flags,
match_pos, lnum_stop, time_limit);
@@ -9646,7 +9648,7 @@ do_searchpair(
char_u *mpat, /* middle pattern */
char_u *epat, /* end pattern */
int dir, /* BACKWARD or FORWARD */
- char_u *skip, /* skip expression */
+ typval_T *skip, /* skip expression */
int flags, /* SP_SETPCMARK and other SP_ values */
pos_T *match_pos,
linenr_T lnum_stop, /* stop at this line if not zero */
@@ -9663,6 +9665,7 @@ do_searchpair(
int n;
int r;
int nest = 1;
+ int use_skip = FALSE;
int err;
int options = SEARCH_KEEP;
proftime_T tm;
@@ -9691,6 +9694,14 @@ do_searchpair(
if (flags & SP_START)
options |= SEARCH_START;
+ if (skip != NULL)
+ {
+ /* Empty string means to not use the skip expression. */
+ if (skip->v_type == VAR_STRING || skip->v_type == VAR_FUNC)
+ use_skip = skip->vval.v_string != NULL
+ && *skip->vval.v_string != NUL;
+ }
+
save_cursor = curwin->w_cursor;
pos = curwin->w_cursor;
CLEAR_POS(&firstpos);
@@ -9722,11 +9733,12 @@ do_searchpair(
options &= ~SEARCH_START;
/* If the skip pattern matches, ignore this match. */
- if (*skip != NUL)
+ if (use_skip)
{
save_pos = curwin->w_cursor;
curwin->w_cursor = pos;
- r = eval_to_bool(skip, &err, NULL, FALSE);
+ err = FALSE;
+ r = eval_expr_to_bool(skip, &err);
curwin->w_cursor = save_pos;
if (err)
{
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 036569f..547d1ac 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -10715,9 +10715,12 @@ eval_vars(
if (*s == '<') /* "#<99" uses v:oldfiles */
++s;
i = (int)getdigits(&s);
+ if (s == src + 2 && src[1] == '-')
+ /* just a minus sign, don't skip over it */
+ s--;
*usedlen = (int)(s - src); /* length of what we expand */
- if (src[1] == '<')
+ if (src[1] == '<' && i != 0)
{
if (*usedlen < 2)
{
@@ -10740,6 +10743,8 @@ eval_vars(
}
else
{
+ if (i == 0 && src[1] == '<' && *usedlen > 1)
+ *usedlen = 1;
buf = buflist_findnr(i);
if (buf == NULL)
{
diff --git a/src/ex_getln.c b/src/ex_getln.c
index ba6a403..0270477 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1715,17 +1715,27 @@ getcmdline(
if (p_is && !cmd_silent && (firstc == '/' || firstc == '?'))
{
pos_T t;
- int search_flags = SEARCH_KEEP + SEARCH_NOOF;
+ int search_flags = SEARCH_NOOF;
+ if (ccline.cmdlen == 0)
+ goto cmdline_not_changed;
+
+ save_last_search_pattern();
cursor_off();
out_flush();
if (c == Ctrl_G)
{
t = match_end;
+ if (LT_POS(match_start, match_end))
+ /* start searching at the end of the match
+ * not at the beginning of the next column */
+ (void)decl(&t);
search_flags += SEARCH_COL;
}
else
t = match_start;
+ if (!p_hls)
+ search_flags += SEARCH_KEEP;
++emsg_off;
i = searchit(curwin, curbuf, &t,
c == Ctrl_G ? FORWARD : BACKWARD,
@@ -1777,6 +1787,7 @@ getcmdline(
# endif
old_botline = curwin->w_botline;
update_screen(NOT_VALID);
+ restore_last_search_pattern();
redrawcmdline();
}
else
@@ -1934,12 +1945,18 @@ cmdline_changed:
}
incsearch_postponed = FALSE;
curwin->w_cursor = search_start; /* start at old position */
+ save_last_search_pattern();
/* If there is no command line, don't do anything */
if (ccline.cmdlen == 0)
+ {
i = 0;
+ SET_NO_HLSEARCH(TRUE); /* turn off previous highlight */
+ redraw_all_later(SOME_VALID);
+ }
else
{
+ int search_flags = SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK;
cursor_off(); /* so the user knows we're busy */
out_flush();
++emsg_off; /* So it doesn't beep if bad expr */
@@ -1947,8 +1964,10 @@ cmdline_changed:
/* Set the time limit to half a second. */
profile_setlimit(500L, &tm);
#endif
+ if (!p_hls)
+ search_flags += SEARCH_KEEP;
i = do_search(NULL, firstc, ccline.cmdbuff, count,
- SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK,
+ search_flags,
#ifdef FEAT_RELTIME
&tm, NULL
#else
@@ -2005,6 +2024,7 @@ cmdline_changed:
save_cmdline(&save_ccline);
update_screen(SOME_VALID);
restore_cmdline(&save_ccline);
+ restore_last_search_pattern();
/* Leave it at the end to make CTRL-R CTRL-W work. */
if (i != 0)
@@ -2070,7 +2090,7 @@ returncmd:
curwin->w_botline = old_botline;
highlight_match = FALSE;
validate_cursor(); /* needed for TAB */
- redraw_later(SOME_VALID);
+ redraw_all_later(SOME_VALID);
}
#endif
diff --git a/src/feature.h b/src/feature.h
index 37e4d31..e90d755 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -61,10 +61,10 @@
*/
#if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \
&& !defined(FEAT_BIG) && !defined(FEAT_HUGE)
-# if defined(UNIX) || defined(WIN3264) || defined(MACOS)
+# if defined(UNIX) || defined(WIN3264) || defined(MACOS_X)
# define FEAT_HUGE
# else
-# if defined(MSWIN) || defined(VMS) || defined(MACOS) || defined(AMIGA)
+# if defined(MSWIN) || defined(VMS) || defined(AMIGA)
# define FEAT_BIG
# else
# define FEAT_NORMAL
@@ -363,7 +363,7 @@
*/
#ifdef FEAT_NORMAL
# define FEAT_EVAL
-# if defined(HAVE_FLOAT_FUNCS) || defined(WIN3264) || defined(MACOS)
+# if defined(HAVE_FLOAT_FUNCS) || defined(WIN3264) || defined(MACOS_X)
# define FEAT_FLOAT
# endif
# if defined(HAVE_STDINT_H) || defined(WIN3264) || (VIM_SIZEOF_LONG >= 8)
@@ -777,7 +777,7 @@
* there is no terminal version, and on Windows we can't figure out how to
* fork one off with :gui.
*/
-#if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_UNIX))
+#if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_DARWIN))
# define ALWAYS_USE_GUI
#endif
diff --git a/src/fileio.c b/src/fileio.c
index 5755156..87b85cf 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -68,7 +68,7 @@ static int au_find_group(char_u *name);
# define FIO_PUT_CP(x) (((x) & 0xffff) << 16) /* put codepage in top word */
# define FIO_GET_CP(x) (((x)>>16) & 0xffff) /* get codepage from top word */
# endif
-# ifdef MACOS_X
+# ifdef MACOS_CONVERT
# define FIO_MACROMAN 0x20 /* convert MacRoman */
# endif
# define FIO_ENDIAN_L 0x80 /* little endian */
@@ -127,7 +127,7 @@ static int make_bom(char_u *buf, char_u *name);
# ifdef WIN3264
static int get_win_fio_flags(char_u *ptr);
# endif
-# ifdef MACOS_X
+# ifdef MACOS_CONVERT
static int get_mac_fio_flags(char_u *ptr);
# endif
#endif
@@ -1088,7 +1088,7 @@ retry:
fio_flags = get_win_fio_flags(fenc);
# endif
-# ifdef MACOS_X
+# ifdef MACOS_CONVERT
/* Conversion from Apple MacRoman to latin1 or UTF-8 */
if (fio_flags == 0)
fio_flags = get_mac_fio_flags(fenc);
@@ -1274,7 +1274,7 @@ retry:
else if (fio_flags & FIO_CODEPAGE)
size = size / ICONV_MULT; /* also worst case */
# endif
-# ifdef MACOS_X
+# ifdef MACOS_CONVERT
else if (fio_flags & FIO_MACROMAN)
size = size / ICONV_MULT; /* also worst case */
# endif
@@ -1956,17 +1956,17 @@ retry:
{
if (fio_flags & FIO_ENDIAN_L)
{
- u8c = (*--p << 24);
- u8c += (*--p << 16);
- u8c += (*--p << 8);
+ u8c = (unsigned)*--p << 24;
+ u8c += (unsigned)*--p << 16;
+ u8c += (unsigned)*--p << 8;
u8c += *--p;
}
else /* big endian */
{
u8c = *--p;
- u8c += (*--p << 8);
- u8c += (*--p << 16);
- u8c += (*--p << 24);
+ u8c += (unsigned)*--p << 8;
+ u8c += (unsigned)*--p << 16;
+ u8c += (unsigned)*--p << 24;
}
}
else /* UTF-8 */
@@ -4200,20 +4200,6 @@ buf_write(
}
}
-#ifdef MACOS_CLASSIC /* TODO: Is it need for MACOS_X? (Dany) */
- /*
- * Before risking to lose the original file verify if there's
- * a resource fork to preserve, and if cannot be done warn
- * the users. This happens when overwriting without backups.
- */
- if (backup == NULL && overwriting && !append)
- if (mch_has_resource_fork(fname))
- {
- errmsg = (char_u *)_("E460: The resource fork would be lost (add ! to override)");
- goto restore_backup;
- }
-#endif
-
#ifdef VMS
vms_remove_version(fname); /* remove version */
#endif
@@ -4271,7 +4257,7 @@ buf_write(
}
# endif
-# ifdef MACOS_X
+# ifdef MACOS_CONVERT
if (converted && wb_flags == 0 && (wb_flags = get_mac_fio_flags(fenc)) != 0)
{
write_info.bw_conv_buflen = bufsize * 3;
@@ -4474,13 +4460,7 @@ restore_backup:
}
write_info.bw_fd = fd;
-#if defined(MACOS_CLASSIC) || defined(WIN3264)
- /* TODO: Is it need for MACOS_X? (Dany) */
- /*
- * On macintosh copy the original files attributes (i.e. the backup)
- * This is done in order to preserve the resource fork and the
- * Finder attribute (label, comments, custom icons, file creator)
- */
+#if defined(WIN3264)
if (backup != NULL && overwriting && !append)
{
if (backup_copy)
@@ -5199,10 +5179,6 @@ nofail:
got_int |= prev_got_int;
-#ifdef MACOS_CLASSIC /* TODO: Is it need for MACOS_X? (Dany) */
- /* Update machine specific information. */
- mch_post_buffer_write(buf);
-#endif
return retval;
}
@@ -5972,7 +5948,7 @@ get_win_fio_flags(char_u *ptr)
}
#endif
-#ifdef MACOS_X
+#ifdef MACOS_CONVERT
/*
* Check "ptr" for a Carbon supported encoding and return the FIO_ flags
* needed for the internal conversion to/from utf-8 or latin1.
diff --git a/src/getchar.c b/src/getchar.c
index ef42d9c..455c013 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1893,7 +1893,7 @@ char_avail(void)
int retval;
#ifdef FEAT_EVAL
- /* When test_disable_char_avail(1) was called pretend there is no
+ /* When test_override("char_avail", 1) was called pretend there is no
* typeahead. */
if (disable_char_avail_for_testing)
return FALSE;
@@ -5257,7 +5257,7 @@ check_map(
}
#endif
-#if defined(MSWIN) || defined(MACOS)
+#if defined(MSWIN) || defined(MACOS_X)
#define VIS_SEL (VISUAL+SELECTMODE) /* abbreviation */
@@ -5308,7 +5308,7 @@ static struct initmap
# endif
#endif
-#if defined(MACOS)
+#if defined(MACOS_X)
/* Use the Standard MacOS binding. */
/* paste, copy and cut */
{(char_u *)"<D-v> \"*P", NORMAL},
@@ -5329,7 +5329,7 @@ static struct initmap
void
init_mappings(void)
{
-#if defined(MSWIN) ||defined(MACOS)
+#if defined(MSWIN) || defined(MACOS_X)
int i;
for (i = 0; i < (int)(sizeof(initmappings) / sizeof(struct initmap)); ++i)
@@ -5337,7 +5337,8 @@ init_mappings(void)
#endif
}
-#if defined(MSWIN) || defined(FEAT_CMDWIN) || defined(MACOS) || defined(PROTO)
+#if defined(MSWIN) || defined(FEAT_CMDWIN) || defined(MACOS_X) \
+ || defined(PROTO)
/*
* Add a mapping "map" for mode "mode".
* Need to put string in allocated memory, because do_map() will modify it.
diff --git a/src/globals.h b/src/globals.h
index 31bb1bd..3183632 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1425,7 +1425,7 @@ EXTERN char_u e_failed[] INIT(= N_("E472: Command failed"));
#if defined(FEAT_GUI) && defined(FEAT_XFONTSET)
EXTERN char_u e_fontset[] INIT(= N_("E234: Unknown fontset: %s"));
#endif
-#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(MACOS) \
+#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MAC) \
|| defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MSWIN)
EXTERN char_u e_font[] INIT(= N_("E235: Unknown font: %s"));
#endif
@@ -1545,7 +1545,7 @@ EXTERN char_u e_readerrf[] INIT(= N_("E47: Error while reading errorfile"));
EXTERN char_u e_sandbox[] INIT(= N_("E48: Not allowed in sandbox"));
#endif
EXTERN char_u e_secure[] INIT(= N_("E523: Not allowed here"));
-#if defined(AMIGA) || defined(MACOS) || defined(MSWIN) \
+#if defined(AMIGA) || defined(MACOS_X) || defined(MSWIN) \
|| defined(UNIX) || defined(VMS)
EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
#endif
@@ -1592,7 +1592,7 @@ EXTERN char_u e_invalidreg[] INIT(= N_("E850: Invalid register name"));
#endif
EXTERN char_u e_dirnotf[] INIT(= N_("E919: Directory not found in '%s': \"%s\""));
-#ifdef MACOS_X_UNIX
+#ifdef FEAT_GUI_MAC
EXTERN short disallow_gui INIT(= FALSE);
#endif
diff --git a/src/gui.c b/src/gui.c
index fe91062..8e48d3c 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -37,7 +37,7 @@ static void gui_set_fg_color(char_u *name);
static void gui_set_bg_color(char_u *name);
static win_T *xy2win(int x, int y);
-#if defined(UNIX) && !defined(MACOS_X) && !defined(__APPLE__)
+#if defined(UNIX) && !defined(FEAT_GUI_MAC)
# define MAY_FORK
static void gui_do_fork(void);
@@ -2429,9 +2429,14 @@ gui_outstr_nowrap(
int cl; /* byte length of current char */
int comping; /* current char is composing */
int scol = col; /* screen column */
- int curr_wide; /* use 'guifontwide' */
+ int curr_wide = FALSE; /* use 'guifontwide' */
int prev_wide = FALSE;
int wide_changed;
+# ifdef WIN3264
+ int sep_comp = FALSE; /* Don't separate composing chars. */
+# else
+ int sep_comp = TRUE; /* Separate composing chars. */
+# endif
/* Break the string at a composing character, it has to be drawn on
* top of the previous character. */
@@ -2441,17 +2446,20 @@ gui_outstr_nowrap(
{
c = utf_ptr2char(s + i);
cn = utf_char2cells(c);
- if (cn > 1
-# ifdef FEAT_XFONTSET
- && fontset == NOFONTSET
-# endif
- && wide_font != NOFONT)
- curr_wide = TRUE;
- else
- curr_wide = FALSE;
comping = utf_iscomposing(c);
if (!comping) /* count cells from non-composing chars */
cells += cn;
+ if (!comping || sep_comp)
+ {
+ if (cn > 1
+# ifdef FEAT_XFONTSET
+ && fontset == NOFONTSET
+# endif
+ && wide_font != NOFONT)
+ curr_wide = TRUE;
+ else
+ curr_wide = FALSE;
+ }
cl = utf_ptr2len(s + i);
if (cl == 0) /* hit end of string */
len = i + cl; /* len must be wrong "cannot happen" */
@@ -2460,7 +2468,8 @@ gui_outstr_nowrap(
/* Print the string so far if it's the last character or there is
* a composing character. */
- if (i + cl >= len || (comping && i > start) || wide_changed
+ if (i + cl >= len || (comping && sep_comp && i > start)
+ || wide_changed
# if defined(FEAT_GUI_X11)
|| (cn > 1
# ifdef FEAT_XFONTSET
@@ -2472,7 +2481,7 @@ gui_outstr_nowrap(
# endif
)
{
- if (comping || wide_changed)
+ if ((comping && sep_comp) || wide_changed)
thislen = i - start;
else
thislen = i - start + cl;
@@ -2490,7 +2499,7 @@ gui_outstr_nowrap(
cells = 0;
/* Adjust to not draw a character which width is changed
* against with last one. */
- if (wide_changed && !comping)
+ if (wide_changed && !(comping && sep_comp))
{
scol -= cn;
cl = 0;
@@ -2509,9 +2518,9 @@ gui_outstr_nowrap(
# endif
}
/* Draw a composing char on top of the previous char. */
- if (comping)
+ if (comping && sep_comp)
{
-# if (defined(__APPLE_CC__) || defined(__MRC__)) && TARGET_API_MAC_CARBON
+# if defined(__APPLE_CC__) && TARGET_API_MAC_CARBON
/* Carbon ATSUI autodraws composing char over previous char */
gui_mch_draw_string(gui.row, scol, s + i, cl,
draw_flags | DRAW_TRANSP);
diff --git a/src/gui_mac.c b/src/gui_mac.c
index bbb0857..93feabe 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -267,9 +267,7 @@ static struct
/* {XK_Help, '%', '1'}, */
/* {XK_Undo, '&', '8'}, */
/* {XK_BackSpace, 'k', 'b'}, */
-#ifndef MACOS_X
- {vk_Delete, 'k', 'b'},
-#endif
+/* {vk_Delete, 'k', 'b'}, */
{vk_Insert, 'k', 'I'},
{vk_FwdDelete, 'k', 'D'},
{vk_Home, 'k', 'h'},
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 4eaa2be..67895cc 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -6295,8 +6295,8 @@ gui_mch_draw_string(
if (enc_utf8 && n < len && unicodebuf != NULL)
{
- /* Output UTF-8 characters. Caller has already separated
- * composing characters. */
+ /* Output UTF-8 characters. Composing characters should be
+ * handled here. */
int i;
int wlen; /* string length in words */
int clen; /* string length in characters */
@@ -6320,9 +6320,16 @@ gui_mch_draw_string(
{
unicodebuf[wlen++] = c;
}
- cw = utf_char2cells(c);
- if (cw > 2) /* don't use 4 for unprintable char */
- cw = 1;
+
+ if (utf_iscomposing(c))
+ cw = 0;
+ else
+ {
+ cw = utf_char2cells(c);
+ if (cw > 2) /* don't use 4 for unprintable char */
+ cw = 1;
+ }
+
if (unicodepdy != NULL)
{
/* Use unicodepdy to make characters fit as we expect, even
@@ -6337,7 +6344,7 @@ gui_mch_draw_string(
unicodepdy[wlen - 1] = cw * gui.char_width;
}
cells += cw;
- i += utfc_ptr2len_len(text + i, len - i);
+ i += utf_ptr2len_len(text + i, len - i);
++clen;
}
#if defined(FEAT_DIRECTX)
diff --git a/src/if_python.c b/src/if_python.c
index cbc7d97..f9fc5e1 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -70,10 +70,6 @@
# undef PY_SSIZE_T_CLEAN
#endif
-#if defined(MACOS) && !defined(MACOS_X_UNIX)
-# include "macglue.h"
-# include <CodeFragments.h>
-#endif
#undef main /* Defined in python.h - aargh */
#undef HAVE_FCNTL_H /* Clash with os_win32.h */
@@ -948,11 +944,7 @@ Python_Init(void)
Py_NoSiteFlag++;
#endif
-#if !defined(MACOS) || defined(MACOS_X_UNIX)
Py_Initialize();
-#else
- PyMac_Initialize();
-#endif
#if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
/* 'import site' explicitly. */
@@ -1024,9 +1016,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
#ifndef PY_CAN_RECURSE
static int recursive = 0;
#endif
-#if defined(MACOS) && !defined(MACOS_X_UNIX)
- GrafPtr oldPort;
-#endif
#if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
char *saved_locale;
#endif
@@ -1045,12 +1034,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
if (python_end_called)
return;
-#if defined(MACOS) && !defined(MACOS_X_UNIX)
- GetPort(&oldPort);
- /* Check if the Python library is available */
- if ((Ptr)PyMac_Initialize == (Ptr)kUnresolvedCFragSymbolAddress)
- goto theend;
-#endif
if (Python_Init())
goto theend;
@@ -1099,9 +1082,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
Python_Lock_Vim(); /* enter vim */
PythonIO_Flush();
-#if defined(MACOS) && !defined(MACOS_X_UNIX)
- SetPort(oldPort);
-#endif
theend:
#ifndef PY_CAN_RECURSE
diff --git a/src/if_python3.c b/src/if_python3.c
index ac370fd..7aa5f03 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -74,10 +74,6 @@
#include <Python.h>
-#if defined(MACOS) && !defined(MACOS_X_UNIX)
-# include "macglue.h"
-# include <CodeFragments.h>
-#endif
#undef main /* Defined in python.h - aargh */
#undef HAVE_FCNTL_H /* Clash with os_win32.h */
@@ -871,11 +867,8 @@ Python3_Init(void)
PyImport_AppendInittab("vim", Py3Init_vim);
-#if !defined(MACOS) || defined(MACOS_X_UNIX)
Py_Initialize();
-#else
- PyMac_Initialize();
-#endif
+
/* Initialise threads, and below save the state using
* PyEval_SaveThread. Without the call to PyEval_SaveThread, thread
* specific state (such as the system trace hook), will be lost
@@ -929,9 +922,6 @@ fail:
static void
DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
{
-#if defined(MACOS) && !defined(MACOS_X_UNIX)
- GrafPtr oldPort;
-#endif
#if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
char *saved_locale;
#endif
@@ -942,12 +932,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
if (python_end_called)
goto theend;
-#if defined(MACOS) && !defined(MACOS_X_UNIX)
- GetPort(&oldPort);
- /* Check if the Python library is available */
- if ((Ptr)PyMac_Initialize == (Ptr)kUnresolvedCFragSymbolAddress)
- goto theend;
-#endif
if (Python3_Init())
goto theend;
@@ -992,9 +976,6 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
Python_Lock_Vim(); /* enter vim */
PythonIO_Flush();
-#if defined(MACOS) && !defined(MACOS_X_UNIX)
- SetPort(oldPort);
-#endif
theend:
return; /* keeps lint happy */
diff --git a/src/if_ruby.c b/src/if_ruby.c
index f3434a9..ca31c1a 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -127,7 +127,7 @@
#undef _
/* T_DATA defined both by Ruby and Mac header files, hack around it... */
-#if defined(MACOS_X_UNIX) || defined(macintosh)
+#if defined(MACOS_X)
# define __OPENTRANSPORT__
# define __OPENTRANSPORTPROTOCOL__
# define __OPENTRANSPORTPROVIDERS__
@@ -251,7 +251,8 @@ static void ruby_vim_init(void);
# endif
# define rb_lastline_get dll_rb_lastline_get
# define rb_lastline_set dll_rb_lastline_set
-# define rb_load_protect dll_rb_load_protect
+# define rb_protect dll_rb_protect
+# define rb_load dll_rb_load
# ifndef RUBY19_OR_LATER
# define rb_num2long dll_rb_num2long
# endif
@@ -376,7 +377,8 @@ static unsigned long (*dll_rb_num2uint) (VALUE);
# endif
static VALUE (*dll_rb_lastline_get) (void);
static void (*dll_rb_lastline_set) (VALUE);
-static void (*dll_rb_load_protect) (VALUE, int, int*);
+static void (*dll_rb_protect) (VALUE (*)(VALUE), int, int*);
+static void (*dll_rb_load) (VALUE, int);
static long (*dll_rb_num2long) (VALUE);
static unsigned long (*dll_rb_num2ulong) (VALUE);
static VALUE (*dll_rb_obj_alloc) (VALUE);
@@ -568,7 +570,8 @@ static struct
# endif
{"rb_lastline_get", (RUBY_PROC*)&dll_rb_lastline_get},
{"rb_lastline_set", (RUBY_PROC*)&dll_rb_lastline_set},
- {"rb_load_protect", (RUBY_PROC*)&dll_rb_load_protect},
+ {"rb_protect", (RUBY_PROC*)&dll_rb_protect},
+ {"rb_load", (RUBY_PROC*)&dll_rb_load},
{"rb_num2long", (RUBY_PROC*)&dll_rb_num2long},
{"rb_num2ulong", (RUBY_PROC*)&dll_rb_num2ulong},
{"rb_obj_alloc", (RUBY_PROC*)&dll_rb_obj_alloc},
@@ -831,7 +834,8 @@ void ex_rubyfile(exarg_T *eap)
if (ensure_ruby_initialized())
{
- rb_load_protect(rb_str_new2((char *) eap->arg), 0, &state);
+ rb_protect((VALUE (*)(VALUE))rb_load, rb_str_new2((char *)eap->arg),
+ &state);
if (state) error_print(state);
}
}
diff --git a/src/keymap.h b/src/keymap.h
index 52ba319..7cb5c69 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -479,7 +479,7 @@ enum key_extra
#define MOD_MASK_2CLICK 0x20 /* use MOD_MASK_MULTI_CLICK */
#define MOD_MASK_3CLICK 0x40 /* use MOD_MASK_MULTI_CLICK */
#define MOD_MASK_4CLICK 0x60 /* use MOD_MASK_MULTI_CLICK */
-#ifdef MACOS
+#ifdef MACOS_X
# define MOD_MASK_CMD 0x80
#endif
diff --git a/src/macros.h b/src/macros.h
index c320a3f..1b54b91 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -209,18 +209,13 @@
# define mch_lstat(n, p) mch_stat((n), (p))
#endif
-#ifdef MACOS_CLASSIC
-/* MacOS classic doesn't support perm but MacOS X does. */
-# define mch_open(n, m, p) open((n), (m))
-#else
-# ifdef VMS
+#ifdef VMS
/*
* It is possible to force some record format with:
* # define mch_open(n, m, p) open(vms_fixfilename(n), (m), (p)), "rat=cr", "rfm=stmlf", "mrs=0")
* but it is not recommended, because it can destroy indexes etc.
*/
-# define mch_open(n, m, p) open(vms_fixfilename(n), (m), (p))
-# endif
+# define mch_open(n, m, p) open(vms_fixfilename(n), (m), (p))
#endif
/* mch_open_rw(): invoke mch_open() with third argument for user R/W. */
@@ -266,7 +261,7 @@
* PTR2CHAR(): get character from pointer.
*/
#ifdef FEAT_MBYTE
-/* Get the length of the character p points to */
+/* Get the length of the character p points to, including composing chars */
# define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : 1)
/* Advance multi-byte pointer, skip over composing chars. */
# define MB_PTR_ADV(p) p += has_mbyte ? (*mb_ptr2len)(p) : 1
diff --git a/src/main.c b/src/main.c
index 0283231..97f1b03 100644
--- a/src/main.c
+++ b/src/main.c
@@ -299,7 +299,7 @@ main
params.want_full_screen = FALSE;
#endif
-#if defined(FEAT_GUI_MAC) && defined(MACOS_X_UNIX)
+#if defined(FEAT_GUI_MAC) && defined(MACOS_X_DARWIN)
/* When the GUI is started from Finder, need to display messages in a
* message box. isatty(2) returns TRUE anyway, thus we need to check the
* name to know we're not started from a terminal. */
@@ -927,13 +927,6 @@ common_init(mparm_T *paramp)
qnx_init(); /* PhAttach() for clipboard, (and gui) */
#endif
-#ifdef MAC_OS_CLASSIC
- /* Prepare for possibly starting GUI sometime */
- /* Macintosh needs this before any memory is allocated. */
- gui_prepare(&paramp->argc, paramp->argv);
- TIME_MSG("GUI prepared");
-#endif
-
/* Init the table of Normal mode commands. */
init_normal_cmds();
@@ -984,7 +977,7 @@ common_init(mparm_T *paramp)
#ifdef FEAT_SUN_WORKSHOP
findYourself(paramp->argv[0]);
#endif
-#if defined(FEAT_GUI) && !defined(MAC_OS_CLASSIC)
+#if defined(FEAT_GUI)
/* Prepare for possibly starting GUI sometime */
gui_prepare(&paramp->argc, paramp->argv);
TIME_MSG("GUI prepared");
@@ -1724,7 +1717,7 @@ parse_command_name(mparm_T *parmp)
initstr = gettail((char_u *)parmp->argv[0]);
-#ifdef MACOS_X_UNIX
+#ifdef FEAT_GUI_MAC
/* An issue has been seen when launching Vim in such a way that
* $PWD/$ARGV[0] or $ARGV[0] is not the absolute path to the
* executable or a symbolic link of it. Until this issue is resolved
@@ -2619,7 +2612,7 @@ read_stdin(void)
#if defined(HAS_SWAP_EXISTS_ACTION)
check_swap_exists_action();
#endif
-#if !(defined(AMIGA) || defined(MACOS))
+#if !(defined(AMIGA) || defined(MACOS_X))
/*
* Close stdin and dup it from stderr. Required for GPM to work
* properly, and for running external commands.
diff --git a/src/mbyte.c b/src/mbyte.c
index 6cda0e7..3592ddb 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -105,7 +105,10 @@
# include <X11/Intrinsic.h>
#endif
#ifdef X_LOCALE
-#include <X11/Xlocale.h>
+# include <X11/Xlocale.h>
+# if !defined(HAVE_MBLEN) && !defined(mblen)
+# define mblen _Xmblen
+# endif
#endif
#if defined(FEAT_GUI_GTK) && defined(FEAT_XIM)
@@ -415,7 +418,7 @@ enc_alias_table[] =
{"euccn", IDX_EUC_CN},
{"gb2312", IDX_EUC_CN},
{"euctw", IDX_EUC_TW},
-#if defined(WIN3264) || defined(WIN32UNIX) || defined(MACOS)
+#if defined(WIN3264) || defined(WIN32UNIX) || defined(MACOS_X)
{"japan", IDX_CP932},
{"korea", IDX_CP949},
{"prc", IDX_CP936},
@@ -516,7 +519,7 @@ mb_init(void)
int n;
int enc_dbcs_new = 0;
#if defined(USE_ICONV) && !defined(WIN3264) && !defined(WIN32UNIX) \
- && !defined(MACOS)
+ && !defined(MACOS_CONVERT)
# define LEN_FROM_CONV
vimconv_T vimconv;
char_u *p;
@@ -711,7 +714,8 @@ codepage_invalid:
* API */
n = IsDBCSLeadByteEx(enc_dbcs, (WINBYTE)i) ? 2 : 1;
#else
-# if defined(MACOS) || defined(__amigaos4__) || defined(__ANDROID__)
+# if defined(__amigaos4__) || defined(__ANDROID__) || \
+ !(defined(HAVE_MBLEN) || defined(X_LOCALE))
/*
* if mblen() is not available, character which MSB is turned on
* are treated as leading byte character. (note : This assumption
@@ -720,18 +724,14 @@ codepage_invalid:
n = (i & 0x80) ? 2 : 1;
# else
char buf[MB_MAXBYTES + 1];
-# ifdef X_LOCALE
-# ifndef mblen
-# define mblen _Xmblen
-# endif
-# endif
+
if (i == NUL) /* just in case mblen() can't handle "" */
n = 1;
else
{
buf[0] = i;
buf[1] = 0;
-#ifdef LEN_FROM_CONV
+# ifdef LEN_FROM_CONV
if (vimconv.vc_type != CONV_NONE)
{
/*
@@ -748,7 +748,7 @@ codepage_invalid:
n = 2;
}
else
-#endif
+# endif
{
/*
* mblen() should return -1 for invalid (means the leading
@@ -918,7 +918,7 @@ dbcs_class(unsigned lead, unsigned trail)
unsigned char tb = trail;
/* convert process code to JIS */
-# if defined(WIN3264) || defined(WIN32UNIX) || defined(MACOS)
+# if defined(WIN3264) || defined(WIN32UNIX) || defined(MACOS_X)
/* process code is SJIS */
if (lb <= 0x9f)
lb = (lb - 0x81) * 2 + 0x21;
@@ -6536,7 +6536,7 @@ convert_setup_ext(
vcp->vc_cpto = to_is_utf8 ? 0 : encname2codepage(to);
}
#endif
-#ifdef MACOS_X
+#ifdef MACOS_CONVERT
else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_LATIN1))
{
vcp->vc_type = CONV_MAC_LATIN1;
diff --git a/src/message.c b/src/message.c
index 41ab17a..221e3d8 100644
--- a/src/message.c
+++ b/src/message.c
@@ -2660,11 +2660,10 @@ msg_puts_printf(char_u *str, int maxlen)
if (!(silent_mode && p_verbose == 0))
{
/* NL --> CR NL translation (for Unix, not for "--version") */
- /* NL --> CR translation (for Mac) */
p = &buf[0];
if (*s == '\n' && !info_message)
*p++ = '\r';
-#if defined(USE_CR) && !defined(MACOS_X_UNIX)
+#if defined(USE_CR)
else
#endif
*p++ = *s;
@@ -3005,7 +3004,7 @@ mch_errmsg(char *str)
* On Mac, when started from Finder, stderr is the console. */
if (
# ifdef UNIX
-# ifdef MACOS_X_UNIX
+# ifdef MACOS_X
(isatty(2) && strcmp("/dev/console", ttyname(2)) != 0)
# else
isatty(2)
@@ -3072,7 +3071,7 @@ mch_msg(char *str)
* On Mac, when started from Finder, stderr is the console. */
if (
# ifdef UNIX
-# ifdef MACOS_X_UNIX
+# ifdef MACOS_X
(isatty(2) && strcmp("/dev/console", ttyname(2)) != 0)
# else
isatty(2)
diff --git a/src/misc1.c b/src/misc1.c
index eb893f6..f33fd3b 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -4334,12 +4334,8 @@ vim_getenv(char_u *name, int *mustfree)
}
/* remove trailing path separator */
-#ifndef MACOS_CLASSIC
- /* With MacOS path (with colons) the final colon is required */
- /* to avoid confusion between absolute and relative path */
if (pend > p && after_pathsep(p, pend))
--pend;
-#endif
#ifdef MACOS_X
if (p == exe_name || p == p_hf)
@@ -4499,9 +4495,9 @@ get_env_name(
expand_T *xp UNUSED,
int idx)
{
-# if defined(AMIGA) || defined(__MRC__) || defined(__SC__)
+# if defined(AMIGA)
/*
- * No environ[] on the Amiga and on the Mac (using MPW).
+ * No environ[] on the Amiga.
*/
return NULL;
# else
@@ -10996,9 +10992,6 @@ gen_expand_wildcards(
{
char_u *t = backslash_halve_save(p);
-#if defined(MACOS_CLASSIC)
- slash_to_colon(t);
-#endif
/* When EW_NOTFOUND is used, always add files and dirs. Makes
* "vim c:/" work. */
if (flags & EW_NOTFOUND)
diff --git a/src/misc2.c b/src/misc2.c
index 52ce097..4d4d947 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -2202,7 +2202,7 @@ static struct modmasktable
{MOD_MASK_MULTI_CLICK, MOD_MASK_2CLICK, (char_u)'2'},
{MOD_MASK_MULTI_CLICK, MOD_MASK_3CLICK, (char_u)'3'},
{MOD_MASK_MULTI_CLICK, MOD_MASK_4CLICK, (char_u)'4'},
-#ifdef MACOS
+#ifdef MACOS_X
{MOD_MASK_CMD, MOD_MASK_CMD, (char_u)'D'},
#endif
/* 'A' must be the last one */
@@ -2927,7 +2927,7 @@ extract_modifiers(int key, int *modp)
{
int modifiers = *modp;
-#ifdef MACOS
+#ifdef MACOS_X
/* Command-key really special, no fancynest */
if (!(modifiers & MOD_MASK_CMD))
#endif
@@ -2954,7 +2954,7 @@ extract_modifiers(int key, int *modp)
if (key == 0)
key = K_ZERO;
}
-#ifdef MACOS
+#ifdef MACOS_X
/* Command-key really special, no fancynest */
if (!(modifiers & MOD_MASK_CMD))
#endif
@@ -5933,10 +5933,7 @@ pathcmp(const char *p, const char *q, int maxlen)
#define EXTRASIZE 5 /* increment to add to env. size */
static int envsize = -1; /* current size of environment */
-#ifndef MACOS_CLASSIC
-extern
-#endif
- char **environ; /* the global which is your env. */
+extern char **environ; /* the global which is your env. */
static int findenv(char *name); /* look for a name in the env. */
static int newenv(void); /* copy env. from stack to heap */
@@ -6008,19 +6005,14 @@ newenv(void)
char **env, *elem;
int i, esize;
-#ifdef MACOS
- /* for Mac a new, empty environment is created */
- i = 0;
-#else
for (i = 0; environ[i]; i++)
;
-#endif
+
esize = i + EXTRASIZE + 1;
env = (char **)alloc((unsigned)(esize * sizeof (elem)));
if (env == NULL)
return -1;
-#ifndef MACOS
for (i = 0; environ[i]; i++)
{
elem = (char *)alloc((unsigned)(strlen(environ[i]) + 1));
@@ -6029,7 +6021,6 @@ newenv(void)
env[i] = elem;
strcpy(elem, environ[i]);
}
-#endif
env[i] = 0;
environ = env;
@@ -6093,7 +6084,6 @@ filewritable(char_u *fname)
#if defined(UNIX) || defined(VMS)
perm = mch_getperm(fname);
#endif
-#ifndef MACOS_CLASSIC /* TODO: get either mch_writable or mch_access */
if (
# ifdef WIN3264
mch_writable(fname) &&
@@ -6104,7 +6094,6 @@ filewritable(char_u *fname)
# endif
mch_access((char *)fname, W_OK) == 0
)
-#endif
{
++retval;
if (mch_isdir(fname))
diff --git a/src/option.c b/src/option.c
index baa8d85..ceafea3 100644
--- a/src/option.c
+++ b/src/option.c
@@ -510,7 +510,7 @@ static struct vimoption options[] =
#endif
(char_u *)0L} SCRIPTID_INIT},
{"antialias", "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
-#if defined(FEAT_GUI) && defined(MACOS_X)
+#if defined(FEAT_GUI_MAC)
(char_u *)&p_antialias, PV_NONE,
{(char_u *)FALSE, (char_u *)FALSE}
#else
@@ -1431,7 +1431,7 @@ static struct vimoption options[] =
{"guioptions", "go", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST,
#if defined(FEAT_GUI)
(char_u *)&p_go, PV_NONE,
-# if defined(UNIX) && !defined(MACOS)
+# if defined(UNIX) && !defined(FEAT_GUI_MAC)
{(char_u *)"aegimrLtT", (char_u *)0L}
# else
{(char_u *)"egmrLtT", (char_u *)0L}
@@ -1697,8 +1697,7 @@ static struct vimoption options[] =
{"isprint", "isp", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
(char_u *)&p_isp, PV_NONE,
{
-#if defined(MSWIN) || (defined(MACOS) && !defined(MACOS_X)) \
- || defined(VMS)
+#if defined(MSWIN) || defined(VMS)
(char_u *)"@,~-255",
#else
# ifdef EBCDIC
@@ -1989,7 +1988,7 @@ static struct vimoption options[] =
#if defined(MSWIN)
(char_u *)"popup",
#else
-# if defined(MACOS)
+# if defined(MACOS_X)
(char_u *)"popup_setpos",
# else
(char_u *)"extend",
@@ -2360,7 +2359,7 @@ static struct vimoption options[] =
SCRIPTID_INIT},
{"scroll", "scr", P_NUM|P_NO_MKRC|P_VI_DEF,
(char_u *)VAR_WIN, PV_SCROLL,
- {(char_u *)12L, (char_u *)0L} SCRIPTID_INIT},
+ {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
{"scrollbind", "scb", P_BOOL|P_VI_DEF,
#ifdef FEAT_SCROLLBIND
(char_u *)VAR_WIN, PV_SCBIND,
@@ -3650,7 +3649,7 @@ set_init_1(void)
options[opt_idx].flags |= P_DEF_ALLOCED;
}
-#if defined(MSWIN) || defined(MACOS) || defined(VMS)
+#if defined(MSWIN) || defined(MACOS_X) || defined(VMS)
if (STRCMP(p_enc, "latin1") == 0
# ifdef FEAT_MBYTE
|| enc_utf8
@@ -3905,10 +3904,9 @@ set_init_2(void)
int idx;
/*
- * 'scroll' defaults to half the window height. Note that this default is
- * wrong when the window height changes.
+ * 'scroll' defaults to half the window height. The stored default is zero,
+ * which results in the actual value computed from the window height.
*/
- set_number_default("scroll", (long)((long_u)Rows >> 1));
idx = findoption((char_u *)"scroll");
if (idx >= 0 && !(options[idx].flags & P_WAS_SET))
set_option_default(idx, OPT_LOCAL, p_cp);
diff --git a/src/os_mac.h b/src/os_mac.h
index a0eda82..9fc2f92 100644
--- a/src/os_mac.h
+++ b/src/os_mac.h
@@ -77,7 +77,7 @@
*/
/* When compiled under MacOS X (including CARBON version)
* we use the Unix File path style. Also when UNIX is defined. */
-# define USE_UNIXFILENAME
+#define USE_UNIXFILENAME
/*
@@ -94,15 +94,10 @@
quite fast. Did I forgot to update the
comment */
-
#define USE_FNAME_CASE /* make ":e os_Mac.c" open the file in its
original case, as "os_mac.c" */
#define BINARY_FILE_IO
#define EOL_DEFAULT EOL_MAC
-#ifndef MACOS_X_UNIX /* I hope that switching these two lines */
-# define USE_CR /* does what I want -- BNF */
-# define NO_CONSOLE /* don't include console mode */
-#endif
#define HAVE_AVAIL_MEM
#ifndef HAVE_CONFIG_H
@@ -128,38 +123,38 @@
*/
#ifndef SYS_VIMRC_FILE
-# define SYS_VIMRC_FILE "$VIM/vimrc"
+# define SYS_VIMRC_FILE "$VIM/vimrc"
#endif
#ifndef SYS_GVIMRC_FILE
-# define SYS_GVIMRC_FILE "$VIM/gvimrc"
+# define SYS_GVIMRC_FILE "$VIM/gvimrc"
#endif
#ifndef SYS_MENU_FILE
-# define SYS_MENU_FILE "$VIMRUNTIME/menu.vim"
+# define SYS_MENU_FILE "$VIMRUNTIME/menu.vim"
#endif
#ifndef SYS_OPTWIN_FILE
-# define SYS_OPTWIN_FILE "$VIMRUNTIME/optwin.vim"
+# define SYS_OPTWIN_FILE "$VIMRUNTIME/optwin.vim"
#endif
#ifndef VIM_DEFAULTS_FILE
-# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
+# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
#endif
#ifndef EVIM_FILE
-# define EVIM_FILE "$VIMRUNTIME/evim.vim"
+# define EVIM_FILE "$VIMRUNTIME/evim.vim"
#endif
#ifdef FEAT_GUI
# ifndef USR_GVIMRC_FILE
-# define USR_GVIMRC_FILE "~/.gvimrc"
+# define USR_GVIMRC_FILE "~/.gvimrc"
# endif
# ifndef GVIMRC_FILE
# define GVIMRC_FILE "_gvimrc"
# endif
#endif
#ifndef USR_VIMRC_FILE
-# define USR_VIMRC_FILE "~/.vimrc"
+# define USR_VIMRC_FILE "~/.vimrc"
#endif
#ifndef USR_EXRC_FILE
-# define USR_EXRC_FILE "~/.exrc"
+# define USR_EXRC_FILE "~/.exrc"
#endif
#ifndef VIMRC_FILE
@@ -171,7 +166,7 @@
#endif
#ifndef DFLT_HELPFILE
-# define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt"
+# define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt"
#endif
#ifndef FILETYPE_FILE
@@ -194,12 +189,12 @@
#endif
#ifndef SYNTAX_FNAME
-# define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim"
+# define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim"
#endif
#ifdef FEAT_VIMINFO
# ifndef VIMINFO_FILE
-# define VIMINFO_FILE "~/.viminfo"
+# define VIMINFO_FILE "~/.viminfo"
# endif
#endif /* FEAT_VIMINFO */
@@ -218,7 +213,7 @@
#define DFLT_ERRORFILE "errors.err"
#ifndef DFLT_RUNTIMEPATH
-# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
+# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
#endif
/*
@@ -226,11 +221,6 @@
*/
#define CMDBUFFSIZE 1024 /* size of the command processing buffer */
-#if !defined(MACOS_X_UNIX)
-# define MAXPATHL 256 /* Limited by the Pascal Strings */
-# define BASENAMELEN (32-5-1) /* length of base of filename */
-#endif
-
#ifndef DFLT_MAXMEM
# define DFLT_MAXMEM 512 /* use up to 512 Kbyte for buffer */
#endif
@@ -245,12 +235,8 @@
#define mch_rename(src, dst) rename(src, dst)
#define mch_remove(x) unlink((char *)(x))
#ifndef mch_getenv
-# if defined(__MRC__) || defined(__SC__)
+# if defined(__APPLE_CC__)
# define mch_getenv(name) ((char_u *)getenv((char *)(name)))
-# define mch_setenv(name, val, x) setenv((name), (val))
-# elif defined(__APPLE_CC__)
-# define mch_getenv(name) ((char_u *)getenv((char *)(name)))
-/*# define mch_setenv(name, val, x) setenv((name), (val)) */ /* Obsoleted by Dany on Oct 30, 2001 */
# define mch_setenv(name, val, x) setenv(name, val, x)
# else
/* vim_getenv() is in pty.c */
@@ -275,33 +261,31 @@
* of ./configure for console MacOS X.
*/
-#ifdef MACOS_X_UNIX
-# ifndef SIGPROTOARG
-# define SIGPROTOARG (int)
-# endif
-# ifndef SIGDEFARG
-# define SIGDEFARG(s) (s) int s UNUSED;
-# endif
-# ifndef SIGDUMMYARG
-# define SIGDUMMYARG 0
-# endif
-# undef HAVE_AVAIL_MEM
-# ifndef HAVE_CONFIG_H
-# define RETSIGTYPE void
-# define SIGRETURN return
+#ifndef SIGPROTOARG
+# define SIGPROTOARG (int)
+#endif
+#ifndef SIGDEFARG
+# define SIGDEFARG(s) (s) int s UNUSED;
+#endif
+#ifndef SIGDUMMYARG
+# define SIGDUMMYARG 0
+#endif
+#undef HAVE_AVAIL_MEM
+#ifndef HAVE_CONFIG_H
+# define RETSIGTYPE void
+# define SIGRETURN return
/*# define USE_SYSTEM */ /* Output ship do debugger :(, but ot compile */
-# define HAVE_SYS_WAIT_H 1 /* Attempt */
-# define HAVE_TERMIOS_H 1
-# define SYS_SELECT_WITH_SYS_TIME 1
-# define HAVE_SELECT 1
-# define HAVE_SYS_SELECT_H 1
-# define HAVE_PUTENV
-# define HAVE_SETENV
-# define HAVE_RENAME
-# endif
+# define HAVE_SYS_WAIT_H 1 /* Attempt */
+# define HAVE_TERMIOS_H 1
+# define SYS_SELECT_WITH_SYS_TIME 1
+# define HAVE_SELECT 1
+# define HAVE_SYS_SELECT_H 1
+# define HAVE_PUTENV
+# define HAVE_SETENV
+# define HAVE_RENAME
#endif
-#if defined(MACOS_X) && !defined(HAVE_CONFIG_H)
+#if !defined(HAVE_CONFIG_H)
# define HAVE_PUTENV
#endif
diff --git a/src/os_macosx.m b/src/os_macosx.m
index d6913d4..029f103 100644
--- a/src/os_macosx.m
+++ b/src/os_macosx.m
@@ -8,20 +8,16 @@
*/
/*
- * os_macosx.m -- Mac specific things for Mac OS/X.
+ * os_macosx.m -- Mac specific things for Mac OS X.
*/
-#ifndef MACOS_X_UNIX
- Error: MACOS 9 is no longer supported in Vim 7
-#endif
-
/* Avoid a conflict for the definition of Boolean between Mac header files and
* X11 header files. */
#define NO_X11_INCLUDES
#define BalloonEval int /* used in header files */
#include "vim.h"
-#import <Cocoa/Cocoa.h>
+#import <AppKit/AppKit.h>
/*
diff --git a/src/os_unix.c b/src/os_unix.c
index 59e5745..a39caff 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -856,10 +856,6 @@ mch_stackcheck(char *p)
* completely full.
*/
-#if defined(HAVE_AVAILABILITYMACROS_H)
-# include <AvailabilityMacros.h>
-#endif
-
#ifndef SIGSTKSZ
# define SIGSTKSZ 8000 /* just a guess of how much stack is needed... */
#endif
@@ -879,13 +875,6 @@ init_signal_stack(void)
if (signal_stack != NULL)
{
# ifdef HAVE_SIGALTSTACK
-# if defined(__APPLE__) && (!defined(MAC_OS_X_VERSION_MAX_ALLOWED) \
- || MAC_OS_X_VERSION_MAX_ALLOWED <= 1040)
- /* missing prototype. Adding it to osdef?.h.in doesn't work, because
- * "struct sigaltstack" needs to be declared. */
- extern int sigaltstack(const struct sigaltstack *ss, struct sigaltstack *oss);
-# endif
-
# ifdef HAVE_SS_BASE
sigstk.ss_base = signal_stack;
# else
diff --git a/src/os_win32.c b/src/os_win32.c
index f1e1cad..7654c31 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -5033,8 +5033,8 @@ job_io_file_open(
* Turn the dictionary "env" into a NUL separated list that can be used as the
* environment argument of vim_create_process().
*/
- static void
-make_job_env(garray_T *gap, dict_T *env)
+ void
+win32_build_env(dict_T *env, garray_T *gap)
{
hashitem_T *hi;
int todo = (int)env->dv_hashtab.ht_used;
@@ -5133,7 +5133,7 @@ mch_job_start(char *cmd, job_T *job, jobopt_T *options)
}
if (options->jo_env != NULL)
- make_job_env(&ga, options->jo_env);
+ win32_build_env(options->jo_env, &ga);
ZeroMemory(&pi, sizeof(pi));
ZeroMemory(&si, sizeof(si));
diff --git a/src/po/Make_cyg.mak b/src/po/Make_cyg.mak
index 4a86d28..f8e45ba 100644
--- a/src/po/Make_cyg.mak
+++ b/src/po/Make_cyg.mak
@@ -128,11 +128,11 @@ all: $(MOFILES)
first_time:
$(XGETTEXT) --default-domain=$(LANGUAGE) \
- --add-comments --keyword=_ --keyword=N_ $(wildcard ../*.c) ../if_perl.xs $(wildcard ../globals.h)
+ --add-comments --keyword=_ --keyword=N_ $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h
$(LANGUAGES):
$(XGETTEXT) --default-domain=$(PACKAGE) \
- --add-comments --keyword=_ --keyword=N_ $(wildcard ../*.c) ../if_perl.xs $(wildcard ../globals.h)
+ --add-comments --keyword=_ --keyword=N_ $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h
$(MV) $(PACKAGE).po $(PACKAGE).pot
$(CP) $@.po $@.po.orig
$(MV) $@.po $@.po.old
diff --git a/src/po/Make_ming.mak b/src/po/Make_ming.mak
index eea106e..cd84c1b 100644
--- a/src/po/Make_ming.mak
+++ b/src/po/Make_ming.mak
@@ -11,7 +11,11 @@
#
ifndef VIMRUNTIME
+ifeq (sh.exe, $(SHELL))
VIMRUNTIME = ..\..\runtime
+else
+VIMRUNTIME = ../../runtime
+endif
endif
LANGUAGES = \
@@ -100,14 +104,27 @@ PACKAGE = vim
#GETTEXT_PATH = C:/gettext-0.10.35-w32/win32/Release/
#GETTEXT_PATH = C:/cygwin/bin/
+ifeq (sh.exe, $(SHELL))
MSGFMT = set OLD_PO_FILE_INPUT=yes && $(GETTEXT_PATH)msgfmt -v
XGETTEXT = set OLD_PO_FILE_INPUT=yes && set OLD_PO_FILE_OUTPUT=yes && $(GETTEXT_PATH)xgettext
MSGMERGE = set OLD_PO_FILE_INPUT=yes && set OLD_PO_FILE_OUTPUT=yes && $(GETTEXT_PATH)msgmerge
+else
+MSGFMT = LANG=C OLD_PO_FILE_INPUT=yes $(GETTEXT_PATH)msgfmt -v
+XGETTEXT = LANG=C OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes $(GETTEXT_PATH)xgettext
+MSGMERGE = LANG=C OLD_PO_FILE_INPUT=yes OLD_PO_FILE_OUTPUT=yes $(GETTEXT_PATH)msgmerge
+endif
+ifeq (sh.exe, $(SHELL))
MV = move
CP = copy
RM = del
MKD = mkdir
+else
+MV = mv -f
+CP = cp -f
+RM = rm -f
+MKD = mkdir -p
+endif
.SUFFIXES:
.SUFFIXES: .po .mo .pot
@@ -120,11 +137,11 @@ all: $(MOFILES)
first_time:
$(XGETTEXT) --default-domain=$(LANGUAGE) \
- --add-comments --keyword=_ --keyword=N_ $(wildcard ../*.c) ../if_perl.xs $(wildcard ../globals.h)
+ --add-comments --keyword=_ --keyword=N_ $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h
$(LANGUAGES):
$(XGETTEXT) --default-domain=$(PACKAGE) \
- --add-comments --keyword=_ --keyword=N_ $(wildcard ../*.c) ../if_perl.xs $(wildcard ../globals.h)
+ --add-comments --keyword=_ --keyword=N_ $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h
$(MV) $(PACKAGE).po $(PACKAGE).pot
$(CP) $@.po $@.po.orig
$(MV) $@.po $@.po.old
@@ -136,10 +153,18 @@ install:
$(MKD) $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
$(CP) $(LANGUAGE).mo $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES\$(PACKAGE).mo
+ifeq (sh.exe, $(SHELL))
install-all: all
FOR %%l IN ($(LANGUAGES)) DO @IF NOT EXIST $(VIMRUNTIME)\lang\%%l $(MKD) $(VIMRUNTIME)\lang\%%l
FOR %%l IN ($(LANGUAGES)) DO @IF NOT EXIST $(VIMRUNTIME)\lang\%%l\LC_MESSAGES $(MKD) $(VIMRUNTIME)\lang\%%l\LC_MESSAGES
FOR %%l IN ($(LANGUAGES)) DO @$(CP) %%l.mo $(VIMRUNTIME)\lang\%%l\LC_MESSAGES\$(PACKAGE).mo
+else
+install-all: all
+ for TARGET in $(LANGUAGES); do \
+ $(MKD) $(VIMRUNTIME)/lang/$$TARGET/LC_MESSAGES ; \
+ $(CP) $$TARGET.mo $(VIMRUNTIME)/lang/$$TARGET/LC_MESSAGES/$(PACKAGE).mo ; \
+ done
+endif
clean:
$(RM) *.mo
diff --git a/src/po/Make_mvc.mak b/src/po/Make_mvc.mak
index 9deba79..85013f4 100644
--- a/src/po/Make_mvc.mak
+++ b/src/po/Make_mvc.mak
@@ -117,7 +117,7 @@ INSTALLDIR = $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
all: $(MOFILES)
files:
- $(LS) $(LSFLAGS) ..\*.c ..\if_perl.xs ..\globals.h > .\files
+ $(LS) $(LSFLAGS) ..\*.c ..\if_perl.xs ..\GvimExt\gvimext.cpp ..\globals.h ..\if_py_both.h > .\files
first_time: files
set OLD_PO_FILE_INPUT=yes
diff --git a/src/po/check.vim b/src/po/check.vim
index a8866eb..a1ec623 100644
--- a/src/po/check.vim
+++ b/src/po/check.vim
@@ -146,7 +146,10 @@ endwhile
" Check that the file is well formed according to msgfmts understanding
if executable("msgfmt")
let filename = expand("%")
- let a = system("msgfmt --statistics OLD_PO_FILE_INPUT=yes " . filename)
+ " Newer msgfmt does not take OLD_PO_FILE_INPUT argument, must be in
+ " environment.
+ let $OLD_PO_FILE_INPUT = 'yes'
+ let a = system("msgfmt --statistics " . filename)
if v:shell_error != 0
let error = matchstr(a, filename.':\zs\d\+\ze:')+0
for line in split(a, '\n') | echomsg line | endfor
diff --git a/src/po/de.po b/src/po/de.po
index 214cb8d..e7239e3 100644
--- a/src/po/de.po
+++ b/src/po/de.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim(deutsch)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-08-01 14:56+0200\n"
+"POT-Creation-Date: 2017-10-15 22:00+0200\n"
"PO-Revision-Date: 2008-05-24 17:26+0200\n"
"Last-Translator: Christian Brabandt\n"
"Language-Team: German <de@li.org>\n"
@@ -106,6 +106,18 @@ msgid "E89: No write since last change for buffer %ld (add ! to override)"
msgstr ""
"E89: Puffer %ld seit der letzten nderung nicht gesichert (erzwinge mit !)"
+msgid "E948: Job still running (add ! to end the job)"
+msgstr "E948: Job luft noch (Beenden mit !)"
+
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Kein Schreibvorgang seit der letzten nderung (erzwinge mit !)"
+
+msgid "E948: Job still running"
+msgstr "E948: Job luft noch"
+
+msgid "E37: No write since last change"
+msgstr "E37: Nicht geschrieben seit letzter nderung"
+
msgid "W14: Warning: List of file names overflow"
msgstr "W14: Achtung: berlauf der Dateinamensliste."
@@ -1142,8 +1154,8 @@ msgstr "E750: Benutze vorher :profile start <fname>"
msgid "Save changes to \"%s\"?"
msgstr "nderungen in \"%s\" speichern?"
-msgid "Untitled"
-msgstr "Unbenannt"
+msgid "E947: Job still running in buffer \"%s\""
+msgstr "E947: Job noch aktiv in Puffer \"%s\""
#, c-format
msgid "E162: No write since last change for buffer \"%s\""
@@ -1501,6 +1513,9 @@ msgstr "E500: Ergibt eine leere Zeichenkette"
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: viminfo kann nicht zum Lesen geffnet werden."
+msgid "Untitled"
+msgstr "Unbenannt"
+
msgid "E196: No digraphs in this version"
msgstr "E196: Keine Digraphen in dieser Version."
@@ -3875,6 +3890,10 @@ msgstr ""
msgid "Tear off this menu"
msgstr "Reie dieses Men ab"
+#, c-format
+msgid "E335: Menu not defined for %s mode"
+msgstr "E335: Men ist fr Modus %s nicht definiert"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: Men-Pfad muss zu einem Menpunkt fhren"
@@ -3882,10 +3901,6 @@ msgstr "E333: Men-Pfad muss zu einem Menpunkt fhren"
msgid "E334: Menu not found: %s"
msgstr "E334: Men nicht gefunden: %s"
-#, c-format
-msgid "E335: Menu not defined for %s mode"
-msgstr "E335: Men ist fr Modus %s nicht definiert"
-
msgid "E336: Menu path must lead to a sub-menu"
msgstr "E336: Men-Pfad muss zum Untermen fhren"
@@ -4262,9 +4277,6 @@ msgstr ""
msgid "(+%ld for BOM)"
msgstr "(+%ld fr BOM)"
-msgid "%<%f%h%m%=Page %N"
-msgstr "%<%f%h%m%=Seite %N"
-
msgid "Thanks for flying Vim"
msgstr "Danke fr die Benutzung von Vim"
@@ -5775,6 +5787,9 @@ msgstr "Terminal"
msgid "Terminal-finished"
msgstr "Terminal beendet"
+msgid "active"
+msgstr "aktiv"
+
msgid "running"
msgstr "Fhre aus"
@@ -6637,12 +6652,6 @@ msgstr "E484: Kann die Datei %s nicht ffnen"
msgid "E485: Can't read file %s"
msgstr "E485: Kann Datei %s nicht lesen"
-msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: Kein Schreibvorgang seit der letzten nderung (erzwinge mit !)"
-
-msgid "E37: No write since last change"
-msgstr "E37: Nicht geschrieben seit letzter nderung"
-
msgid "E38: Null argument"
msgstr "E38: Null-Argument"
diff --git a/src/po/eo.po b/src/po/eo.po
index 188d86f..cc0893d 100644
--- a/src/po/eo.po
+++ b/src/po/eo.po
@@ -17,8 +17,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim(Esperanto)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-11 23:10+0200\n"
-"PO-Revision-Date: 2017-07-12 05:14+0200\n"
+"POT-Creation-Date: 2017-10-02 22:42+0200\n"
+"PO-Revision-Date: 2017-10-02 22:57+0200\n"
"Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n"
"Language-Team: \n"
"Language: eo\n"
@@ -99,7 +99,6 @@ msgstr "E90: Ne eblas malŝargi la lastan bufron"
msgid "E84: No modified buffer found"
msgstr "E84: Neniu modifita bufro trovita"
-#. back where we started, didn't find anything.
msgid "E85: There is no listed buffer"
msgstr "E85: Estas neniu listigita bufro"
@@ -115,6 +114,18 @@ msgstr ""
"E89: Neniu skribo de post la lasta ŝanĝo de la bufro %ld (aldonu ! por "
"transpasi)"
+msgid "E948: Job still running (add ! to end the job)"
+msgstr "E948: Tasko akoraŭ aktiva (aldonu ! por fini la taskon)"
+
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Neniu skribo de post lasta ŝanĝo (aldonu ! por transpasi)"
+
+msgid "E948: Job still running"
+msgstr "E948: Tasko ankoraŭ aktiva"
+
+msgid "E37: No write since last change"
+msgstr "E37: Neniu skribo de post lasta ŝanĝo"
+
msgid "W14: Warning: List of file names overflow"
msgstr "W14: Averto: Listo de dosiernomoj troas"
@@ -170,7 +181,6 @@ msgstr "linio %ld de %ld --%d%%-- kol "
msgid "[No Name]"
msgstr "[Neniu nomo]"
-#. must be a help buffer
msgid "help"
msgstr "helpo"
@@ -196,6 +206,9 @@ msgstr ""
"\n"
"# Listo de bufroj:\n"
+msgid "E382: Cannot write, 'buftype' option is set"
+msgstr "E382: Ne eblas skribi, opcio 'buftype' estas ŝaltita"
+
msgid "[Scratch]"
msgstr "[Malneto]"
@@ -363,7 +376,6 @@ msgstr "E791: Malplena rikordo en klavmapo"
msgid " Keyword completion (^N^P)"
msgstr " Kompletigo de ŝlosilvorto (^N^P)"
-#. ctrl_x_mode == 0, ^P/^N compl.
msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
msgstr " Reĝimo ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
@@ -442,10 +454,6 @@ msgstr "kongruo en dosiero"
msgid " Adding"
msgstr " Aldonanta"
-#. showmode might reset the internal line pointers, so it must
-#. * be called before line = ml_get(), or when this address is no
-#. * longer needed. -- Acevedo.
-#.
msgid "-- Searching..."
msgstr "-- Serĉanta..."
@@ -466,7 +474,6 @@ msgstr "kongruo %d de %d"
msgid "match %d"
msgstr "kongruo %d"
-#. maximum nesting of lists and dicts
msgid "E18: Unexpected characters in :let"
msgstr "E18: Neatenditaj signoj en \":let\""
@@ -526,8 +533,6 @@ msgstr "E690: \"in\" mankas malantaŭ \":for\""
msgid "E108: No such variable: \"%s\""
msgstr "E108: Ne estas tia variablo: \"%s\""
-#. For historic reasons this error is not given for a list or dict.
-#. * E.g., the b: dict could be locked/unlocked.
#, c-format
msgid "E940: Cannot lock or unlock variable %s"
msgstr "E940: Ne eblas ŝlosi aŭ malŝlosi variablon %s"
@@ -700,11 +705,6 @@ msgstr "argumento de add()"
msgid "E785: complete() can only be used in Insert mode"
msgstr "E785: complete() uzeblas nur en Enmeta reĝimo"
-#.
-#. * Yes this is ugly, I don't particularly like it either. But doing it
-#. * this way has the compelling advantage that translations need not to
-#. * be touched at all. See below what 'ok' and 'ync' are used for.
-#.
msgid "&Ok"
msgstr "&Bone"
@@ -865,7 +865,6 @@ msgstr " malnovaj dosieroj"
msgid " FAILED"
msgstr " MALSUKCESIS"
-#. avoid a wait_return for this message, it's annoying
#, c-format
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: Dosiero viminfo ne skribeblas: %s"
@@ -886,7 +885,6 @@ msgstr "Skribas dosieron viminfo \"%s\""
msgid "E886: Can't rename viminfo file to %s!"
msgstr "E886: Ne eblas renomi dosieron viminfo al %s!"
-#. Write the info:
#, c-format
msgid "# This viminfo file was generated by Vim %s.\n"
msgstr "# Tiu dosiero viminfo estis kreita de Vim %s.\n"
@@ -1005,7 +1003,6 @@ msgstr " en 1 linio"
msgid " on %ld lines"
msgstr " en %ld linioj"
-#. will increment global_busy to break out of the loop
msgid "E147: Cannot do :global recursive with a range"
msgstr "E147: Ne eblas fari \":global\" rekursie kun amplekso"
@@ -1158,8 +1155,9 @@ msgstr "E750: Uzu unue \":profile start {dosiernomo}\""
msgid "Save changes to \"%s\"?"
msgstr "Ĉu konservi ŝanĝojn al \"%s\"?"
-msgid "Untitled"
-msgstr "Sen titolo"
+#, c-format
+msgid "E947: Job still running in buffer \"%s\""
+msgstr "E947: Tasko ankoraŭ aktiva en la bufro \"%s\""
#, c-format
msgid "E162: No write since last change for buffer \"%s\""
@@ -1199,7 +1197,7 @@ msgstr "W20: Pitono versio 2.x bezonata sed nesubtenata, ignoro de dosiero: %s"
#, c-format
msgid "W21: Required python version 3.x not supported, ignoring file: %s"
-msgstr "W21: pitono versio 3.x bezonata sed nesubtenata, ignore de dosiero: %s"
+msgstr "W21: pitono versio 3.x bezonata sed nesubtenata, ignoro de dosiero: %s"
msgid "Source Vim script"
msgstr "Ruli Vim-skripton"
@@ -1466,7 +1464,6 @@ msgstr "E189: \"%s\" ekzistas (aldonu ! por transpasi)"
msgid "E190: Cannot open \"%s\" for writing"
msgstr "E190: Ne eblas malfermi \"%s\" por skribi"
-#. set mark
msgid "E191: Argument must be a letter or forward/backward quote"
msgstr "E191: Argumento devas esti litero, citilo aŭ retrocitilo"
@@ -1508,13 +1505,15 @@ msgstr "E500: Liveras malplenan ĉenon"
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: Ne eblas malfermi dosieron viminfo en lega reĝimo"
+msgid "Untitled"
+msgstr "Sen titolo"
+
msgid "E196: No digraphs in this version"
msgstr "E196: Neniu duliteraĵo en tiu versio"
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: Ne eblas lanĉi (:throw) escepton kun prefikso 'Vim'"
-#. always scroll up, don't overwrite
#, c-format
msgid "Exception thrown: %s"
msgstr "Escepto lanĉita: %s"
@@ -1531,7 +1530,6 @@ msgstr "Escepto ne konservita: %s"
msgid "%s, line %ld"
msgstr "%s, linio %ld"
-#. always scroll up, don't overwrite
#, c-format
msgid "Exception caught: %s"
msgstr "Kaptis escepton: %s"
@@ -1557,7 +1555,6 @@ msgstr "Eraro kaj interrompo"
msgid "Error"
msgstr "Eraro"
-#. if (pending & CSTP_INTERRUPT)
msgid "Interrupt"
msgstr "Interrompo"
@@ -1600,15 +1597,12 @@ msgstr "E601: \":try\" ingita tro profunde"
msgid "E603: :catch without :try"
msgstr "E603: \":catch\" sen \":try\""
-#. Give up for a ":catch" after ":finally" and ignore it.
-#. * Just parse.
msgid "E604: :catch after :finally"
msgstr "E604: \":catch\" malantaŭ \":finally\""
msgid "E606: :finally without :try"
msgstr "E606: \":finally\" sen \":try\""
-#. Give up for a multiple ":finally" and ignore it.
msgid "E607: multiple :finally"
msgstr "E607: pluraj \":finally\""
@@ -1701,7 +1695,6 @@ msgstr "Vim: Legado el stdin...\n"
msgid "Reading from stdin..."
msgstr "Legado el stdin..."
-#. Re-opening the original file failed!
msgid "E202: Conversion made file unreadable!"
msgstr "E202: Konverto igis la dosieron nelegebla!"
@@ -1907,9 +1900,6 @@ msgstr "[sen EOL]"
msgid "[Incomplete last line]"
msgstr "[Nekompleta lasta linio]"
-#. don't overwrite messages here
-#. must give this prompt
-#. don't use emsg() here, don't want to flush the buffers
msgid "WARNING: The file has been changed since reading it!!!"
msgstr "AVERTO: La dosiero estas ŝanĝita de post kiam ĝi estis legita!!!"
@@ -1988,7 +1978,6 @@ msgstr "--Forviŝita--"
msgid "auto-removing autocommand: %s <buffer=%d>"
msgstr "aŭto-forviŝas aŭtokomandon: %s <bufro=%d>"
-#. the group doesn't exist
#, c-format
msgid "E367: No such group: \"%s\""
msgstr "E367: Ne ekzistas tia grupo: \"%s\""
@@ -2011,7 +2000,6 @@ msgstr "E216: Ne estas tia evento: %s"
msgid "E216: No such group or event: %s"
msgstr "E216: Ne ekzistas tia grupo aŭ evento: %s"
-#. Highlight title
msgid ""
"\n"
"--- Auto-Commands ---"
@@ -2195,18 +2183,15 @@ msgstr "Serĉi kion:"
msgid "Replace with:"
msgstr "Anstataŭigi per:"
-#. whole word only button
msgid "Match whole word only"
msgstr "Kongrui kun nur plena vorto"
-#. match case button
msgid "Match case"
msgstr "Uskleca kongruo"
msgid "Direction"
msgstr "Direkto"
-#. 'Up' and 'Down' buttons
msgid "Up"
msgstr "Supren"
@@ -2285,8 +2270,6 @@ msgstr "Trovi ĉenon (uzu '\\\\' por trovi '\\')"
msgid "Find & Replace (use '\\\\' to find a '\\')"
msgstr "Trovi kaj anstataŭigi (uzu '\\\\' por trovi '\\')"
-#. We fake this: Use a filter that doesn't select anything and a default
-#. * file name that won't be used.
msgid "Not Used"
msgstr "Ne uzata"
@@ -2360,7 +2343,6 @@ msgstr "Vim - Elektilo de tiparo"
msgid "Name:"
msgstr "Nomo:"
-#. create toggle button
msgid "Show size in Points"
msgstr "Montri grandon en punktoj"
@@ -2606,7 +2588,6 @@ msgstr "E261: konekto cscope %s netrovita"
msgid "cscope connection %s closed"
msgstr "konekto cscope %s fermita"
-#. should not reach here
msgid "E570: fatal error in cs_manage_matches"
msgstr "E570: neriparebla eraro en cs_manage_matches"
@@ -2768,7 +2749,6 @@ msgstr "nevalida numero de bufro"
msgid "not implemented yet"
msgstr "ankoraŭ ne realigita"
-#. ???
msgid "cannot set line(s)"
msgstr "ne eblas meti la linio(j)n"
@@ -2809,7 +2789,6 @@ msgid ""
msgstr ""
"ne eblas registri postalvokan komandon: bufro/fenestro estas jam forviŝiĝanta"
-#. This should never happen. Famous last word?
msgid ""
"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
"org"
@@ -2913,7 +2892,6 @@ msgstr "Vim: Averto: Eligo ne estas al terminalo\n"
msgid "Vim: Warning: Input is not from a terminal\n"
msgstr "Vim: Averto: Enigo ne estas el terminalo\n"
-#. just in case..
msgid "pre-vimrc command line"
msgstr "komanda linio pre-vimrc"
@@ -3179,6 +3157,9 @@ msgstr ""
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\tUzi <viminfo> anstataŭ .viminfo"
+msgid "--clean\t\t'nocompatible', Vim defaults, no plugins, no viminfo"
+msgstr "--clean\t\t'nocompatible', defaŭltaj agordoj de Vim, neniu viminfo"
+
msgid "-h or --help\tPrint Help (this message) and exit"
msgstr "-h aŭ --help\tAfiŝi Helpon (tiun mesaĝon) kaj eliri"
@@ -3279,11 +3260,9 @@ msgstr "--windowid <HWND>\tMalfermi Vim en alia win32 fenestraĵo"
msgid "No display"
msgstr "Neniu ekrano"
-#. Failed to send, abort.
msgid ": Send failed.\n"
msgstr ": Sendo malsukcesis.\n"
-#. Let vim start normally.
msgid ": Send failed. Trying to execute locally\n"
msgstr ": Sendo malsukcesis. Provo de loka plenumo\n"
@@ -3304,7 +3283,6 @@ msgstr "Neniu marko"
msgid "E283: No marks matching \"%s\""
msgstr "E283: Neniu marko kongruas kun \"%s\""
-#. Highlight title
msgid ""
"\n"
"mark line col file/text"
@@ -3312,7 +3290,6 @@ msgstr ""
"\n"
"mark linio kol dosiero/teksto"
-#. Highlight title
msgid ""
"\n"
" jump line col file/text"
@@ -3320,7 +3297,6 @@ msgstr ""
"\n"
" salt linio kol dosiero/teksto"
-#. Highlight title
msgid ""
"\n"
"change line col text"
@@ -3335,7 +3311,6 @@ msgstr ""
"\n"
"# Markoj de dosiero:\n"
-#. Write the jumplist with -'
msgid ""
"\n"
"# Jumplist (newest first):\n"
@@ -3405,7 +3380,6 @@ msgstr "E298: Ĉu ne akiris blokon n-ro 2?"
msgid "E843: Error while updating swap file crypt"
msgstr "E843: Eraro dum ĝisdatigo de ĉifrada permutodosiero .swp"
-#. could not (re)open the swap file, what can we do????
msgid "E301: Oops, lost the swap file!!!"
msgstr "E301: Ve, perdis la permutodosieron .swp!!!"
@@ -3589,7 +3563,6 @@ msgid "Using crypt key from swap file for the text file.\n"
msgstr ""
"Uzas ŝlosilon de ĉifrado el permuto dosiero .swp por la teksta dosiero.\n"
-#. use msg() to start the scrolling properly
msgid "Swap files found:"
msgstr "Permutodosiero .swp trovita:"
@@ -3759,8 +3732,6 @@ msgstr "Dum malfermo de dosiero \""
msgid " NEWER than swap file!\n"
msgstr " PLI NOVA ol permutodosiero .swp!\n"
-#. Some of these messages are long to allow translation to
-#. * other languages.
msgid ""
"\n"
"(1) Another program may be editing the same file. If this is the case,\n"
@@ -3850,7 +3821,6 @@ msgstr "E328: Menuo nur ekzistas en alia reĝimo"
msgid "E329: No menu \"%s\""
msgstr "E329: Neniu menuo \"%s\""
-#. Only a mnemonic or accelerator is not valid.
msgid "E792: Empty menu name"
msgstr "E792: Malplena nomo de menuo"
@@ -3863,8 +3833,6 @@ msgstr "E331: Aldono de menueroj direkte al menuzono estas malpermesita"
msgid "E332: Separator cannot be part of a menu path"
msgstr "E332: Disigilo ne rajtas esti ero de vojo de menuo"
-#. Now we have found the matching menu, and we list the mappings
-#. Highlight title
msgid ""
"\n"
"--- Menus ---"
@@ -3875,6 +3843,10 @@ msgstr ""
msgid "Tear off this menu"
msgstr "Disigi tiun menuon"
+#, c-format
+msgid "E335: Menu not defined for %s mode"
+msgstr "E335: Menuo ne estas difinita por reĝimo %s"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: Vojo de menuo devas konduki al menuero"
@@ -3882,10 +3854,6 @@ msgstr "E333: Vojo de menuo devas konduki al menuero"
msgid "E334: Menu not found: %s"
msgstr "E334: Menuo netrovita: %s"
-#, c-format
-msgid "E335: Menu not defined for %s mode"
-msgstr "E335: Menuo ne estas difinita por reĝimo %s"
-
msgid "E336: Menu path must lead to a sub-menu"
msgstr "E336: Vojo de menuo devas konduki al sub-menuo"
@@ -3957,7 +3925,6 @@ msgstr "Dialogujo de dosiera konservo"
msgid "Open File dialog"
msgstr "Dialogujo de dosiera malfermo"
-#. TODO: non-GUI file selector here
msgid "E338: Sorry, no file browser in console mode"
msgstr "E338: Bedaŭrinde ne estas dosierfoliumilo en konzola reĝimo"
@@ -4125,7 +4092,9 @@ msgid "E663: At end of changelist"
msgstr "E663: Ĉe fino de ŝanĝlisto"
msgid "Type :qa! and press <Enter> to abandon all changes and exit Vim"
-msgstr "Tajpu :qa! kaj premu <Enenklavon> por forlasi ĉiujn ŝanĝojn kaj eliri el Vim"
+msgstr ""
+"Tajpu :qa! kaj premu <Enenklavon> por forlasi ĉiujn ŝanĝojn kaj eliri el "
+"Vim"
#, c-format
msgid "1 line %sed 1 time"
@@ -4157,7 +4126,6 @@ msgstr "%ld linioj krommarĝenitaj "
msgid "E748: No previously used register"
msgstr "E748: Neniu reĝistro antaŭe uzata"
-#. must display the prompt
msgid "cannot yank; delete anyway"
msgstr "ne eblas kopii; tamen forviŝi"
@@ -4172,25 +4140,30 @@ msgstr "%ld linioj ŝanĝitaj"
msgid "freeing %ld lines"
msgstr "malokupas %ld liniojn"
-msgid "block of 1 line yanked"
-msgstr "bloko de 1 linio kopiita"
+#, c-format
+msgid " into \"%c"
+msgstr " en \"%c"
+
+#, c-format
+msgid "block of 1 line yanked%s"
+msgstr "bloko de 1 linio kopiita%s"
-msgid "1 line yanked"
-msgstr "1 linio kopiita"
+#, c-format
+msgid "1 line yanked%s"
+msgstr "1 linio kopiita%s"
#, c-format
-msgid "block of %ld lines yanked"
-msgstr "bloko de %ld linioj kopiita"
+msgid "block of %ld lines yanked%s"
+msgstr "bloko de %ld linioj kopiita%s"
#, c-format
-msgid "%ld lines yanked"
-msgstr "%ld linioj kopiitaj"
+msgid "%ld lines yanked%s"
+msgstr "%ld linioj kopiitaj%s"
#, c-format
msgid "E353: Nothing in register %s"
msgstr "E353: Nenio en reĝistro %s"
-#. Highlight title
msgid ""
"\n"
"--- Registers ---"
@@ -4251,9 +4224,6 @@ msgstr ""
msgid "(+%ld for BOM)"
msgstr "(+%ld por BOM)"
-msgid "%<%f%h%m%=Page %N"
-msgstr "%<%f%h%m%=Folio %N"
-
msgid "Thanks for flying Vim"
msgstr "Dankon pro flugi per Vim"
@@ -4361,6 +4331,9 @@ msgstr "E541: tro da elementoj"
msgid "E542: unbalanced groups"
msgstr "E542: misekvilibraj grupoj"
+msgid "E946: Cannot make a terminal with running job modifiable"
+msgstr "E946: Ne eblas igi modifebla terminalon kun aktiva tasko"
+
msgid "E590: A preview window already exists"
msgstr "E590: Antaŭvida fenestro jam ekzistas"
@@ -4379,9 +4352,6 @@ msgstr "E594: Bezonas almenaŭ %d kolumnojn"
msgid "E355: Unknown option: %s"
msgstr "E355: Nekonata opcio: %s"
-#. There's another character after zeros or the string
-#. * is empty. In both cases, we are trying to set a
-#. * num option using a string.
#, c-format
msgid "E521: Number required: &%s = '%s'"
msgstr "E521: Nombro bezonata: &%s = '%s'"
@@ -4454,7 +4424,6 @@ msgstr "ne eblas ŝanĝi reĝimon de konzolo?!\n"
msgid "mch_get_shellsize: not a console??\n"
msgstr "mch_get_shellsize: ne estas konzolo??\n"
-#. if Vim opened a window: Executing a shell may cause crashes
msgid "E360: Cannot execute shell with -f option"
msgstr "E360: Ne eblas plenumi ŝelon kun opcio -f"
@@ -4680,7 +4649,6 @@ msgstr "E376: Nevalida %%%c en prefikso de formata ĉeno"
msgid "E377: Invalid %%%c in format string"
msgstr "E377: Nevalida %%%c en formata ĉeno"
-#. nothing found
msgid "E378: 'errorformat' contains no pattern"
msgstr "E378: 'errorformat' enhavas neniun ŝablonon"
@@ -4719,9 +4687,6 @@ msgstr "E381: Ĉe la supro de stako de rapidriparo"
msgid "No entries"
msgstr "Neniu ano"
-msgid "E382: Cannot write, 'buftype' option is set"
-msgstr "E382: Ne eblas skribi, opcio 'buftype' estas ŝaltita"
-
msgid "Error file"
msgstr "Erara Dosiero"
@@ -4869,7 +4834,6 @@ msgstr "E867: (NFA) Nekonata operatoro '\\z%c'"
msgid "E867: (NFA) Unknown operator '\\%%%c'"
msgstr "E867: (NFA) Nekonata operatoro '\\%%%c'"
-#. should never happen
msgid "E868: Error building NFA with equivalence class!"
msgstr "E868: Eraro dum prekomputado de NFA kun ekvivalentoklaso!"
@@ -4880,13 +4844,11 @@ msgstr "E869: (NFA) Nekonata operatoro '\\@%c'"
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (NFS-regulesprimo) Eraro dum legado de limoj de ripeto"
-#. Can't have a multi follow a multi.
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr ""
"E871: (NFA-regulesprimo) Ne povas havi mult-selekton tuj post alia mult-"
"selekto!"
-#. Too many `('
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (NFA-regulesprimo) tro da '('"
@@ -4907,7 +4869,7 @@ msgstr ""
"statoj en la staplo"
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
-msgstr "E876: (NFA-regulesprimo) ne sufiĉa spaco por enmomorigi la tutan NFA "
+msgstr "E876: (NFA-regulesprimo) ne sufiĉa spaco por enmemorigi la tutan NFA "
msgid "E878: (NFA) Could not allocate memory for branch traversal!"
msgstr "E878: (NFA) Ne povis asigni memoron por traigi branĉojn!"
@@ -4994,7 +4956,6 @@ msgstr "E386: Atendis '?' aŭ '/' malantaŭ ';'"
msgid " (includes previously listed match)"
msgstr " (enhavas antaŭe listigitajn kongruojn)"
-#. cursor at status line
msgid "--- Included files "
msgstr "--- Inkluzivitaj dosieroj "
@@ -5071,8 +5032,6 @@ msgstr "Bedaŭrinde ne estas sugestoj"
msgid "Sorry, only %ld suggestions"
msgstr "Bedaŭrinde estas nur %ld sugestoj"
-#. for when 'cmdheight' > 1
-#. avoid more prompt
#, c-format
msgid "Change \"%.*s\" to:"
msgstr "Anstataŭigi \"%.*s\" per:"
@@ -5354,10 +5313,6 @@ msgstr "Densigis %d de %d nodoj; %d (%d%%) restantaj"
msgid "Reading back spell file..."
msgstr "Relegas la dosieron de literumo..."
-#.
-#. * Go through the trie of good words, soundfold each word and add it to
-#. * the soundfold trie.
-#.
msgid "Performing soundfolding..."
msgstr "Fonetika analizado..."
@@ -5412,8 +5367,6 @@ msgstr "Vorto '%.*s' aldonita al %s"
msgid "E763: Word characters differ between spell files"
msgstr "E763: Signoj de vorto malsamas tra literumaj dosieroj"
-#. This should have been checked when generating the .spl
-#. * file.
msgid "E783: duplicate char in MAP entry"
msgstr "E783: ripetita signo en rikordo MAP"
@@ -5443,7 +5396,8 @@ msgid "syntax spell notoplevel"
msgstr "sen literumado en teksto sen sintaksa grupo"
msgid "syntax spell default"
-msgstr "literumado en teksto sen sintaksa grupo, nur se ne estas @Spell aŭ @NoSpell"
+msgstr ""
+"literumado en teksto sen sintaksa grupo, nur se ne estas @Spell aŭ @NoSpell"
msgid "syntax iskeyword "
msgstr "sintakso iskeyword "
@@ -5680,7 +5634,6 @@ msgstr "E428: Ne eblas iri preter lastan kongruan etikedon"
msgid "File \"%s\" does not exist"
msgstr "La dosiero \"%s\" ne ekzistas"
-#. Give an indication of the number of matching tags
#, c-format
msgid "tag %d of %d%s"
msgstr "etikedo %d de %d%s"
@@ -5695,7 +5648,6 @@ msgstr " Uzo de etikedo kun malsama uskleco!"
msgid "E429: File \"%s\" does not exist"
msgstr "E429: Dosiero \"%s\" ne ekzistas"
-#. Highlight title
msgid ""
"\n"
" # TO tag FROM line in file/text"
@@ -5726,7 +5678,6 @@ msgstr "Antaŭ bajto %ld"
msgid "E432: Tags file not sorted: %s"
msgstr "E432: Etikeda dosiero ne estas ordigita: %s"
-#. never opened any tags file
msgid "E433: No tags file"
msgstr "E433: Neniu etikeda dosiero"
@@ -5762,7 +5713,6 @@ msgstr "E436: Neniu rikordo \"%s\" en termcap"
msgid "E437: terminal capability \"cm\" required"
msgstr "E437: kapablo de terminalo \"cm\" bezonata"
-#. Highlight title
msgid ""
"\n"
"--- Terminal keys ---"
@@ -5773,6 +5723,21 @@ msgstr ""
msgid "Cannot open $VIMRUNTIME/rgb.txt"
msgstr "Ne povas malfermi $VIMRUNTIME/rgb.txt"
+msgid "Terminal"
+msgstr "Terminalo"
+
+msgid "Terminal-finished"
+msgstr "Terminalo-finiĝis"
+
+msgid "active"
+msgstr "aktiva"
+
+msgid "running"
+msgstr "ruliĝas"
+
+msgid "finished"
+msgstr "finiĝis"
+
msgid "new shell started\n"
msgstr "nova ŝelo lanĉita\n"
@@ -5782,12 +5747,9 @@ msgstr "Vim: Eraro dum legado de eniro, elironta...\n"
msgid "Used CUT_BUFFER0 instead of empty selection"
msgstr "Uzis CUT_BUFFER0 anstataŭ malplenan apartigon"
-#. This happens when the FileChangedRO autocommand changes the
-#. * file in a way it becomes shorter.
msgid "E881: Line count changed unexpectedly"
msgstr "E881: Nombro de linioj ŝanĝiĝis neatendite"
-#. must display the prompt
msgid "No undo possible; continue anyway"
msgstr "Malfaro neebla; tamen daŭrigi"
@@ -6421,7 +6383,6 @@ msgstr "Kompari per Vim"
msgid "Edit with &Vim"
msgstr "Redakti per &Vim"
-#. Now concatenate
msgid "Edit with existing Vim - "
msgstr "Redakti per ekzistanta Vim - "
@@ -6440,10 +6401,6 @@ msgstr "Serĉvojo estas tro longa!"
msgid "--No lines in buffer--"
msgstr "--Neniu linio en bufro--"
-#.
-#. * The error messages that can be shared are included here.
-#. * Excluded are errors that are only used once and debugging messages.
-#.
msgid "E470: Command aborted"
msgstr "E470: komando ĉesigita"
@@ -6629,12 +6586,6 @@ msgstr "E484: Ne eblas malfermi dosieron %s"
msgid "E485: Can't read file %s"
msgstr "E485: Ne eblas legi dosieron %s"
-msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: Neniu skribo de post lasta ŝanĝo (aldonu ! por transpasi)"
-
-msgid "E37: No write since last change"
-msgstr "E37: Neniu skribo de post lasta ŝanĝo"
-
msgid "E38: Null argument"
msgstr "E38: Nula argumento"
@@ -6914,7 +6865,6 @@ msgstr "konstruilo de listo ne akceptas ŝlosilvortajn argumentojn"
msgid "list index out of range"
msgstr "indekso de listo ekster limoj"
-#. No more suitable format specifications in python-2.3
#, c-format
msgid "internal error: failed to get vim list item %d"
msgstr "interna eraro: obteno de vim-a listero %d malsukcesis"
diff --git a/src/po/fi.po b/src/po/fi.po
index b3daa5e..73136d9 100644
--- a/src/po/fi.po
+++ b/src/po/fi.po
@@ -1,6 +1,6 @@
# Finnish translation for Vim.
# Copyright (C) 2003-2006 Free Software Foundation, Inc.
-# 2007-2016, Flammie Pirinen <flammie@iki.fi>
+# 2007-2018, Flammie Pirinen <flammie@iki.fi>
#
# Jargonia ei ole yritetty suotta kotoperäistää missä teknisempi lainasanasto
# tulee paremmin kyseeseen.
@@ -16,15 +16,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim 7\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-08-23 12:27+0200\n"
-"PO-Revision-Date: 2016-08-29 11:27+0200\n"
+"POT-Creation-Date: 2017-10-04 17:59+0200\n"
+"PO-Revision-Date: 2017-10-05 11:17+0200\n"
"Last-Translator: Flammie A Pirinen <flammie@iki.fi>\n"
"Language-Team: Finnish <laatu@lokalisointi.org>\n"
"Language: fi\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "E831: bf_key_init() called with empty password"
msgstr "E831: bf_key_init() tyhjällä salasanalla"
@@ -59,6 +59,9 @@ msgstr "E83: Puskuria ei voitu varata, käytetään toista..."
msgid "E931: Buffer cannot be registered"
msgstr "E931: Puskuria ei voi rekisteröidä"
+msgid "E937: Attempt to delete a buffer that is in use"
+msgstr "E937: Ei voida poistaa puskuria joka on käytössä"
+
msgid "E515: No buffers were unloaded"
msgstr "E515: Puskureita ei vapautettu"
@@ -95,7 +98,6 @@ msgstr "E90: Ei voi vapauttaa viimeistä puskuria"
msgid "E84: No modified buffer found"
msgstr "E84: Ei muokattuja puskureita"
-#. back where we started, didn't find anything.
msgid "E85: There is no listed buffer"
msgstr "E85: Luetteloitua puskuria ei ole"
@@ -111,6 +113,19 @@ msgstr ""
"E89: Puskurin %ld muutoksia ei ole tallennettu (lisää komentoon ! "
"ohittaaksesi)"
+msgid "E948: Job still running (add ! to end the job)"
+msgstr "E948: Komento on kesken (lisää loppuun ! lopettaaksesi komennon)"
+
+msgid "E37: No write since last change (add ! to override)"
+msgstr ""
+"E37: Viimeisen muutoksen jälkeen ei ole kirjoitettu (lisää ! ohittaaksesi)"
+
+msgid "E948: Job still running"
+msgstr "E948: Komento on vielä käynnissä"
+
+msgid "E37: No write since last change"
+msgstr "E37: Viimeisimmän muutoksen jälkeen ei ole kirjoitettu mitään"
+
msgid "W14: Warning: List of file names overflow"
msgstr "W14: Varoitus: Tiedostonimiluettelon ylivuoto"
@@ -166,7 +181,6 @@ msgstr "rivi %ld/%ld --%d %%-- sarake "
msgid "[No Name]"
msgstr "[Nimetön]"
-#. must be a help buffer
msgid "help"
msgstr "ohje"
@@ -194,6 +208,9 @@ msgstr ""
"\n"
"# Puskuriluettelo:\n"
+msgid "E382: Cannot write, 'buftype' option is set"
+msgstr "E382: Ei voi kirjoittaa, buftype asetettu"
+
msgid "[Scratch]"
msgstr "[Raapust]"
@@ -215,13 +232,41 @@ msgstr " rivi=%ld id=%d nimi=%s"
msgid "E902: Cannot connect to port"
msgstr "E902: Ei voi yhdistää porttiin"
+msgid "E901: gethostbyname() in channel_open()"
+msgstr "E901: gethostbyname() funktiossa channel_open()"
+
+msgid "E898: socket() in channel_open()"
+msgstr "E898: socket() funktiossa channel_open()"
+
+msgid "E903: received command with non-string argument"
+msgstr "E903: komennolla ei-merkkijonoargumentti"
+
+msgid "E904: last argument for expr/call must be a number"
+msgstr "E904: viimeisen expr/call-argumentin pitää olla numero"
+
+msgid "E904: third argument for call must be a list"
+msgstr "E904: kolmannen argumentin pitää olla lista"
+
+#, c-format
+msgid "E905: received unknown command: %s"
+msgstr "E905: tuntematon komento: %s"
+
+#, c-format
+msgid "E630: %s(): write while not connected"
+msgstr "E630: %s(): ei voi kirjoittaa ilman yhteyttä"
+
+#, c-format
+msgid "E631: %s(): write failed"
+msgstr "E631: %s(): kirjoitus epäonnistui"
+
#, c-format
msgid "E917: Cannot use a callback with %s()"
msgstr "E917: Ei voitu käyttää callbackia %s()"
msgid "E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
-msgstr "E912: ei voida käyttää funktioita ch_evalexpr(), ch_sendexpr()"
-" raa'an tai nl-kanavan kanssa"
+msgstr ""
+"E912: ei voida käyttää funktioita ch_evalexpr(), ch_sendexpr() raa'an tai nl-"
+"kanavan kanssa"
msgid "E906: not an open channel"
msgstr "E906: ei ole avoin kanava"
@@ -334,7 +379,6 @@ msgstr "E791: Tyhjä keymap-kenttä"
msgid " Keyword completion (^N^P)"
msgstr " Avainsanatäydennys (^N^P)"
-#. ctrl_x_mode == 0, ^P/^N compl.
msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
msgstr " ^X-tila (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
@@ -406,13 +450,12 @@ msgstr "Luetaan: %s"
msgid "Scanning tags."
msgstr "Luetaan tägejä."
+msgid "match in file"
+msgstr "täsmäys tiedostossa"
+
msgid " Adding"
msgstr " Lisätään"
-#. showmode might reset the internal line pointers, so it must
-#. * be called before line = ml_get(), or when this address is no
-#. * longer needed. -- Acevedo.
-#.
msgid "-- Searching..."
msgstr "-- Haetaan..."
@@ -433,7 +476,6 @@ msgstr "täsmäys %d/%d"
msgid "match %d"
msgstr "täsmäys %d"
-#. maximum nesting of lists and dicts
msgid "E18: Unexpected characters in :let"
msgstr "E18: Odottamattomia merkkejä komennossa :let"
@@ -493,6 +535,10 @@ msgstr "E690: :for-kommenolta puuttuu in"
msgid "E108: No such variable: \"%s\""
msgstr "E108: Muuttujaa %s ei ole"
+#, c-format
+msgid "E940: Cannot lock or unlock variable %s"
+msgstr "E940: Muuttujaa %s ei voi lukita tai avata"
+
msgid "E743: variable nested too deep for (un)lock"
msgstr "E743: muuttujassa liian monta tasoa lukituksen käsittelyyn"
@@ -543,8 +589,8 @@ msgid "E115: Missing quote: %s"
msgstr "E115: Puuttuva lainausmerkki: %s"
msgid "Not enough memory to set references, garbage collection aborted!"
-msgstr "Ei tarpeeksi muistia viitteiden asettamista varten, roskiekeruu "
-"peruttiin."
+msgstr ""
+"Ei tarpeeksi muistia viitteiden asettamista varten, roskiekeruu peruttiin."
msgid "E724: variable nested too deep for displaying"
msgstr "E724: muuttuja on upotettu liian syvälle näytettäväksi"
@@ -662,21 +708,10 @@ msgstr "add()-argumentti"
msgid "E785: complete() can only be used in Insert mode"
msgstr "E785: complete() toimii vain syöttötilassa"
-#.
-#. * Yes this is ugly, I don't particularly like it either. But doing it
-#. * this way has the compelling advantage that translations need not to
-#. * be touched at all. See below what 'ok' and 'ync' are used for.
-#.
msgid "&Ok"
msgstr "&Ok"
#, c-format
-msgid "+-%s%3ld line: "
-msgid_plural "+-%s%3ld lines: "
-msgstr[0] "+-%s%3ld rivi: "
-msgstr[1] "+-%s%3ld riviä: "
-
-#, c-format
msgid "E700: Unknown function: %s"
msgstr "E700: Tuntematon funktio: %s"
@@ -709,6 +744,10 @@ msgstr "E916: ei ole job"
msgid "E701: Invalid type for len()"
msgstr "E701: Virheellinen tyyppi funktiolle len()"
+#, c-format
+msgid "E798: ID is reserved for \":match\": %ld"
+msgstr "E798: ID on varattu kohteelle \":match\": %ld"
+
msgid "E726: Stride is zero"
msgstr "E726: Stride on nolla"
@@ -718,8 +757,8 @@ msgstr "E727: Alku on lopun jälkeen"
msgid "<empty>"
msgstr "<tyhjä>"
-msgid "E240: No connection to Vim server"
-msgstr "E240: Ei yhteyttä vim-palvelimeen"
+msgid "E240: No connection to the X server"
+msgstr "E240: Ei yhteyttä X-palvelimeen"
#, c-format
msgid "E241: Unable to send to %s"
@@ -728,6 +767,12 @@ msgstr "E241: Kohteeseen %s lähettäminen ei onnistunut"
msgid "E277: Unable to read a server reply"
msgstr "E277: Palvelimen vastauksen lukeminen ei onnistunut"
+msgid "E941: already started a server"
+msgstr "E941: palvelin on jo käynnissä"
+
+msgid "E942: +clientserver feature not available"
+msgstr "E942: +clientserver-toiminto ei ole saatavilla"
+
msgid "remove() argument"
msgstr "remove()-argumentti"
@@ -769,6 +814,156 @@ msgstr "E677: Väliaikaistiedostoon kirjoittaminen ei onnistunut"
msgid "E921: Invalid callback argument"
msgstr "E921: Virheellinen callback-argumentti"
+msgid "Entering Debug mode. Type \"cont\" to continue."
+msgstr "Siirrytään vianetsintätilaan, kirjoita cont jatkaaksesi."
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "rivi %ld: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "kmnt: %s"
+
+msgid "frame is zero"
+msgstr "kehys on nolla"
+
+#, c-format
+msgid "frame at highest level: %d"
+msgstr "kehys ylimmällä tasolla: %d"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "Katkaisukohta %s%s rivillä %ld"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: Katkaisukohta puuttuu: %s"
+
+msgid "No breakpoints defined"
+msgstr "Ei katkaisukohtia"
+
+#, c-format
+msgid "%3d %s %s line %ld"
+msgstr "%3d %s %s rivi %ld"
+
+msgid "E750: First use \":profile start {fname}\""
+msgstr "E750: Aloita käskyllä :profile start {fname}"
+
+msgid "Save As"
+msgstr "Tallenna nimellä"
+
+#, c-format
+msgid "Save changes to \"%s\"?"
+msgstr "Tallennetaanko muutokset tiedostoon %s?"
+
+#, c-format
+msgid "E947: Job still running in buffer \"%s\""
+msgstr "E947: Komento on vielä käynnissä puskurissa \"%s\""
+
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: Muutoksia ei ole kirjoitettu puskurin %s viime muutoksen jälkeen"
+
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr "Varoitus: Puskuri vaihtui odottamatta (tarkista autocommands)"
+
+msgid "E163: There is only one file to edit"
+msgstr "E163: Vain yksi tiedosto muokattavana"
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: Ensimmäisen tiedoston ohi ei voi mennä"
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: Viimeisen tiedoston ohi ei voi mennä"
+
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: kääntäjää ei tueta: %s"
+
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "Etsitään ilmausta %s kohteesta %s"
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "Etsitään ilmausta %s"
+
+#, c-format
+msgid "not found in '%s': \"%s\""
+msgstr "'%s' ei löydy kohteesta: %s"
+
+#, c-format
+msgid "W20: Required python version 2.x not supported, ignoring file: %s"
+msgstr "W20: Vaadittu python-versio 2.x ei ole tuettu. Ohitetaan: %s"
+
+#, c-format
+msgid "W21: Required python version 3.x not supported, ignoring file: %s"
+msgstr "W21: Vaadittu python-versio 3.x ei ole tuettu. Ohitetaan: %s"
+
+msgid "Source Vim script"
+msgstr "Lataa vim-skripti"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "Hakemistoa ei voi ladata: %s"
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "ei voitu ladata %s"
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "rivi %ld: ei voitu ladata %s"
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "ladataan %s"
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "rivi %ld: ladataan %s"
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "ladattu %s"
+
+#, c-format
+msgid "continuing in %s"
+msgstr "jatkaa kohdassa %s"
+
+msgid "modeline"
+msgstr "mode-rivi"
+
+msgid "--cmd argument"
+msgstr "--cmd-argumentti"
+
+msgid "-c argument"
+msgstr "-c-argumentti"
+
+msgid "environment variable"
+msgstr "ympäristömuuttuja"
+
+msgid "error handler"
+msgstr "virhekäsittelin"
+
+msgid "W15: Warning: Wrong line separator, ^M may be missing"
+msgstr "W15: Varoitus: Väärä rivierotin, ^M saattaa puuttua"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: :scriptencoding ladatun tiedoston ulkopuolella"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: :finish ladatun tiedoston ulkopuolella"
+
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "Käytössä oleva %skieli: %s"
+
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: Kieleksi ei voitu asettaa kieltä %s"
+
# puhutaan merkin ulkoasusta snprintf(..., c, c, c, c)
#, c-format
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
@@ -825,7 +1020,6 @@ msgstr " vanhaatiedostoa"
msgid " FAILED"
msgstr " EPÄONNISTUI"
-#. avoid a wait_return for this message, it's annoying
#, c-format
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: Viminfo-tiedostoon ei voitu kirjoittaa: %s"
@@ -846,7 +1040,6 @@ msgstr "Kirjoitetaan viminfo-tiedostoa %s"
msgid "E886: Can't rename viminfo file to %s!"
msgstr "E886: Viminfo-tiedostoa ei voit uudelleennimetä nimelle %s"
-#. Write the info:
#, c-format
msgid "# This viminfo file was generated by Vim %s.\n"
msgstr "# Vimin %s generoima viminfo-tiedosto.\n"
@@ -871,9 +1064,6 @@ msgstr ""
"\n"
"# Bar-rivit, kopiotu sellaisenaan:\n"
-msgid "Save As"
-msgstr "Tallenna nimellä"
-
msgid "Write partial file?"
msgstr "Kirjoita osittainen tiedosto"
@@ -966,7 +1156,7 @@ msgstr " 1 rivillä"
msgid " on %ld lines"
msgstr " %ld rivillä"
-msgid "E147: Cannot do :global recursive"
+msgid "E147: Cannot do :global recursive with a range"
msgstr "E147: :globalia ei voi suorittaa rekursiivisesti"
msgid "E148: Regular expression missing from global"
@@ -1005,6 +1195,10 @@ msgid "Sorry, help file \"%s\" not found"
msgstr "ohjetiedostoa %s ei löydy"
#, c-format
+msgid "E151: No match: %s"
+msgstr "E151: Ei täsmää: %s"
+
+#, c-format
msgid "E152: Cannot open %s for writing"
msgstr "E152: Ei voi avata tiedostoa %s kirjoittamista varten"
@@ -1072,144 +1266,6 @@ msgstr "[Poistettu]"
msgid "No old files"
msgstr "Ei vanhoja tiedostoja"
-msgid "Entering Debug mode. Type \"cont\" to continue."
-msgstr "Siirrytään vianetsintätilaan, kirjoita cont jatkaaksesi."
-
-#, c-format
-msgid "line %ld: %s"
-msgstr "rivi %ld: %s"
-
-#, c-format
-msgid "cmd: %s"
-msgstr "kmnt: %s"
-
-msgid "frame is zero"
-msgstr "kehys on nolla"
-
-#, c-format
-msgid "frame at highest level: %d"
-msgstr "kehys ylimmällä tasolla: %d"
-
-#, c-format
-msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "Katkaisukohta %s%s rivillä %ld"
-
-#, c-format
-msgid "E161: Breakpoint not found: %s"
-msgstr "E161: Katkaisukohta puuttuu: %s"
-
-msgid "No breakpoints defined"
-msgstr "Ei katkaisukohtia"
-
-#, c-format
-msgid "%3d %s %s line %ld"
-msgstr "%3d %s %s rivi %ld"
-
-msgid "E750: First use \":profile start {fname}\""
-msgstr "E750: Aloita käskyllä :profile start {fname}"
-
-#, c-format
-msgid "Save changes to \"%s\"?"
-msgstr "Tallennetaanko muutokset tiedostoon %s?"
-
-msgid "Untitled"
-msgstr "Nimetön"
-
-#, c-format
-msgid "E162: No write since last change for buffer \"%s\""
-msgstr "E162: Muutoksia ei ole kirjoitettu puskurin %s viime muutoksen jälkeen"
-
-msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
-msgstr "Varoitus: Puskuri vaihtui odottamatta (tarkista autocommands)"
-
-msgid "E163: There is only one file to edit"
-msgstr "E163: Vain yksi tiedosto muokattavana"
-
-msgid "E164: Cannot go before first file"
-msgstr "E164: Ensimmäisen tiedoston ohi ei voi mennä"
-
-msgid "E165: Cannot go beyond last file"
-msgstr "E165: Viimeisen tiedoston ohi ei voi mennä"
-
-#, c-format
-msgid "E666: compiler not supported: %s"
-msgstr "E666: kääntäjää ei tueta: %s"
-
-#, c-format
-msgid "Searching for \"%s\" in \"%s\""
-msgstr "Etsitään ilmausta %s kohteesta %s"
-
-#, c-format
-msgid "Searching for \"%s\""
-msgstr "Etsitään ilmausta %s"
-
-#, c-format
-msgid "not found in '%s': \"%s\""
-msgstr "'%s' ei löydy kohteesta: %s"
-
-msgid "Source Vim script"
-msgstr "Lataa vim-skripti"
-
-#, c-format
-msgid "Cannot source a directory: \"%s\""
-msgstr "Hakemistoa ei voi ladata: %s"
-
-#, c-format
-msgid "could not source \"%s\""
-msgstr "ei voitu ladata %s"
-
-#, c-format
-msgid "line %ld: could not source \"%s\""
-msgstr "rivi %ld: ei voitu ladata %s"
-
-#, c-format
-msgid "sourcing \"%s\""
-msgstr "ladataan %s"
-
-#, c-format
-msgid "line %ld: sourcing \"%s\""
-msgstr "rivi %ld: ladataan %s"
-
-#, c-format
-msgid "finished sourcing %s"
-msgstr "ladattu %s"
-
-#, c-format
-msgid "continuing in %s"
-msgstr "jatkaa kohdassa %s"
-
-msgid "modeline"
-msgstr "mode-rivi"
-
-msgid "--cmd argument"
-msgstr "--cmd-argumentti"
-
-msgid "-c argument"
-msgstr "-c-argumentti"
-
-msgid "environment variable"
-msgstr "ympäristömuuttuja"
-
-msgid "error handler"
-msgstr "virhekäsittelin"
-
-msgid "W15: Warning: Wrong line separator, ^M may be missing"
-msgstr "W15: Varoitus: Väärä rivierotin, ^M saattaa puuttua"
-
-msgid "E167: :scriptencoding used outside of a sourced file"
-msgstr "E167: :scriptencoding ladatun tiedoston ulkopuolella"
-
-msgid "E168: :finish used outside of a sourced file"
-msgstr "E168: :finish ladatun tiedoston ulkopuolella"
-
-#, c-format
-msgid "Current %slanguage: \"%s\""
-msgstr "Käytössä oleva %skieli: %s"
-
-#, c-format
-msgid "E197: Cannot set language to \"%s\""
-msgstr "E197: Kieleksi ei voitu asettaa kieltä %s"
-
msgid "Entering Ex mode. Type \"visual\" to go to Normal mode."
msgstr "Siirrytään Ex-tilaan, kirjoita visual palataksesi normaaliin tilaan."
@@ -1244,6 +1300,9 @@ msgstr "Takaperoinen arvoalue annettu, OK kääntää"
msgid "E494: Use w or w>>"
msgstr "E494: Käytä w:tä tai w>>:aa"
+msgid "E943: Command table needs to be updated, run 'make cmdidxs'"
+msgstr "E943: Komentotaulukko pitää päivittää komennolla 'make cmdidxs'"
+
msgid "E319: Sorry, the command is not available in this version"
msgstr "E319: Komento ei ole käytettävissä tässä versiossa"
@@ -1406,7 +1465,6 @@ msgstr "E189: %s on jo olemassa (lisää komentoon ! ohittaaksesi)"
msgid "E190: Cannot open \"%s\" for writing"
msgstr "E190: Tiedostoa %s ei voitu avata kirjoittamista varten"
-#. set mark
msgid "E191: Argument must be a letter or forward/backward quote"
msgstr "E191: Argumentin eteen- tai taaksepäin lainaukseen pitää olla kirjain"
@@ -1444,13 +1502,15 @@ msgstr "E500: Loppuarvo on tyhjä merkkijono"
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: Viminfoa ei voi avata lukemista varten"
+msgid "Untitled"
+msgstr "Nimetön"
+
msgid "E196: No digraphs in this version"
msgstr "E196: Digraafeja ei ole tässä versiossa"
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: Vim-alkuisia poikkeuksia ei voi heittää :throw-komennolla"
-#. always scroll up, don't overwrite
#, c-format
msgid "Exception thrown: %s"
msgstr "Poikkeus heitetty: %s"
@@ -1467,7 +1527,6 @@ msgstr "Poikkeus poistettu: %s"
msgid "%s, line %ld"
msgstr "%s, rivi %ld"
-#. always scroll up, don't overwrite
#, c-format
msgid "Exception caught: %s"
msgstr "Poikkeus otettu kiinni: %s"
@@ -1493,7 +1552,6 @@ msgstr "Virhe ja keskeytys"
msgid "Error"
msgstr "Virhe"
-#. if (pending & CSTP_INTERRUPT)
msgid "Interrupt"
msgstr "Keskeytys"
@@ -1536,15 +1594,12 @@ msgstr "E601: liian monta tasoa :try-komennossa"
msgid "E603: :catch without :try"
msgstr "E603: :catch ilman komentoa :try"
-#. Give up for a ":catch" after ":finally" and ignore it.
-#. * Just parse.
msgid "E604: :catch after :finally"
msgstr "E604: :catch ilman komentoa :finally"
msgid "E606: :finally without :try"
msgstr "E606: :finally ilman komentoa :try"
-#. Give up for a multiple ":finally" and ignore it.
msgid "E607: multiple :finally"
msgstr "E607: :finally monta kertaa"
@@ -1638,7 +1693,6 @@ msgstr "Vim: Luetaan vakiosyötteestä...\n"
msgid "Reading from stdin..."
msgstr "Luetaan vakiosyötteestä"
-#. Re-opening the original file failed!
msgid "E202: Conversion made file unreadable!"
msgstr "E202: Muunnos teki tiedostosta lukukelvottoman."
@@ -1856,9 +1910,6 @@ msgid "[Incomplete last line]"
msgstr "[Vajaa viimeinen rivi]"
# Jos aukiolevaa tiedostoa sörkkii toisella ohjelmalla
-#. don't overwrite messages here
-#. must give this prompt
-#. don't use emsg() here, don't want to flush the buffers
msgid "WARNING: The file has been changed since reading it!!!"
msgstr "VAROITUS: tiedosto on muuttunut viime lukukerran jälkeen!"
@@ -1934,21 +1985,23 @@ msgstr "E462: Ei voitu valmistella uudelleen avausta %s"
msgid "E321: Could not reload \"%s\""
msgstr "E321: Ei voitu uudelleenavata %s"
+msgid "--Deleted--"
+msgstr "--Poistettu--"
+
#, c-format
msgid "auto-removing autocommand: %s <buffer=%d>"
msgstr "poistetaan autocommand automaattisesti: %s <puskuri=%d>"
-#. the group doesn't exist
#, c-format
msgid "E367: No such group: \"%s\""
msgstr "E367: Ryhmää ei ole: %s"
+msgid "E936: Cannot delete the current group"
+msgstr "E936: Nykyistä ryhmää ei voi poistaa"
+
msgid "W19: Deleting augroup that is still in use"
msgstr "W19: käytössä oleva augroup poistetaan"
-msgid "--Deleted--"
-msgstr "--Poistettu--"
-
#, c-format
msgid "E215: Illegal character after *: %s"
msgstr "E215: Virheellinen merkki *:n jälkeen: %s"
@@ -1961,7 +2014,6 @@ msgstr "E216: Eventtiä ei ole: %s"
msgid "E216: No such group or event: %s"
msgstr "E216: Ryhmää tai eventtiä ei ole: %s"
-#. Highlight title
msgid ""
"\n"
"--- Auto-Commands ---"
@@ -2009,12 +2061,6 @@ msgstr "E350: Taitoksia ei voi tehdä tällä foldmethodilla"
msgid "E351: Cannot delete fold with current 'foldmethod'"
msgstr "E351: Taitosta ei voi poistaa tällä foldmethodilla"
-#, c-format
-msgid "+--%3ld line folded "
-msgid_plural "+--%3ld lines folded "
-msgstr[0] "+--%3ld rivi taitettu pois "
-msgstr[1] "+--%3ld riviä taitettu pois "
-
msgid "E222: Add to read buffer"
msgstr "E222: Lisää lukupuskuriin"
@@ -2046,6 +2092,37 @@ msgstr "Kuvausta ei löydy"
msgid "E228: makemap: Illegal mode"
msgstr "E228: makemap: Virheellinen tila"
+msgid "<cannot open> "
+msgstr "<ei voi avata> "
+
+#, c-format
+msgid "E616: vim_SelFile: can't get font %s"
+msgstr "E616: vim_SelFile: ei saada fonttia %s"
+
+msgid "E614: vim_SelFile: can't return to current directory"
+msgstr "E614: vim_SelFile: nykyiseen hakemistoon ei voi palata"
+
+msgid "Pathname:"
+msgstr "Polku:"
+
+msgid "E615: vim_SelFile: can't get current directory"
+msgstr "E615: vim_SelFile: nykyistä hakemistoa ei saada selville"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Cancel"
+msgstr "Peru"
+
+msgid "Vim dialog"
+msgstr "Vim-ikkuna"
+
+msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
+msgstr "Vierityspalkki: Pixmapin geometria ei selviä"
+
+msgid "E232: Cannot create BalloonEval with both message and callback"
+msgstr "E232: Ei voi luoda BalloonEvalia viestille ja callbackille"
+
msgid "E851: Failed to create a new process for the GUI"
msgstr "E851: Ei voitu luoda uutta prosessia käyttöliittymälle"
@@ -2075,37 +2152,6 @@ msgstr "E254: Väriä %s ei voi määritellä"
msgid "No match at cursor, finding next"
msgstr "Ei täsmäystä kursorin alla, etsitään seuraava"
-msgid "<cannot open> "
-msgstr "<ei voi avata> "
-
-#, c-format
-msgid "E616: vim_SelFile: can't get font %s"
-msgstr "E616: vim_SelFile: ei saada fonttia %s"
-
-msgid "E614: vim_SelFile: can't return to current directory"
-msgstr "E614: vim_SelFile: nykyiseen hakemistoon ei voi palata"
-
-msgid "Pathname:"
-msgstr "Polku:"
-
-msgid "E615: vim_SelFile: can't get current directory"
-msgstr "E615: vim_SelFile: nykyistä hakemistoa ei saada selville"
-
-msgid "OK"
-msgstr "OK"
-
-msgid "Cancel"
-msgstr "Peru"
-
-msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
-msgstr "Vierityspalkki: Pixmapin geometria ei selviä"
-
-msgid "Vim dialog"
-msgstr "Vim-ikkuna"
-
-msgid "E232: Cannot create BalloonEval with both message and callback"
-msgstr "E232: Ei voi luoda BalloonEvalia viestille ja callbackille"
-
msgid "_Cancel"
msgstr "_Peru"
@@ -2148,18 +2194,15 @@ msgstr "Etsi:"
msgid "Replace with:"
msgstr "Korvaa:"
-#. whole word only button
msgid "Match whole word only"
msgstr "Korvaa kokonaisia sanoja"
-#. match case button
msgid "Match case"
msgstr "Kirjaintaso"
msgid "Direction"
msgstr "Suunta"
-#. 'Up' and 'Down' buttons
msgid "Up"
msgstr "Ylös"
@@ -2238,8 +2281,6 @@ msgstr "Etsi merkkijonoa (\\\\:llä löytää \\:t)"
msgid "Find & Replace (use '\\\\' to find a '\\')"
msgstr "Etsi ja korvaa (\\\\:llä löytää \\:t)"
-#. We fake this: Use a filter that doesn't select anything and a default
-#. * file name that won't be used.
msgid "Not Used"
msgstr "Ei käytössä"
@@ -2296,9 +2337,7 @@ msgstr "Fontti0:n leveys: %ld"
#, c-format
msgid "Font1 width: %ld"
-msgstr ""
-"Fontti1:n leveys: %ld"
-
+msgstr "Fontti1:n leveys: %ld"
msgid "Invalid font specification"
msgstr "Virheellinen fonttimääritys"
@@ -2315,7 +2354,6 @@ msgstr "Vim - fonttivalitsin"
msgid "Name:"
msgstr "Nimi:"
-#. create toggle button
msgid "Show size in Points"
msgstr "Näytä koko pisteinä"
@@ -2560,7 +2598,6 @@ msgstr "E261: cscope-yhteys %s puuttuu"
msgid "cscope connection %s closed"
msgstr "cscope-yhteys %s on katkaistu"
-#. should not reach here
msgid "E570: fatal error in cs_manage_matches"
msgstr "E570: kriittinen virhe cs_manage_matches-funktiossa"
@@ -2658,14 +2695,16 @@ msgstr "rivinumero arvoalueen ulkopuolelta"
msgid "not allowed in the Vim sandbox"
msgstr "ei sallittu Vimin hiekkalaatikossa"
-msgid "E836: This Vim cannot execute :python after using :py3"
-msgstr "E836: Python: Ei voi käyttää komentoja :py ja :py3 samassa istunnossa"
+msgid "E837: This Vim cannot execute :py3 after using :python"
+msgstr "E837: Python: Ei voi käyttää komentoja :py ja :py3 samassa istunnossa"
msgid ""
"E263: Sorry, this command is disabled, the Python library could not be "
"loaded."
-msgstr ""
-"E263: komento ei toimi, Python-kirjaston lataaminen ei onnistunut."
+msgstr "E263: komento ei toimi, Python-kirjaston lataaminen ei onnistunut."
+
+msgid "E836: This Vim cannot execute :python after using :py3"
+msgstr "E836: Python: Ei voi käyttää komentoja :py ja :py3 samassa istunnossa"
msgid ""
"E887: Sorry, this command is disabled, the Python's site module could not be "
@@ -2676,9 +2715,6 @@ msgstr ""
msgid "E659: Cannot invoke Python recursively"
msgstr "E659: Pythonia ei voi kutsua rekursiivisesti"
-msgid "E837: This Vim cannot execute :py3 after using :python"
-msgstr "E837: Python: Ei voi käyttää komentoja :py ja :py3 samassa istunnossa"
-
msgid "E265: $_ must be an instance of String"
msgstr "E265: muuttujan $_ pitää olla Stringin instanssi"
@@ -2714,7 +2750,6 @@ msgstr "virheellinen puskurinumero"
msgid "not implemented yet"
msgstr "ei toteutettu"
-#. ???
msgid "cannot set line(s)"
msgstr "ei voi asettaa rivejä"
@@ -2753,7 +2788,6 @@ msgid ""
"cannot register callback command: buffer/window is already being deleted"
msgstr "callbackia ei voi rekisteröidä: puskuri tai ikkuna on poistettu"
-#. This should never happen. Famous last word?
msgid ""
"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
"org"
@@ -2789,6 +2823,10 @@ msgid "E251: VIM instance registry property is badly formed. Deleted!"
msgstr "E251: VIMin instanssin rekisteriarvo on virheellinen, poistettiin."
#, c-format
+msgid "E938: Duplicate key in JSON: \"%s\""
+msgstr "E938: Kaksi samaa avainta JSONissa: %s"
+
+#, c-format
msgid "E696: Missing comma in List: %s"
msgstr "E696: Listasta puuttuu pilkku: %s"
@@ -2848,7 +2886,6 @@ msgstr "Vim: Varoitus: Tuloste ei mene terminaalille\n"
msgid "Vim: Warning: Input is not from a terminal\n"
msgstr "Vim: Varoitus: Syöte ei tule terminaalilta\n"
-#. just in case..
msgid "pre-vimrc command line"
msgstr "esi-vimrc-komentorivi"
@@ -3011,6 +3048,10 @@ msgstr "-T <terminaali>\tAseta terminaalin tyypiksi <terminaali>"
msgid "--not-a-term\t\tSkip warning for input/output not being a terminal"
msgstr "--not-a-term\t\tOhita varoitus siitä että i/o ei ole terminaali"
+msgid "--ttyfail\t\tExit if input or output is not a terminal"
+msgstr "--ttyfail\t\tLopeta jos syöttö tai tuloste ei tule terminaalista tai "
+"terminaaliin vastaavasti"
+
msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
msgstr "-u <vimrc>\t\tKäytä <vimrc>-tiedostoa .vimrc:iden sijasta"
@@ -3109,6 +3150,10 @@ msgstr "--startuptime <file>\tKirjoita käynnistysaikaviestit tiedostoon <file>"
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\tKäytä <viminfo>-tiedostoa .viminfon sijaan"
+msgid "--clean\t\t'nocompatible', Vim defaults, no plugins, no viminfo"
+msgstr "--clean\t\t'nocompatible', Vimin oletukset,"
+"ei liitännäisiä tai viminfoa"
+
msgid "-h or --help\tPrint Help (this message) and exit"
msgstr "-h tai --help\tTulosta ohje (tämä viesti) ja lopeta"
@@ -3210,11 +3255,9 @@ msgstr "--windowid <HWND>\tAvaa Vim annettuun win32-olioon "
msgid "No display"
msgstr "Ei näyttöä"
-#. Failed to send, abort.
msgid ": Send failed.\n"
msgstr ": Lähetys epäonnistui.\n"
-#. Let vim start normally.
msgid ": Send failed. Trying to execute locally\n"
msgstr ": Lähetys epäonnistui. Yritetään suorittaa paikallisena\n"
@@ -3235,7 +3278,6 @@ msgstr "Ei asetettuja merkkejä"
msgid "E283: No marks matching \"%s\""
msgstr "E283: Mikään merkki ei täsmää ilmaukseen \"%s\""
-#. Highlight title
msgid ""
"\n"
"mark line col file/text"
@@ -3243,7 +3285,6 @@ msgstr ""
"\n"
"merkki rivi sarake tiedosto/teksti"
-#. Highlight title
msgid ""
"\n"
" jump line col file/text"
@@ -3251,7 +3292,6 @@ msgstr ""
"\n"
"hyppy rivi sarake tiedosto/teksti"
-#. Highlight title
msgid ""
"\n"
"change line col text"
@@ -3266,7 +3306,6 @@ msgstr ""
"\n"
"# Tiedoston merkit:\n"
-#. Write the jumplist with -'
msgid ""
"\n"
"# Jumplist (newest first):\n"
@@ -3336,7 +3375,6 @@ msgstr "E298: Lohko 2:ta ei saatu?"
msgid "E843: Error while updating swap file crypt"
msgstr "E843: Virhe päivitettäessä swapin kryptausta"
-#. could not (re)open the swap file, what can we do????
msgid "E301: Oops, lost the swap file!!!"
msgstr "E301: Hups, swap-tiedosto hävisi!"
@@ -3515,7 +3553,6 @@ msgstr ""
msgid "Using crypt key from swap file for the text file.\n"
msgstr "Käytetään swäpin salausavainta tekstitiedostolle\n"
-#. use msg() to start the scrolling properly
msgid "Swap files found:"
msgstr "Swap-tiedostoja löytyi:"
@@ -3685,8 +3722,6 @@ msgstr "Avattaessa tiedostoa "
msgid " NEWER than swap file!\n"
msgstr " joka on UUDEMPI kuin swap-tiedosto!\n"
-#. Some of these messages are long to allow translation to
-#. * other languages.
msgid ""
"\n"
"(1) Another program may be editing the same file. If this is the case,\n"
@@ -3774,7 +3809,6 @@ msgstr "E328: Valikko on olemassa vain toisessa tilassa"
msgid "E329: No menu \"%s\""
msgstr "E329: Ei valikkoa %s"
-#. Only a mnemonic or accelerator is not valid.
msgid "E792: Empty menu name"
msgstr "E792: tyhjä valikkonimi"
@@ -3787,8 +3821,6 @@ msgstr "E331: Valikkokohtia ei saa lisätä suoraan valikkopalkkiin"
msgid "E332: Separator cannot be part of a menu path"
msgstr "E332: Erotin ei voi olla valikkopolun osa"
-#. Now we have found the matching menu, and we list the mappings
-#. Highlight title
msgid ""
"\n"
"--- Menus ---"
@@ -3799,6 +3831,10 @@ msgstr ""
msgid "Tear off this menu"
msgstr "Repäise valikko irti"
+#, c-format
+msgid "E335: Menu not defined for %s mode"
+msgstr "E335: Valikkoa ei ole määritelty %s-tilassa"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: Valikkopolun on johdettava valikkokohtaan"
@@ -3806,10 +3842,6 @@ msgstr "E333: Valikkopolun on johdettava valikkokohtaan"
msgid "E334: Menu not found: %s"
msgstr "E334: Valikkoa ei löydy: %s"
-#, c-format
-msgid "E335: Menu not defined for %s mode"
-msgstr "E335: Valikkoa ei ole määritelty %s-tilassa"
-
msgid "E336: Menu path must lead to a sub-menu"
msgstr "E336: Valikkopolun pitää johtaa alivalikkoon"
@@ -3879,7 +3911,6 @@ msgstr "Tallennusikkuna"
msgid "Open File dialog"
msgstr "Avausikkuna"
-#. TODO: non-GUI file selector here
msgid "E338: Sorry, no file browser in console mode"
msgstr "E338: tiedostonselain puuttuu konsolitilasta"
@@ -4042,8 +4073,8 @@ msgstr "E662: Muutoslistan alussa"
msgid "E663: At end of changelist"
msgstr "E663: Muutoslistan lopussa"
-msgid "Type :quit<Enter> to exit Vim"
-msgstr "Komento :quit<Enter> lopettaa Vimin"
+msgid "Type :qa! and press <Enter> to abandon all changes and exit Vim"
+msgstr "Kirjoita :qa! ja <Enter> niin hylkäät muutokset ja lopetat Vimin"
#, c-format
msgid "1 line %sed 1 time"
@@ -4075,7 +4106,6 @@ msgstr "%ld riviä sisennetty "
msgid "E748: No previously used register"
msgstr "E748: Ei aiemmin käytettyjä rekisterejä"
-#. must display the prompt
msgid "cannot yank; delete anyway"
msgstr "Ei voi kopioida; poista joka tapauksessa"
@@ -4090,25 +4120,30 @@ msgstr "%ld riviä muuttui"
msgid "freeing %ld lines"
msgstr "vapautetaan %ld riviä"
-msgid "block of 1 line yanked"
-msgstr "1 rivin lohko kopioitu"
+#, c-format
+msgid " into \"%c"
+msgstr " kohteeksi \"%c"
+
+#, c-format
+msgid "block of 1 line yanked%s"
+msgstr "1 rivin lohko kopioitu%s"
-msgid "1 line yanked"
-msgstr "1 rivi kopioitu"
+#, c-format
+msgid "1 line yanked%s"
+msgstr "1 rivi kopioitu%s"
#, c-format
-msgid "block of %ld lines yanked"
-msgstr "lohko %ld riviltä kopioitu"
+msgid "block of %ld lines yanked%s"
+msgstr "lohko %ld riviltä kopioitu%s"
#, c-format
-msgid "%ld lines yanked"
-msgstr "%ld riviä kopioitu"
+msgid "%ld lines yanked%s"
+msgstr "%ld riviä kopioitu%s"
#, c-format
msgid "E353: Nothing in register %s"
msgstr "E353: Rekisterissä %s ei ole mitään"
-#. Highlight title
msgid ""
"\n"
"--- Registers ---"
@@ -4149,8 +4184,8 @@ msgstr "Valittu %s%ld/%ld riviä, %lld/%lld sanaa, %lld/%lld tavua"
msgid ""
"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
"%lld Bytes"
-msgstr "Valittu %s%ld/%ld riviä, %lld/%lld sanaa, %lld/%lld merkkiä, "
-"%lld/%lld tavua"
+msgstr ""
+"Valittu %s%ld/%ld riviä, %lld/%lld sanaa, %lld/%lld merkkiä, %lld/%lld tavua"
#, c-format
msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
@@ -4160,17 +4195,14 @@ msgstr "Sarake %s/%s, Rivi %ld/%ld, sana %lld/%lld, tavu %lld/%lld"
msgid ""
"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
"%lld of %lld"
-msgstr "Sarake %s/%s, rivi %ld/%ld, sana %lld/%lld, merkki %lld/%lld, tavu "
-"%lld/%lld"
+msgstr ""
+"Sarake %s/%s, rivi %ld/%ld, sana %lld/%lld, merkki %lld/%lld, tavu %lld/%lld"
# Unicode Byte Order Mark
#, c-format
msgid "(+%ld for BOM)"
msgstr "(+%ld BOMista)"
-msgid "%<%f%h%m%=Page %N"
-msgstr "%<%f%h%m%=Sivu %N"
-
msgid "Thanks for flying Vim"
msgstr "Kiitos että ajoit Vimiä"
@@ -4278,6 +4310,9 @@ msgstr "E541: liikaa kohteita"
msgid "E542: unbalanced groups"
msgstr "E542: epätasapainoisia ryhmiä"
+msgid "E946: Cannot make a terminal with running job modifiable"
+msgstr "E946: Terminaalia jossa suoritetaan komentoa ei voi tehdä muokattavaksi"
+
msgid "E590: A preview window already exists"
msgstr "E590: Esikatseluikkuna on jo olemassa"
@@ -4296,9 +4331,6 @@ msgstr "E594: Tarvitaan ainakin %d saraketta"
msgid "E355: Unknown option: %s"
msgstr "E355: Tuntematon asetus: %s"
-#. There's another character after zeros or the string
-#. * is empty. In both cases, we are trying to set a
-#. * num option using a string.
#, c-format
msgid "E521: Number required: &%s = '%s'"
msgstr "E521: tarvitaan luku: &%s = '%s'"
@@ -4371,7 +4403,6 @@ msgstr "ei voi vaihtaa konsolitilaa?\n"
msgid "mch_get_shellsize: not a console??\n"
msgstr "mch_get_shellsize: ei ole konsoli?\n"
-#. if Vim opened a window: Executing a shell may cause crashes
msgid "E360: Cannot execute shell with -f option"
msgstr "E360: Kuorta ei voi avata asetuksella -f"
@@ -4393,9 +4424,6 @@ msgstr "IO-virhe"
msgid "Message"
msgstr "Viesti"
-msgid "'columns' is not 80, cannot execute external commands"
-msgstr "columns ei ole 80, ei voi suorittaa ulkoista komentoa"
-
msgid "E237: Printer selection failed"
msgstr "E237: Tulostimen valinta epäonnistui"
@@ -4461,14 +4489,12 @@ msgstr ""
#, c-format
msgid "Could not set security context %s for %s"
-msgstr ""
-"Ei voitu asettaa turvallisuuskontekstia %s kohteelle %s"
+msgstr "Ei voitu asettaa turvallisuuskontekstia %s kohteelle %s"
# mikä security context?
#, c-format
msgid "Could not get security context %s for %s. Removing it!"
-msgstr ""
-"Ei saatu turvallisuuskontekstia %s kohteelle %s ja se poistetaan"
+msgstr "Ei saatu turvallisuuskontekstia %s kohteelle %s ja se poistetaan"
msgid ""
"\n"
@@ -4602,7 +4628,6 @@ msgstr "E376: Virheellinen %%%c muotoilumerkkijonon alussa"
msgid "E377: Invalid %%%c in format string"
msgstr "E377: Virheellinen %%%c muotoilumerkkijonossa"
-#. nothing found
msgid "E378: 'errorformat' contains no pattern"
msgstr "E378: errorformatissa ei ole kuvioita"
@@ -4641,9 +4666,6 @@ msgstr "E381: quickfix-pinon huipulla"
msgid "No entries"
msgstr "Ei kenttiä"
-msgid "E382: Cannot write, 'buftype' option is set"
-msgstr "E382: Ei voi kirjoittaa, buftype asetettu"
-
msgid "Error file"
msgstr "Virhetiedosto"
@@ -4668,6 +4690,12 @@ msgstr "E369: virheellinen olio kohdassa %s%%[]"
msgid "E769: Missing ] after %s["
msgstr "E769: ] puuttuu merkinnän %s[ jäljestä"
+msgid "E944: Reverse range in character class"
+msgstr "E944: Merkiluokan arvoalua on takaperin"
+
+msgid "E945: Range too large in character class"
+msgstr "E945: Liian laaja valikoima merkkiluokassa"
+
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: Pariton %s%%("
@@ -4694,6 +4722,9 @@ msgstr "E69: ] puuttuu merkinnän %s%%[ jäljestä"
msgid "E70: Empty %s%%[]"
msgstr "E70: Tyhjä %s%%[]"
+msgid "E65: Illegal back reference"
+msgstr "E65: Virheellinen täsmäysviittaus"
+
msgid "E339: Pattern too long"
msgstr "E339: Liian pitkä kuvio"
@@ -4730,9 +4761,6 @@ msgstr "E63: väärinkäytetty \\_"
msgid "E64: %s%c follows nothing"
msgstr "E64: %s%c jälkeen ei minkään"
-msgid "E65: Illegal back reference"
-msgstr "E65: Virheellinen täsmäysviittaus"
-
msgid "E68: Invalid character after \\z"
msgstr "E68: Virheellinen merkki ilmauksen \\z jälkeen"
@@ -4784,7 +4812,6 @@ msgstr "E867: (NFA) Tuntematon operaattori '\\z%c'"
msgid "E867: (NFA) Unknown operator '\\%%%c'"
msgstr "E867: (NFA) Tuntematon operaattori '\\%%%c'"
-#. should never happen
msgid "E868: Error building NFA with equivalence class!"
msgstr "E868: Virhe NFA:n ekvivalenssiluokkia tekemisessä"
@@ -4795,11 +4822,9 @@ msgstr "E869: (NFA) Tuntematon operaattori '\\@%c'"
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (NFA regexp) Virhe luettaessa toiston määriä"
-#. Can't have a multi follow a multi.
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr "E871: (NFA regexp) Multi ei voi seurata multia"
-#. Too many `('
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (NFA regexp) Liian monta suljetta '('"
@@ -4816,8 +4841,8 @@ msgid ""
"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
"left on stack"
msgstr ""
-"E875: (NFA regexp) (Muunnettaessa postfixistä NFA:ksi), liikaa "
-"tiloja jäljellä pinossa"
+"E875: (NFA regexp) (Muunnettaessa postfixistä NFA:ksi), liikaa tiloja "
+"jäljellä pinossa"
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (NFA regexp) Tila ei riitä NFA:n tallentamiseen"
@@ -4908,7 +4933,6 @@ msgstr "E386: ;:n jälkeen pitää olla ? tai /"
msgid " (includes previously listed match)"
msgstr " (sisältää viimeksi luetellun täsmäyksen)"
-#. cursor at status line
msgid "--- Included files "
msgstr "--- Sisällytetyt tiedostot "
@@ -4971,6 +4995,9 @@ msgstr "Varoitus: Ei löydetty sanalistaa %s_%s.spl tai %s_ascii.spl"
msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
msgstr "Varoitus: Ei löydetty sanalistaa %s.%s.spl tai %s.ascii.spl"
+msgid "E797: SpellFileMissing autocommand deleted buffer"
+msgstr "E797: SpellFileMissing autocommand poisti puskurin"
+
#, c-format
msgid "Warning: region %s not supported"
msgstr "Varoitus: osaa %s ei tueta"
@@ -4982,8 +5009,6 @@ msgstr "ei ehdotuksia"
msgid "Sorry, only %ld suggestions"
msgstr "vain %ld ehdotusta"
-#. for when 'cmdheight' > 1
-#. avoid more prompt
#, c-format
msgid "Change \"%.*s\" to:"
msgstr "Muuta %.*s:"
@@ -5266,10 +5291,6 @@ msgstr "Tiivistetty %d/%d noodia. %d (%d %%) jäljellä"
msgid "Reading back spell file..."
msgstr "Luetaan taas oikaisulukutiedostoa..."
-#.
-#. * Go through the trie of good words, soundfold each word and add it to
-#. * the soundfold trie.
-#.
msgid "Performing soundfolding..."
msgstr "Ääntämyksen mukaan yhdistellään..."
@@ -5324,18 +5345,37 @@ msgstr "Sana %.*s lisätty kohteeseen %s"
msgid "E763: Word characters differ between spell files"
msgstr "E763: Sanan merkit muuttuvat oikaisulukutiedostojen välillä"
-#. This should have been checked when generating the .spl
-#. * file.
msgid "E783: duplicate char in MAP entry"
msgstr "E783: kaksoiskappale merkistä MAP-kohdassa"
msgid "No Syntax items defined for this buffer"
msgstr "Ei syntaksikohteita tälle puskurille"
+msgid "syntax conceal on"
+msgstr "syntaksin piilotus päällä"
+
+msgid "syntax conceal off"
+msgstr "syntaksin piilotus pois"
+
#, c-format
msgid "E390: Illegal argument: %s"
msgstr "E390: Virheellinen argumentti: %s"
+msgid "syntax case ignore"
+msgstr "syntaksin merkkitason ohitus "
+
+msgid "syntax case match"
+msgstr "syntaksin merkkitason täsmäys"
+
+msgid "syntax spell toplevel"
+msgstr "syntaksin oikaisuluku päätasolla"
+
+msgid "syntax spell notoplevel"
+msgstr "syntaksin oikaisuluku ei-päätasolla"
+
+msgid "syntax spell default"
+msgstr "syntaksin oikaisuluku oletusarvolla"
+
msgid "syntax iskeyword "
msgstr "syntax iskeyword "
@@ -5570,7 +5610,6 @@ msgstr "E428: Ei voida edetä viimeisen täsmäävän tägin ohi"
msgid "File \"%s\" does not exist"
msgstr "Tiedostoa %s ei ole"
-#. Give an indication of the number of matching tags
#, c-format
msgid "tag %d of %d%s"
msgstr "tägi %d/%d%s"
@@ -5585,7 +5624,6 @@ msgstr " Tägissä eri kirjaintaso"
msgid "E429: File \"%s\" does not exist"
msgstr "E429: Tiedostoa %s ei ole"
-#. Highlight title
msgid ""
"\n"
" # TO tag FROM line in file/text"
@@ -5616,7 +5654,6 @@ msgstr "Ennen tavua %ld"
msgid "E432: Tags file not sorted: %s"
msgstr "E432: Tägitiedosto ei ole järjestetty: %s"
-#. never opened any tags file
msgid "E433: No tags file"
msgstr "E433: Ei tägitiedostoja"
@@ -5652,7 +5689,6 @@ msgstr "E436: %s ei löytynyt termcapista"
msgid "E437: terminal capability \"cm\" required"
msgstr "E437: terminaalilla pitää olla cm kyvyissään"
-#. Highlight title
msgid ""
"\n"
"--- Terminal keys ---"
@@ -5663,6 +5699,21 @@ msgstr ""
msgid "Cannot open $VIMRUNTIME/rgb.txt"
msgstr "Ei voida avata tiedostoa $VIMRUNTIME/rgb.txt"
+msgid "Terminal"
+msgstr "Terminaali"
+
+msgid "Terminal-finished"
+msgstr "Terminaali-lopetettu"
+
+msgid "active"
+msgstr "aktiivinen"
+
+msgid "running"
+msgstr "suoritetaan"
+
+msgid "finished"
+msgstr "lopetettu"
+
msgid "new shell started\n"
msgstr "uusi kuori avattu\n"
@@ -5672,12 +5723,9 @@ msgstr "Vim: Virhe luettaessa syötettä, poistutaan...\n"
msgid "Used CUT_BUFFER0 instead of empty selection"
msgstr "Käytettiin CUT_BUFFER0:aa tyhjän valinnan sijaan"
-#. This happens when the FileChangedRO autocommand changes the
-#. * file in a way it becomes shorter.
msgid "E881: Line count changed unexpectedly"
msgstr "E881: Rivimäärä vaihtui odottamatta"
-#. must display the prompt
msgid "No undo possible; continue anyway"
msgstr "Ei voi kumota, jatketaan silti"
@@ -5889,15 +5937,11 @@ msgstr "E129: Funktion nimi puuttuu"
#, c-format
msgid "E128: Function name must start with a capital or \"s:\": %s"
-msgstr ""
-"E128: Funktion nimen pitää alkaa suuraakkosella tai merkeillä ’s:’: "
-"%s"
+msgstr "E128: Funktion nimen pitää alkaa suuraakkosella tai merkeillä ’s:’: %s"
#, c-format
msgid "E884: Function name cannot contain a colon: %s"
-msgstr ""
-"E884: Funktion nimessä ei saa olla kaksoispistettä: "
-"%s"
+msgstr "E884: Funktion nimessä ei saa olla kaksoispistettä: %s"
#, c-format
msgid "E123: Undefined function: %s"
@@ -5911,13 +5955,17 @@ msgid "E862: Cannot use g: here"
msgstr "E862: g: ei toimi täällä"
#, c-format
-msgid "E932 Closure function should not be at top level: %s"
-msgstr "E932 Sulkeumafunktio ei voi olla uloimmalla tasolla: %s"
+msgid "E932: Closure function should not be at top level: %s"
+msgstr "E932: Sulkeumafunktion ei pitäisi olla uloimmalla tasolla: %s"
msgid "E126: Missing :endfunction"
msgstr "E126: :endfunction puuttuu"
#, c-format
+msgid "W22: Text found after :endfunction: %s"
+msgstr "W22: Ylimääräistä tekstiä :endfunction jälkeen: %s"
+
+#, c-format
msgid "E707: Function name conflicts with variable: %s"
msgstr "E707: Funktion nimi on ristiriidassa muuttujan kanssa: %s"
@@ -5940,14 +5988,6 @@ msgstr "E133: :return ei ole funktion sisällä"
msgid "E107: Missing parentheses: %s"
msgstr "E107: Sulkeita puuttuu: %s"
-#. Only MS VC 4.1 and earlier can do Win32s
-msgid ""
-"\n"
-"MS-Windows 16/32-bit GUI version"
-msgstr ""
-"\n"
-"MS-Windows 16- t. 32-bittinen GUI-versio"
-
msgid ""
"\n"
"MS-Windows 64-bit GUI version"
@@ -5962,9 +6002,6 @@ msgstr ""
"\n"
"MS-Windows 32-bittinen GUI-version"
-msgid " in Win32s mode"
-msgstr " Win32s-tilassa"
-
msgid " with OLE support"
msgstr " OLE-tuella"
@@ -6234,12 +6271,6 @@ msgstr "kirjoita :help register<Enter> lisätietoja varten"
msgid "menu Help->Sponsor/Register for information "
msgstr "valikko Ohje->Sponsoroi/Rekisteröi lisätietoja varten"
-msgid "WARNING: Windows 95/98/ME detected"
-msgstr "VAROITUS: Window 95/98/ME havaittu"
-
-msgid "type :help windows95<Enter> for info on this"
-msgstr "kirjoita :help windows95<Enter> lisätietoja varten"
-
msgid "Already only one window"
msgstr "Enää yksi ikkuna jäljellä"
@@ -6271,10 +6302,26 @@ msgstr "E446: Ei tiedostonimeä kursorin alla"
msgid "E447: Can't find file \"%s\" in path"
msgstr "E447: Tiedosto %s ei löydy polulta"
+#, c-format
+msgid "E799: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E799: Käyttökelvoton ID: %ld (pitää olla vähintään 1)"
+
+#, c-format
+msgid "E801: ID already taken: %ld"
+msgstr "E801: ID jo käytössä: %ld"
+
msgid "List or number required"
msgstr "Lista tai luku tarvitaan"
#, c-format
+msgid "E802: Invalid ID: %ld (must be greater than or equal to 1)"
+msgstr "E802: Käyttöklvoton ID: %ld (pitää olla vähintään 1)"
+
+#, c-format
+msgid "E803: ID not found: %ld"
+msgstr "E803: ID:tä ei löydy: %ld"
+
+#, c-format
msgid "E370: Could not load library %s"
msgstr "E370: Kirjaston %s lataaminen ei onnistu"
@@ -6296,7 +6343,6 @@ msgstr "Diffi Vimillä"
msgid "Edit with &Vim"
msgstr "Muokkaa &Vimillä"
-#. Now concatenate
msgid "Edit with existing Vim - "
msgstr "Muokkaa olemassaolevalla Vimillä - "
@@ -6315,10 +6361,6 @@ msgstr "Liian pitkä polku"
msgid "--No lines in buffer--"
msgstr "--Ei rivejä puskurissa--"
-#.
-#. * The error messages that can be shared are included here.
-#. * Excluded are errors that are only used once and debugging messages.
-#.
msgid "E470: Command aborted"
msgstr "E470: Komento peruttu"
@@ -6375,6 +6417,10 @@ msgstr "E236: Fontti %s ei ole tasavälinen"
msgid "E473: Internal error"
msgstr "E473: Sisäinen virhe"
+#, c-format
+msgid "E685: Internal error: %s"
+msgstr "E685: Sisäinen virhe: %s"
+
msgid "Interrupted"
msgstr "Keskeytetty"
@@ -6500,13 +6546,6 @@ msgstr "E484: Ei voi avata tiedostoa %s"
msgid "E485: Can't read file %s"
msgstr "E485: Ei voi lukea tiedostoa %s"
-msgid "E37: No write since last change (add ! to override)"
-msgstr ""
-"E37: Viimeisen muutoksen jälkeen ei ole kirjoitettu (lisää ! ohittaaksesi)"
-
-msgid "E37: No write since last change"
-msgstr "E37: Viimeisimmän muutoksen jälkeen ei ole kirjoitettu mitään"
-
msgid "E38: Null argument"
msgstr "E38: Null-argumentti"
@@ -6643,8 +6682,8 @@ msgstr "E592: winwidth ei voi olla pienempi kuin winminwidth"
msgid "E80: Error while writing"
msgstr "E80: Kirjoitusvirhe"
-msgid "Zero count"
-msgstr "Nollalaskuri"
+msgid "E939: Positive count required"
+msgstr "E939: Positiivinen luku tarvitaan"
msgid "E81: Using <SID> not in a script context"
msgstr "E81: <SID> skriptin ulkopuolella"
@@ -6658,10 +6697,6 @@ msgstr "E463: Alue on suojattu, muuttaminen ei onnistu"
msgid "E744: NetBeans does not allow changes in read-only files"
msgstr "E744: NetBeans ei tue muutoksia kirjoitussuojattuihin tiedostoihin"
-#, c-format
-msgid "E685: Internal error: %s"
-msgstr "E685: Sisäinen virhe: %s"
-
msgid "E363: pattern uses more memory than 'maxmempattern'"
msgstr "E363: kuvio käyttää enemmän muistia kuin maxmempattern on"
@@ -6728,8 +6763,8 @@ msgstr "odotettiin instanssia tyypeistä bytes() tai str(), ei %s"
msgid ""
"expected int(), long() or something supporting coercing to long(), but got %s"
msgstr ""
-"odotettiin instanssia tyypeistä int(), long() tai mitä tahansa joka muuntuisi "
-"tyyppiin long(), ei %s"
+"odotettiin instanssia tyypeistä int(), long() tai mitä tahansa joka "
+"muuntuisi tyyppiin long(), ei %s"
#, c-format
msgid "expected int() or something supporting coercing to int(), but got %s"
@@ -6766,8 +6801,9 @@ msgstr "odotettiin 3-tuplea tuloksena imp.find_module()-kutsulle, ei %s"
#, c-format
msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
-msgstr "odotettiin 3-tuple tuloksnea imp.find_module()-kutsulle, mutta tuplen "
-"koko onkin %d"
+msgstr ""
+"odotettiin 3-tuple tuloksnea imp.find_module()-kutsulle, mutta tuplen koko "
+"onkin %d"
msgid "internal error: imp.find_module returned tuple with NULL"
msgstr "sisäinen virhe: imp.find_module palautti tuplen joka sisältää nullin"
@@ -6795,7 +6831,6 @@ msgstr "listakonstruktori ei tue avainsanaparametrejä"
msgid "list index out of range"
msgstr "listaindeksi arvoalueen ulkopuolelta"
-#. No more suitable format specifications in python-2.3
#, c-format
msgid "internal error: failed to get vim list item %d"
msgstr "sisäinen virhe: ei pystytty hakea vimin listan indeksiä %d"
@@ -6819,7 +6854,8 @@ msgstr "sisäinen virhe: ei voitu lisätä kohtaa listaan"
#, c-format
msgid "attempt to assign sequence of size %d to extended slice of size %d"
-msgstr "yritettiin asettaa sekvenssiä jonka koko on %d sliceen jonka koko on %d"
+msgstr ""
+"yritettiin asettaa sekvenssiä jonka koko on %d sliceen jonka koko on %d"
msgid "failed to add item to list"
msgstr "ei voitu lisätä kohtaa listaan"
@@ -6949,11 +6985,9 @@ msgstr ""
"- lisää vim.path_hook muuttujaan sys.path_hooks\n"
"- lisää vim.VIM_SPECIAL_PATH muuttujaan sys.path\n"
-
msgid ""
"Failed to set path: sys.path is not a list\n"
"You should now append vim.VIM_SPECIAL_PATH to sys.path"
msgstr ""
"Ei onnistuttu asettaman polkua: sys.path ei ole list\n"
"Lisää vim.VIM_SPECIAL_PATH muuttujaan sys.path"
-
diff --git a/src/po/fr.po b/src/po/fr.po
index 2609507..c1bd43a 100644
--- a/src/po/fr.po
+++ b/src/po/fr.po
@@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Vim(Franais)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-11 23:10+0200\n"
-"PO-Revision-Date: 2017-01-12 05:16+0200\n"
+"POT-Creation-Date: 2017-10-04 23:32+0200\n"
+"PO-Revision-Date: 2017-10-04 23:44+0200\n"
"Last-Translator: Dominique Pell <dominique.pelle@gmail.com>\n"
"Language-Team: \n"
"Language: fr\n"
@@ -100,7 +100,6 @@ msgstr "E90: Impossible de dcharger le dernier tampon"
msgid "E84: No modified buffer found"
msgstr "E84: Aucun tampon n'est modifi"
-#. back where we started, didn't find anything.
msgid "E85: There is no listed buffer"
msgstr "E85: Aucun tampon n'est list"
@@ -117,6 +116,18 @@ msgid "E89: No write since last change for buffer %ld (add ! to override)"
msgstr ""
"E89: Le tampon %ld n'a pas t enregistr (ajoutez ! pour passer outre)"
+msgid "E948: Job still running (add ! to end the job)"
+msgstr "E948: Tche en cours d'excution (ajouter ! pour terminer la tche)"
+
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Modifications non enregistres (ajoutez ! pour passer outre)"
+
+msgid "E948: Job still running"
+msgstr "E948: Tche en cours d'excution"
+
+msgid "E37: No write since last change"
+msgstr "E37: Modifications non enregistres"
+
msgid "W14: Warning: List of file names overflow"
msgstr "W14: Alerte : La liste des noms de fichier dborde"
@@ -183,7 +194,6 @@ msgstr "ligne %ld sur %ld --%d%%-- col "
msgid "[No Name]"
msgstr "[Aucun nom]"
-#. must be a help buffer
msgid "help"
msgstr "aide"
@@ -214,6 +224,9 @@ msgstr ""
"\n"
"# Liste des tampons :\n"
+msgid "E382: Cannot write, 'buftype' option is set"
+msgstr "E382: criture impossible, l'option 'buftype' est active"
+
msgid "[Scratch]"
msgstr "[Brouillon]"
@@ -392,7 +405,6 @@ msgid " Keyword completion (^N^P)"
msgstr " Compltement de mot-cl (^N^P)"
# DB - todo : Faut-il une majuscule "mode" ?
-#. ctrl_x_mode == 0, ^P/^N compl.
msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
msgstr " mode ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
@@ -487,10 +499,6 @@ msgstr "correspondance dans le fichier"
msgid " Adding"
msgstr " Ajout"
-#. showmode might reset the internal line pointers, so it must
-#. * be called before line = ml_get(), or when this address is no
-#. * longer needed. -- Acevedo.
-#.
msgid "-- Searching..."
msgstr "-- Recherche en cours..."
@@ -521,7 +529,6 @@ msgstr "Correspondance %d sur %d"
msgid "match %d"
msgstr "Correspondance %d"
-#. maximum nesting of lists and dicts
msgid "E18: Unexpected characters in :let"
msgstr "E18: Caractres inattendus avant '='"
@@ -583,8 +590,6 @@ msgstr "E690: \"in\" manquant aprs :for"
msgid "E108: No such variable: \"%s\""
msgstr "E108: Variable inexistante : %s"
-#. For historic reasons this error is not given for a list or dict.
-#. * E.g., the b: dict could be locked/unlocked.
#, c-format
msgid "E940: Cannot lock or unlock variable %s"
msgstr "E940: Impossible de (d)verrouiler la variable %s"
@@ -770,11 +775,6 @@ msgstr "E785: complete() n'est utilisable que dans le mode Insertion"
# AB - Texte par dfaut du bouton de la bote de dialogue affiche par la
# fonction confirm().
-#.
-#. * Yes this is ugly, I don't particularly like it either. But doing it
-#. * this way has the compelling advantage that translations need not to
-#. * be touched at all. See below what 'ok' and 'ync' are used for.
-#.
msgid "&Ok"
msgstr "&Ok"
@@ -968,7 +968,6 @@ msgstr " CHEC"
# ses droits d'accs.
# AB - Le mot "viminfo" a t retir pour que le message ne dpasse pas 80
# caractres dans le cas courant o %s = /home/12345678/.viminfo
-#. avoid a wait_return for this message, it's annoying
#, c-format
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: L'criture dans le fichier %s est interdite"
@@ -993,7 +992,6 @@ msgstr "criture du fichier viminfo \"%s\""
msgid "E886: Can't rename viminfo file to %s!"
msgstr "E886: Impossible de renommer viminfo en %s"
-#. Write the info:
#, c-format
msgid "# This viminfo file was generated by Vim %s.\n"
msgstr "# Ce fichier viminfo a t gnr par Vim %s.\n"
@@ -1140,7 +1138,6 @@ msgstr " sur %ld lignes"
# AB - Il faut respecter l'esprit plus que la lettre.
# AB - Ce message devrait contenir une rfrence :vglobal.
-#. will increment global_busy to break out of the loop
msgid "E147: Cannot do :global recursive with a range"
msgstr "E147: :global ne peut pas excuter :global avec une plage"
@@ -1321,10 +1318,9 @@ msgstr "E750: Utilisez d'abord \":profile start {nomfichier}\""
msgid "Save changes to \"%s\"?"
msgstr "Enregistrer \"%s\" ?"
-# AB - Si les parenthses posent problme, il faudra remettre les guillemets
-# ci-dessus.
-msgid "Untitled"
-msgstr "(sans titre)"
+#, c-format
+msgid "E947: Job still running in buffer \"%s\""
+msgstr "E947: Tche en cours d'excution dans le buffer \"%s\""
# AB - Il faut respecter l'esprit plus que la lettre.
# AB - Ce message est similaire au message E89.
@@ -1470,7 +1466,8 @@ msgid "E494: Use w or w>>"
msgstr "E494: Utilisez w ou w>>"
msgid "E943: Command table needs to be updated, run 'make cmdidxs'"
-msgstr "E943: La table des commandes doit tre mise jour, lancez 'make cmdidxs'"
+msgstr ""
+"E943: La table des commandes doit tre mise jour, lancez 'make cmdidxs'"
msgid "E319: Sorry, the command is not available in this version"
msgstr "E319: Dsol, cette commande n'est pas disponible dans cette version"
@@ -1637,7 +1634,6 @@ msgstr "E189: \"%s\" existe (ajoutez ! pour passer outre)"
msgid "E190: Cannot open \"%s\" for writing"
msgstr "E190: Impossible d'ouvrir \"%s\" pour y crire"
-#. set mark
msgid "E191: Argument must be a letter or forward/backward quote"
msgstr "E191: L'argument doit tre une lettre ou une (contre-)apostrophe"
@@ -1675,13 +1671,17 @@ msgstr "E500: valu en une chane vide"
msgid "E195: Cannot open viminfo file for reading"
msgstr "E195: Impossible d'ouvrir le viminfo en lecture"
+# AB - Si les parenthses posent problme, il faudra remettre les guillemets
+# ci-dessus.
+msgid "Untitled"
+msgstr "(sans titre)"
+
msgid "E196: No digraphs in this version"
msgstr "E196: Pas de digraphes dans cette version"
msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
msgstr "E608: Impossible d'mettre des exceptions avec 'Vim' comme prfixe"
-#. always scroll up, don't overwrite
#, c-format
msgid "Exception thrown: %s"
msgstr "Exception mise : %s"
@@ -1698,7 +1698,6 @@ msgstr "Exception limine : %s"
msgid "%s, line %ld"
msgstr "%s, ligne %ld"
-#. always scroll up, don't overwrite
#, c-format
msgid "Exception caught: %s"
msgstr "Exception intercepte : %s"
@@ -1725,7 +1724,6 @@ msgstr "Erreur et interruption"
msgid "Error"
msgstr "Erreur"
-#. if (pending & CSTP_INTERRUPT)
msgid "Interrupt"
msgstr "Interruption"
@@ -1768,15 +1766,12 @@ msgstr "E601: Imbrication de :try trop importante"
msgid "E603: :catch without :try"
msgstr "E603: :catch sans :try"
-#. Give up for a ":catch" after ":finally" and ignore it.
-#. * Just parse.
msgid "E604: :catch after :finally"
msgstr "E604: :catch aprs :finally"
msgid "E606: :finally without :try"
msgstr "E606: :finally sans :try"
-#. Give up for a multiple ":finally" and ignore it.
msgid "E607: multiple :finally"
msgstr "E607: Il ne peut y avoir qu'un seul :finally"
@@ -1877,7 +1872,6 @@ msgstr "Vim : Lecture de stdin...\n"
msgid "Reading from stdin..."
msgstr "Lecture de stdin..."
-#. Re-opening the original file failed!
msgid "E202: Conversion made file unreadable!"
msgstr "E202: La conversion a rendu le fichier illisible !"
@@ -2092,9 +2086,6 @@ msgstr "[noeol]"
msgid "[Incomplete last line]"
msgstr "[Dernire ligne incomplte]"
-#. don't overwrite messages here
-#. must give this prompt
-#. don't use emsg() here, don't want to flush the buffers
msgid "WARNING: The file has been changed since reading it!!!"
msgstr "ALERTE : Le fichier a t modifi depuis que Vim l'a lu !"
@@ -2176,7 +2167,6 @@ msgstr "--Effac--"
msgid "auto-removing autocommand: %s <buffer=%d>"
msgstr "Autocommandes marques pour auto-suppression : %s <tampon=%d>"
-#. the group doesn't exist
#, c-format
msgid "E367: No such group: \"%s\""
msgstr "E367: Aucun groupe \"%s\""
@@ -2199,7 +2189,6 @@ msgstr "E216: Aucun vnement %s"
msgid "E216: No such group or event: %s"
msgstr "E216: Aucun vnement ou groupe %s"
-#. Highlight title
msgid ""
"\n"
"--- Auto-Commands ---"
@@ -2386,18 +2375,15 @@ msgstr "Rechercher :"
msgid "Replace with:"
msgstr "Remplacer par :"
-#. whole word only button
msgid "Match whole word only"
msgstr "Mots entiers seulement"
-#. match case button
msgid "Match case"
msgstr "Respecter la casse"
msgid "Direction"
msgstr "Direction"
-#. 'Up' and 'Down' buttons
msgid "Up"
msgstr "Haut"
@@ -2481,8 +2467,6 @@ msgstr "Chercher et remplacer (utilisez '\\\\' pour trouver un '\\')"
# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un
# paramtrage bidon afin de slectionner un rpertoire plutt qu'un
# fichier.
-#. We fake this: Use a filter that doesn't select anything and a default
-#. * file name that won't be used.
msgid "Not Used"
msgstr "Non utilis"
@@ -2563,7 +2547,6 @@ msgstr "Choisir une police - Vim"
msgid "Name:"
msgstr "Nom :"
-#. create toggle button
msgid "Show size in Points"
msgstr "Afficher la taille en Points"
@@ -2814,7 +2797,6 @@ msgstr "E261: Connexion cscope %s introuvable"
msgid "cscope connection %s closed"
msgstr "connexion cscope %s ferme"
-#. should not reach here
msgid "E570: fatal error in cs_manage_matches"
msgstr "E570: erreur fatale dans cs_manage_matches"
@@ -2979,7 +2961,6 @@ msgid "not implemented yet"
msgstr "pas encore implment"
# DB - TODO : le contexte est celui d'une annulation.
-#. ???
msgid "cannot set line(s)"
msgstr "Impossible de remettre la/les ligne(s)"
@@ -3020,7 +3001,6 @@ msgid ""
msgstr ""
"Impossible d'inscrire la commande de rappel : tampon/fentre en effacement"
-#. This should never happen. Famous last word?
msgid ""
"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
"org"
@@ -3123,7 +3103,6 @@ msgstr "Vim : Alerte : La sortie ne s'effectue pas sur un terminal\n"
msgid "Vim: Warning: Input is not from a terminal\n"
msgstr "Vim : Alerte : L'entre ne se fait pas sur un terminal\n"
-#. just in case..
msgid "pre-vimrc command line"
msgstr "ligne de commande pre-vimrc"
@@ -3390,6 +3369,9 @@ msgstr ""
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
msgstr "-i <viminfo>\t\tUtiliser <viminfo> au lieu du viminfo habituel"
+msgid "--clean\t\t'nocompatible', Vim defaults, no plugins, no viminfo"
+msgstr "--clean\t\t'nocompatible', rglages par dfaut, aucun greffon ni viminfo"
+
msgid "-h or --help\tPrint Help (this message) and exit"
msgstr "-h ou --help\t\tAfficher l'aide (ce message) puis quitter"
@@ -3492,11 +3474,9 @@ msgstr "--windowid <HWND>\tOuvrir Vim dans un autre widget win32"
msgid "No display"
msgstr "Aucun display"
-#. Failed to send, abort.
msgid ": Send failed.\n"
msgstr " : L'envoi a chou.\n"
-#. Let vim start normally.
msgid ": Send failed. Trying to execute locally\n"
msgstr " : L'envoi a chou. Tentative d'excution locale\n"
@@ -3517,7 +3497,6 @@ msgstr "Aucune marque positionne"
msgid "E283: No marks matching \"%s\""
msgstr "E283: Aucune marque ne correspond \"%s\""
-#. Highlight title
msgid ""
"\n"
"mark line col file/text"
@@ -3525,7 +3504,6 @@ msgstr ""
"\n"
"marq ligne col fichier/texte"
-#. Highlight title
msgid ""
"\n"
" jump line col file/text"
@@ -3533,7 +3511,6 @@ msgstr ""
"\n"
" saut ligne col fichier/texte"
-#. Highlight title
msgid ""
"\n"
"change line col text"
@@ -3548,7 +3525,6 @@ msgstr ""
"\n"
"# Marques dans le fichier :\n"
-#. Write the jumplist with -'
msgid ""
"\n"
"# Jumplist (newest first):\n"
@@ -3620,7 +3596,6 @@ msgstr "E298: Bloc n2 non rcupr ?"
msgid "E843: Error while updating swap file crypt"
msgstr "E843: Erreur lors de la mise jour du fichier d'change crypt"
-#. could not (re)open the swap file, what can we do????
msgid "E301: Oops, lost the swap file!!!"
msgstr "E301: Oups, le fichier d'change a disparu !"
@@ -3809,7 +3784,6 @@ msgstr ""
"Utilisation de la cl de chiffrement du fichier d'change pour le fichier "
"texte.\n"
-#. use msg() to start the scrolling properly
msgid "Swap files found:"
msgstr "Fichiers d'change trouvs :"
@@ -3979,8 +3953,6 @@ msgstr "Lors de l'ouverture du fichier \""
msgid " NEWER than swap file!\n"
msgstr " PLUS RCENT que le fichier d'change !\n"
-#. Some of these messages are long to allow translation to
-#. * other languages.
msgid ""
"\n"
"(1) Another program may be editing the same file. If this is the case,\n"
@@ -4071,7 +4043,6 @@ msgstr "E328: Le menu n'existe que dans un autre mode"
msgid "E329: No menu \"%s\""
msgstr "E329: Aucun menu \"%s\""
-#. Only a mnemonic or accelerator is not valid.
msgid "E792: Empty menu name"
msgstr "E792: Nom de menu vide"
@@ -4084,8 +4055,6 @@ msgstr "E331: Ajout d'lments de menu directement dans barre de menu interdit"
msgid "E332: Separator cannot be part of a menu path"
msgstr "E332: Un sparateur ne peut faire partie d'un chemin de menu"
-#. Now we have found the matching menu, and we list the mappings
-#. Highlight title
msgid ""
"\n"
"--- Menus ---"
@@ -4096,6 +4065,10 @@ msgstr ""
msgid "Tear off this menu"
msgstr "Dtacher ce menu"
+#, c-format
+msgid "E335: Menu not defined for %s mode"
+msgstr "E335: Le menu n'est pas dfini pour le mode %s"
+
msgid "E333: Menu path must lead to a menu item"
msgstr "E333: Le chemin du menu doit conduire un lment de menu"
@@ -4103,10 +4076,6 @@ msgstr "E333: Le chemin du menu doit conduire un lment de menu"
msgid "E334: Menu not found: %s"
msgstr "E334: Menu introuvable : %s"
-#, c-format
-msgid "E335: Menu not defined for %s mode"
-msgstr "E335: Le menu n'est pas dfini pour le mode %s"
-
msgid "E336: Menu path must lead to a sub-menu"
msgstr "E336: Le chemin du menu doit conduire un sous-menu"
@@ -4180,7 +4149,6 @@ msgstr "Enregistrer un fichier"
msgid "Open File dialog"
msgstr "Ouvrir un fichier"
-#. TODO: non-GUI file selector here
msgid "E338: Sorry, no file browser in console mode"
msgstr "E338: Dsol, pas de slecteur de fichiers en mode console"
@@ -4347,7 +4315,9 @@ msgid "E663: At end of changelist"
msgstr "E663: la fin de la liste des modifications"
msgid "Type :qa! and press <Enter> to abandon all changes and exit Vim"
-msgstr "Tapez :qa! puis <Entre> pour abandonner tous les changements et quitter Vim"
+msgstr ""
+"Tapez :qa! puis <Entre> pour abandonner tous les changements et quitter "
+"Vim"
#, c-format
msgid "1 line %sed 1 time"
@@ -4380,7 +4350,6 @@ msgid "E748: No previously used register"
msgstr "E748: Aucun registre n'a t prcdemment utilis"
# DB - Question O/N.
-#. must display the prompt
msgid "cannot yank; delete anyway"
msgstr "impossible de raliser une copie ; effacer tout de mme"
@@ -4395,25 +4364,30 @@ msgstr "%ld lignes modifies"
msgid "freeing %ld lines"
msgstr "libration de %ld lignes"
-msgid "block of 1 line yanked"
-msgstr "bloc de 1 ligne copi"
+#, c-format
+msgid " into \"%c"
+msgstr " dans \"%c"
-msgid "1 line yanked"
-msgstr "1 ligne copie"
+#, c-format
+msgid "block of 1 line yanked%s"
+msgstr "bloc de 1 ligne copi%s"
#, c-format
-msgid "block of %ld lines yanked"
-msgstr "bloc de %ld lignes copi"
+msgid "1 line yanked%s"
+msgstr "1 ligne copie%s"
#, c-format
-msgid "%ld lines yanked"
-msgstr "%ld lignes copies"
+msgid "block of %ld lines yanked%s"
+msgstr "bloc de %ld lignes copi%s"
+
+#, c-format
+msgid "%ld lines yanked%s"
+msgstr "%ld lignes copies%s"
#, c-format
msgid "E353: Nothing in register %s"
msgstr "E353: Le registre %s est vide"
-#. Highlight title
msgid ""
"\n"
"--- Registers ---"
@@ -4477,9 +4451,6 @@ msgstr ""
msgid "(+%ld for BOM)"
msgstr "(+%ld pour le BOM)"
-msgid "%<%f%h%m%=Page %N"
-msgstr "%<%f%h%m%=Page %N"
-
msgid "Thanks for flying Vim"
msgstr "Merci d'avoir choisi Vim"
@@ -4590,6 +4561,9 @@ msgstr "E541: trop d'lments"
msgid "E542: unbalanced groups"
msgstr "E542: parenthses non quilibres"
+msgid "E946: Cannot make a terminal with running job modifiable"
+msgstr "E946: terminal avec tche en cours d'excution ne peut pas tre modifiable"
+
msgid "E590: A preview window already exists"
msgstr "E590: Il existe dj une fentre de prvisualisation"
@@ -4608,9 +4582,6 @@ msgstr "E594: Au moins %d colonnes sont ncessaires"
msgid "E355: Unknown option: %s"
msgstr "E355: Option inconnue : %s"
-#. There's another character after zeros or the string
-#. * is empty. In both cases, we are trying to set a
-#. * num option using a string.
#, c-format
msgid "E521: Number required: &%s = '%s'"
msgstr "E521: Nombre requis : &%s = '%s'"
@@ -4683,7 +4654,6 @@ msgstr "Impossible de modifier le mode de la console ?!\n"
msgid "mch_get_shellsize: not a console??\n"
msgstr "mch_get_shellsize : pas une console ?!\n"
-#. if Vim opened a window: Executing a shell may cause crashes
msgid "E360: Cannot execute shell with -f option"
msgstr "E360: Impossible d'excuter un shell avec l'option -f"
@@ -4910,7 +4880,6 @@ msgstr "E376: %%%c invalide dans le prfixe de la chane de format"
msgid "E377: Invalid %%%c in format string"
msgstr "E377: %%%c invalide dans la chane de format"
-#. nothing found
msgid "E378: 'errorformat' contains no pattern"
msgstr "E378: 'errorformat' ne contient aucun motif"
@@ -4949,9 +4918,6 @@ msgstr "E381: Au sommet de la pile quickfix"
msgid "No entries"
msgstr "Aucune entre"
-msgid "E382: Cannot write, 'buftype' option is set"
-msgstr "E382: criture impossible, l'option 'buftype' est active"
-
msgid "Error file"
msgstr "Fichier d'erreurs"
@@ -5098,7 +5064,6 @@ msgstr "E867: (NFA) Oprateur inconnu '\\z%c'"
msgid "E867: (NFA) Unknown operator '\\%%%c'"
msgstr "E867: (NFA) Oprateur inconnu '\\%%%c'"
-#. should never happen
msgid "E868: Error building NFA with equivalence class!"
msgstr "E868: Erreur lors de la construction du NFA avec classe d'quivalence"
@@ -5109,11 +5074,9 @@ msgstr "E869: (NFA) Oprateur inconnu '\\@%c'"
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (regexp NFA) Erreur la lecture des limites de rptition"
-#. Can't have a multi follow a multi.
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr "E871: (regexp NFA) Un multi ne peut pas suivre un multi !"
-#. Too many `('
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (regexp NFA) Trop de '('"
@@ -5223,7 +5186,6 @@ msgstr "E386: '?' ou '/' attendu aprs ';'"
msgid " (includes previously listed match)"
msgstr " (inclut des correspondances listes prcdemment)"
-#. cursor at status line
msgid "--- Included files "
msgstr "--- Fichiers inclus "
@@ -5300,8 +5262,6 @@ msgstr "Dsol, aucune suggestion"
msgid "Sorry, only %ld suggestions"
msgstr "Dsol, seulement %ld suggestions"
-#. for when 'cmdheight' > 1
-#. avoid more prompt
#, c-format
msgid "Change \"%.*s\" to:"
msgstr "Remplacer \"%.*s\" par :"
@@ -5588,10 +5548,6 @@ msgstr "%d noeuds compresss sur %d ; %d (%d%%) restants "
msgid "Reading back spell file..."
msgstr "Relecture du fichier orthographique"
-#.
-#. * Go through the trie of good words, soundfold each word and add it to
-#. * the soundfold trie.
-#.
msgid "Performing soundfolding..."
msgstr "Analyse phontique en cours..."
@@ -5648,8 +5604,6 @@ msgid "E763: Word characters differ between spell files"
msgstr ""
"E763: Les caractres de mots diffrent entre les fichiers orthographiques"
-#. This should have been checked when generating the .spl
-#. * file.
msgid "E783: duplicate char in MAP entry"
msgstr "E783: caractre dupliqu dans l'entre MAP"
@@ -5679,7 +5633,9 @@ msgid "syntax spell notoplevel"
msgstr "pas de contrle orthographique dans le texte sans groupe syntaxique"
msgid "syntax spell default"
-msgstr "contrle orthographique dans le texte sans groupe syntaxique, sauf si @Spell/@NoSpell"
+msgstr ""
+"contrle orthographique dans le texte sans groupe syntaxique, sauf si @Spell/"
+"@NoSpell"
msgid "syntax iskeyword "
msgstr "syntaxe iskeyword "
@@ -5920,7 +5876,6 @@ msgstr "E428: Impossible d'aller au-del du dernier marqueur correspondant"
msgid "File \"%s\" does not exist"
msgstr "Le fichier \"%s\" n'existe pas"
-#. Give an indication of the number of matching tags
#, c-format
msgid "tag %d of %d%s"
msgstr "marqueur %d sur %d%s"
@@ -5935,7 +5890,6 @@ msgstr " Utilisation d'un marqueur avec une casse diffrente !"
msgid "E429: File \"%s\" does not exist"
msgstr "E429: Le fichier \"%s\" n'existe pas"
-#. Highlight title
msgid ""
"\n"
" # TO tag FROM line in file/text"
@@ -5966,7 +5920,6 @@ msgstr "Avant l'octet %ld"
msgid "E432: Tags file not sorted: %s"
msgstr "E432: Le fichier de marqueurs %s n'est pas ordonn"
-#. never opened any tags file
msgid "E433: No tags file"
msgstr "E433: Aucun fichier de marqueurs"
@@ -6003,7 +5956,6 @@ msgstr "E436: Aucune entre \"%s\" dans termcap"
msgid "E437: terminal capability \"cm\" required"
msgstr "E437: capacit de terminal \"cm\" requise"
-#. Highlight title
msgid ""
"\n"
"--- Terminal keys ---"
@@ -6014,6 +5966,21 @@ msgstr ""
msgid "Cannot open $VIMRUNTIME/rgb.txt"
msgstr "Impossible d'ouvrir $VIMRUNTIME/rgb.txt"
+msgid "Terminal"
+msgstr "Terminal"
+
+msgid "Terminal-finished"
+msgstr "Terminal-fini"
+
+msgid "active"
+msgstr "actif"
+
+msgid "running"
+msgstr "en cours"
+
+msgid "finished"
+msgstr "fini"
+
msgid "new shell started\n"
msgstr "nouveau shell dmarr\n"
@@ -6024,13 +5991,10 @@ msgstr "Vim : Erreur lors de la lecture de l'entre, sortie...\n"
msgid "Used CUT_BUFFER0 instead of empty selection"
msgstr "CUT_BUFFER0 utilis plutt qu'une slection vide"
-#. This happens when the FileChangedRO autocommand changes the
-#. * file in a way it becomes shorter.
msgid "E881: Line count changed unexpectedly"
msgstr "E881: Le nombre de lignes a t chang inopinment"
# DB - Question O/N.
-#. must display the prompt
msgid "No undo possible; continue anyway"
msgstr "Annulation impossible ; continuer"
@@ -6679,7 +6643,6 @@ msgstr "&Comparer avec Vim"
msgid "Edit with &Vim"
msgstr "diter dans &Vim"
-#. Now concatenate
msgid "Edit with existing Vim - "
msgstr "diter dans le Vim existant - "
@@ -6703,10 +6666,6 @@ msgstr "Le chemin est trop long !"
msgid "--No lines in buffer--"
msgstr "--Le tampon est vide--"
-#.
-#. * The error messages that can be shared are included here.
-#. * Excluded are errors that are only used once and debugging messages.
-#.
msgid "E470: Command aborted"
msgstr "E470: Commande annule"
@@ -6893,12 +6852,6 @@ msgstr "E484: Impossible d'ouvrir le fichier \"%s\""
msgid "E485: Can't read file %s"
msgstr "E485: Impossible de lire le fichier %s"
-msgid "E37: No write since last change (add ! to override)"
-msgstr "E37: Modifications non enregistres (ajoutez ! pour passer outre)"
-
-msgid "E37: No write since last change"
-msgstr "E37: Modifications non enregistres"
-
msgid "E38: Null argument"
msgstr "E38: Argument null"
@@ -7190,7 +7143,6 @@ msgstr "le constructeur de liste n'accepte pas les arguments nomms"
msgid "list index out of range"
msgstr "index de liste hors limites"
-#. No more suitable format specifications in python-2.3
#, c-format
msgid "internal error: failed to get vim list item %d"
msgstr "erreur interne : accs un lment %d de liste a chou"
diff --git a/src/proto.h b/src/proto.h
index 92e3f60..a60d3c8 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -213,7 +213,7 @@ void qsort(void *base, size_t elm_count, size_t elm_size, int (*cmp)(const void
# endif
# if defined(FEAT_GUI) || defined(FEAT_JOB_CHANNEL)
-# if defined(UNIX) || defined(MACOS)
+# if defined(UNIX) || defined(MACOS_X)
# include "pty.pro"
# endif
# endif
@@ -286,7 +286,7 @@ extern char *vim_SelFile(Widget toplevel, char *prompt, char *init_path, int (*s
#ifdef MACOS_CONVERT
# include "os_mac_conv.pro"
#endif
-#if defined(MACOS_X_UNIX) && defined(FEAT_CLIPBOARD) && !defined(FEAT_GUI)
+#if defined(MACOS_X_DARWIN) && defined(FEAT_CLIPBOARD) && !defined(FEAT_GUI)
/* functions in os_macosx.m */
void clip_mch_lose_selection(VimClipboard *cbd);
int clip_mch_own_selection(VimClipboard *cbd);
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index 5fc6260..34e87a1 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -10,6 +10,7 @@ int eval_printexpr(char_u *fname, char_u *args);
void eval_diff(char_u *origfile, char_u *newfile, char_u *outfile);
void eval_patch(char_u *origfile, char_u *difffile, char_u *outfile);
int eval_to_bool(char_u *arg, int *error, char_u **nextcmd, int skip);
+int eval_expr_to_bool(typval_T *expr, int *error);
char_u *eval_to_string_skip(char_u *arg, char_u **nextcmd, int skip);
int skip_expr(char_u **pp);
char_u *eval_to_string(char_u *arg, char_u **nextcmd, int convert);
@@ -47,7 +48,7 @@ int garbage_collect(int testing);
int set_ref_in_ht(hashtab_T *ht, int copyID, list_stack_T **list_stack);
int set_ref_in_list(list_T *l, int copyID, ht_stack_T **ht_stack);
int set_ref_in_item(typval_T *tv, int copyID, ht_stack_T **ht_stack, list_stack_T **list_stack);
-char_u *echo_string_core(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID, int echo_style, int restore_copyID, int dict_val);
+char_u *echo_string_core(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID, int echo_style, int restore_copyID, int composite_val);
char_u *echo_string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
char_u *tv2string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
char_u *string_quote(char_u *str, int function);
diff --git a/src/proto/evalfunc.pro b/src/proto/evalfunc.pro
index 174afb6..279c824 100644
--- a/src/proto/evalfunc.pro
+++ b/src/proto/evalfunc.pro
@@ -8,7 +8,7 @@ buf_T *buflist_find_by_name(char_u *name, int curtab_only);
void execute_redir_str(char_u *value, int value_len);
void mzscheme_call_vim(char_u *name, typval_T *args, typval_T *rettv);
float_T vim_round(float_T f);
-long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit);
+long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, typval_T *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit);
char_u *get_callback(typval_T *arg, partial_T **pp);
void free_callback(char_u *callback, partial_T *partial);
/* vim: set ft=c : */
diff --git a/src/proto/os_win32.pro b/src/proto/os_win32.pro
index 7e6953c..188a45b 100644
--- a/src/proto/os_win32.pro
+++ b/src/proto/os_win32.pro
@@ -67,4 +67,5 @@ void used_file_arg(char *name, int literal, int full_path, int diff_mode);
void set_alist_count(void);
void fix_arg_enc(void);
int mch_setenv(char *var, char *value, int x);
+void win32_build_env(dict_T *l, garray_T *gap);
/* vim: set ft=c : */
diff --git a/src/proto/search.pro b/src/proto/search.pro
index 63955ad..41c2006 100644
--- a/src/proto/search.pro
+++ b/src/proto/search.pro
@@ -5,6 +5,8 @@ char_u *reverse_text(char_u *s);
void save_re_pat(int idx, char_u *pat, int magic);
void save_search_patterns(void);
void restore_search_patterns(void);
+void save_last_search_pattern(void);
+void restore_last_search_pattern(void);
void free_search_patterns(void);
int ignorecase(char_u *pat);
int ignorecase_opt(char_u *pat, int ic_in, int scs);
diff --git a/src/pty.c b/src/pty.c
index 151a278..1a27ab6 100644
--- a/src/pty.c
+++ b/src/pty.c
@@ -89,7 +89,7 @@
# include <sys/ptem.h>
#endif
-#if !defined(SUN_SYSTEM) && !defined(VMS) && !defined(MACOS)
+#if !defined(SUN_SYSTEM) && !defined(VMS)
# include <sys/ioctl.h>
#endif
@@ -379,21 +379,15 @@ OpenPTY(char **ttyn)
{
for (d = PTYRANGE1; (p[1] = *d) != '\0'; d++)
{
-#if !defined(MACOS) || defined(USE_CARBONIZED)
if ((f = open(PtyName, O_RDWR | O_NOCTTY | O_EXTRA, 0)) == -1)
-#else
- if ((f = open(PtyName, O_RDWR | O_NOCTTY | O_EXTRA)) == -1)
-#endif
continue;
q[0] = *l;
q[1] = *d;
-#ifndef MACOS
if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
{
close(f);
continue;
}
-#endif
#if defined(SUN_SYSTEM) && defined(TIOCGPGRP) && !defined(SUNOS3)
/* Hack to ensure that the slave side of the pty is
* unused. May not work in anything other than SunOS4.1
diff --git a/src/regexp.c b/src/regexp.c
index a5d7a13..7f5e265 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -695,9 +695,9 @@ static void skipchr_keepstart(void);
static int peekchr(void);
static void skipchr(void);
static void ungetchr(void);
-static int gethexchrs(int maxinputlen);
-static int getoctchrs(void);
-static int getdecchrs(void);
+static long gethexchrs(int maxinputlen);
+static long getoctchrs(void);
+static long getdecchrs(void);
static int coll_get_char(void);
static void regcomp_start(char_u *expr, int flags);
static char_u *reg(int, int *);
@@ -1837,7 +1837,7 @@ regpiece(int *flagp)
case Magic('@'):
{
int lop = END;
- int nr;
+ long nr;
nr = getdecchrs();
switch (no_Magic(getchr()))
@@ -2278,7 +2278,7 @@ regatom(int *flagp)
case 'u': /* %uabcd hex 4 */
case 'U': /* %U1234abcd hex 8 */
{
- int i;
+ long i;
switch (c)
{
@@ -3274,10 +3274,10 @@ ungetchr(void)
* The parameter controls the maximum number of input characters. This will be
* 2 when reading a \%x20 sequence and 4 when reading a \%u20AC sequence.
*/
- static int
+ static long
gethexchrs(int maxinputlen)
{
- int nr = 0;
+ long_u nr = 0;
int c;
int i;
@@ -3293,17 +3293,17 @@ gethexchrs(int maxinputlen)
if (i == 0)
return -1;
- return nr;
+ return (long)nr;
}
/*
* Get and return the value of the decimal string immediately after the
* current position. Return -1 for invalid. Consumes all digits.
*/
- static int
+ static long
getdecchrs(void)
{
- int nr = 0;
+ long_u nr = 0;
int c;
int i;
@@ -3320,7 +3320,7 @@ getdecchrs(void)
if (i == 0)
return -1;
- return nr;
+ return (long)nr;
}
/*
@@ -3331,10 +3331,10 @@ getdecchrs(void)
* blahblah\%o210asdf
* before-^ ^-after
*/
- static int
+ static long
getoctchrs(void)
{
- int nr = 0;
+ long_u nr = 0;
int c;
int i;
@@ -3350,7 +3350,7 @@ getoctchrs(void)
if (i == 0)
return -1;
- return nr;
+ return (long)nr;
}
/*
@@ -3360,7 +3360,7 @@ getoctchrs(void)
static int
coll_get_char(void)
{
- int nr = -1;
+ long nr = -1;
switch (*regparse++)
{
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 86061a3..feb17bc 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -1522,7 +1522,7 @@ nfa_regatom(void)
case 'u': /* %uabcd hex 4 */
case 'U': /* %U1234abcd hex 8 */
{
- int nr;
+ long nr;
switch (c)
{
@@ -2040,7 +2040,7 @@ nfa_regpiece(void)
int greedy = TRUE; /* Braces are prefixed with '-' ? */
parse_state_T old_state;
parse_state_T new_state;
- int c2;
+ long c2;
int old_post_pos;
int my_post_start;
int quest;
diff --git a/src/screen.c b/src/screen.c
index c92b17e..05853d4 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2123,7 +2123,11 @@ win_update(win_T *wp)
wp->w_lines[idx].wl_lnum = lnum;
wp->w_lines[idx].wl_valid = TRUE;
- if (row > wp->w_height) /* past end of screen */
+
+ /* Past end of the window or end of the screen. Note that after
+ * resizing wp->w_height may be end up too big. That's a problem
+ * elsewhere, but prevent a crash here. */
+ if (row > wp->w_height || row + wp->w_winrow >= Rows)
{
/* we may need the size of that too long line later on */
if (dollar_vcol == -1)
diff --git a/src/search.c b/src/search.c
index c3c5503..25c2e6e 100644
--- a/src/search.c
+++ b/src/search.c
@@ -100,11 +100,14 @@ static int lastc_bytelen = 1; /* >1 for multi-byte char */
#if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO)
/* copy of spats[], for keeping the search patterns while executing autocmds */
static struct spat saved_spats[2];
-static int saved_last_idx = 0;
+#endif
# ifdef FEAT_SEARCH_EXTRA
+/* copy of spats[RE_SEARCH], for keeping the search patterns while incremental
+ * searching */
+static struct spat saved_last_search_spat;
+static int saved_last_idx = 0;
static int saved_no_hlsearch = 0;
# endif
-#endif
static char_u *mr_pattern = NULL; /* pattern used by search_regcomp() */
#ifdef FEAT_RIGHTLEFT
@@ -329,9 +332,9 @@ restore_search_patterns(void)
{
vim_free(spats[0].pat);
spats[0] = saved_spats[0];
-#if defined(FEAT_EVAL)
+# if defined(FEAT_EVAL)
set_vv_searchforward();
-#endif
+# endif
vim_free(spats[1].pat);
spats[1] = saved_spats[1];
last_idx = saved_last_idx;
@@ -360,6 +363,38 @@ free_search_patterns(void)
}
#endif
+#ifdef FEAT_SEARCH_EXTRA
+/*
+ * Save and restore the search pattern for incremental highlight search
+ * feature.
+ *
+ * It's similar but differnt from save_search_patterns() and
+ * restore_search_patterns(), because the search pattern must be restored when
+ * cannceling incremental searching even if it's called inside user functions.
+ */
+ void
+save_last_search_pattern(void)
+{
+ saved_last_search_spat = spats[RE_SEARCH];
+ if (spats[RE_SEARCH].pat != NULL)
+ saved_last_search_spat.pat = vim_strsave(spats[RE_SEARCH].pat);
+ saved_last_idx = last_idx;
+ saved_no_hlsearch = no_hlsearch;
+}
+
+ void
+restore_last_search_pattern(void)
+{
+ vim_free(spats[RE_SEARCH].pat);
+ spats[RE_SEARCH] = saved_last_search_spat;
+# if defined(FEAT_EVAL)
+ set_vv_searchforward();
+# endif
+ last_idx = saved_last_idx;
+ SET_NO_HLSEARCH(saved_no_hlsearch);
+}
+#endif
+
/*
* Return TRUE when case should be ignored for search pattern "pat".
* Uses the 'ignorecase' and 'smartcase' options.
@@ -3980,7 +4015,7 @@ again:
{
if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|\\_s\\=>\\)",
(char_u *)"",
- (char_u *)"</[^>]*>", BACKWARD, (char_u *)"", 0,
+ (char_u *)"</[^>]*>", BACKWARD, NULL, 0,
NULL, (linenr_T)0, 0L) <= 0)
{
curwin->w_cursor = old_pos;
@@ -4014,7 +4049,7 @@ again:
sprintf((char *)spat, "<%.*s\\>\\%%(\\s\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
sprintf((char *)epat, "</%.*s>\\c", len, p);
- r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+ r = do_searchpair(spat, (char_u *)"", epat, FORWARD, NULL,
0, NULL, (linenr_T)0, 0L);
vim_free(spat);
diff --git a/src/structs.h b/src/structs.h
index 7b0f70c..774104c 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -969,19 +969,12 @@ typedef struct attr_entry
# else
# if defined(MACOS_X)
# include <sys/errno.h>
-# define EILSEQ ENOENT /* MacOS X does not have EILSEQ */
+# ifndef EILSEQ
+# define EILSEQ ENOENT /* Early MacOS X does not have EILSEQ */
+# endif
typedef struct _iconv_t *iconv_t;
# else
-# if defined(MACOS_CLASSIC)
-typedef struct _iconv_t *iconv_t;
-# define EINVAL 22
-# define E2BIG 7
-# define ENOENT 2
-# define EFAULT 14
-# define EILSEQ 123
-# else
-# include <errno.h>
-# endif
+# include <errno.h>
# endif
typedef void *iconv_t;
# endif
diff --git a/src/term.c b/src/term.c
index 4a202bb..8df5e02 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2534,7 +2534,7 @@ out_trash(void)
void
out_char(unsigned c)
{
-#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X_UNIX)
+#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X)
if (c == '\n') /* turn LF into CR-LF (CRMOD doesn't seem to do this) */
out_char('\r');
#endif
@@ -2554,7 +2554,7 @@ static void out_char_nf(unsigned);
static void
out_char_nf(unsigned c)
{
-#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X_UNIX)
+#if defined(UNIX) || defined(VMS) || defined(AMIGA) || defined(MACOS_X)
if (c == '\n') /* turn LF into CR-LF (CRMOD doesn't seem to do this) */
out_char_nf('\r');
#endif
diff --git a/src/terminal.c b/src/terminal.c
index efd803c..25c7d66 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -46,9 +46,18 @@
* - Redirecting output does not work on MS-Windows, Test_terminal_redir_file()
* is disabled.
* - cursor blinks in terminal on widows with a timer. (xtal8, #2142)
+ * - When closing gvim with an active terminal buffer, the dialog suggests
+ * saving the buffer. Should say something else. (Manas Thakur, #2215)
+ * Also: #2223
* - implement term_setsize()
+ * - Termdebug does not work when Vim build with mzscheme. gdb hangs.
+ * - Termdebug: issue #2154 might be avoided by adding -quiet to gdb?
+ * patch by Christian, 2017 Oct 23.
* - MS-Windows GUI: WinBar has tearoff item
* - MS-Windows GUI: still need to type a key after shell exits? #1924
+ * - What to store in a session file? Shell at the prompt would be OK to
+ * restore, but others may not. Open the window and let the user start the
+ * command?
* - add test for giving error for invalid 'termsize' value.
* - support minimal size when 'termsize' is "rows*cols".
* - support minimal size when 'termsize' is empty?
@@ -3390,6 +3399,7 @@ term_and_job_init(
{
WCHAR *cmd_wchar = NULL;
WCHAR *cwd_wchar = NULL;
+ WCHAR *env_wchar = NULL;
channel_T *channel = NULL;
job_T *job = NULL;
DWORD error;
@@ -3398,7 +3408,7 @@ term_and_job_init(
HANDLE child_thread_handle;
void *winpty_err;
void *spawn_config = NULL;
- garray_T ga;
+ garray_T ga_cmd, ga_env;
char_u *cmd;
if (dyn_winpty_init(TRUE) == FAIL)
@@ -3408,10 +3418,10 @@ term_and_job_init(
cmd = argvar->vval.v_string;
else
{
- ga_init2(&ga, (int)sizeof(char*), 20);
- if (win32_build_cmd(argvar->vval.v_list, &ga) == FAIL)
+ ga_init2(&ga_cmd, (int)sizeof(char*), 20);
+ if (win32_build_cmd(argvar->vval.v_list, &ga_cmd) == FAIL)
goto failed;
- cmd = ga.ga_data;
+ cmd = ga_cmd.ga_data;
}
cmd_wchar = enc_to_utf16(cmd, NULL);
@@ -3419,6 +3429,12 @@ term_and_job_init(
return FAIL;
if (opt->jo_cwd != NULL)
cwd_wchar = enc_to_utf16(opt->jo_cwd, NULL);
+ if (opt->jo_env != NULL)
+ {
+ ga_init2(&ga_env, (int)sizeof(char*), 20);
+ win32_build_env(opt->jo_env, &ga_env);
+ env_wchar = ga_env.ga_data;
+ }
job = job_alloc();
if (job == NULL)
@@ -3446,7 +3462,7 @@ term_and_job_init(
NULL,
cmd_wchar,
cwd_wchar,
- NULL,
+ env_wchar,
&winpty_err);
if (spawn_config == NULL)
goto failed;
@@ -3519,7 +3535,9 @@ term_and_job_init(
failed:
if (argvar->v_type == VAR_LIST)
- vim_free(ga.ga_data);
+ vim_free(ga_cmd.ga_data);
+ if (opt->jo_env != NULL)
+ vim_free(ga_env.ga_data);
vim_free(cmd_wchar);
vim_free(cwd_wchar);
if (spawn_config != NULL)
diff --git a/src/termlib.c b/src/termlib.c
index fee14ae..0dc5894 100644
--- a/src/termlib.c
+++ b/src/termlib.c
@@ -13,7 +13,7 @@
#include "vim.h"
#include "termlib.pro"
-#if !defined(AMIGA) && !defined(VMS) && !defined(MACOS)
+#if !defined(AMIGA) && !defined(VMS)
# include <sgtty.h>
#endif
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 6edca56..4d618c6 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -20,10 +20,8 @@ SCRIPTS_ALL = \
test36.out \
test37.out \
test39.out \
- test40.out \
test42.out \
test44.out \
- test45.out \
test48.out \
test55.out \
test64.out \
@@ -58,7 +56,6 @@ SCRIPTS_MORE1 = \
# Tests that run on most systems, but not on Amiga and DOS/Windows.
SCRIPTS_MORE2 = \
- test12.out \
test49.out
@@ -68,7 +65,6 @@ SCRIPTS_MORE4 = \
test30.out \
test59.out \
test72.out \
- test83.out
# Tests specifically for MS-Windows.
@@ -79,7 +75,7 @@ SCRIPTS_WIN32 = test50.out
SCRIPTS_GUI =
-# Tests using runtest.vim.vim.
+# Tests using runtest.vim
# Keep test_alot*.res as the last one, sort the others.
NEW_TESTS = test_arabic.res \
test_arglist.res \
@@ -164,6 +160,7 @@ NEW_TESTS = test_arabic.res \
test_startup_utf8.res \
test_stat.res \
test_substitute.res \
+ test_swap.res \
test_syntax.res \
test_system.res \
test_tab.res \
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index 4a6bd9f..d894001 100644
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -13,7 +13,6 @@ include Make_all.mak
# test2 "\\tmp" doesn't work
# test10 'errorformat' is different
# test11 "cat" doesn't work properly
-# test12 can't unlink a swap file
# test52 only for Win32
# test85 no Lua interface
# test86, 87 no Python interface
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 52162bc..6cd8de6 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -12,7 +12,6 @@ default: nongui
# Omitted:
# test2 "\\tmp" doesn't work.
# test10 'errorformat' is different
-# test12 can't unlink a swap file
# test49 fails in various ways
# test97 \{ and \$ are not escaped characters.
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
index 1134685..f2bd8b7 100644
--- a/src/testdir/Make_ming.mak
+++ b/src/testdir/Make_ming.mak
@@ -31,7 +31,6 @@ include Make_all.mak
# Omitted:
# test2 "\\tmp" doesn't work.
# test10 'errorformat' is different
-# test12 can't unlink a swap file
# test97 \{ and \$ are not escaped characters
SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE1) $(SCRIPTS_MORE4) $(SCRIPTS_WIN32)
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index b76c230..0397589 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -75,13 +75,13 @@ VIMPROG = <->vim.exe
SCRIPT = test1.out test3.out \
test14.out test15.out \
- test29.out test30.out \
- test36.out test37.out test39.out \
- test40.out test42.out test44.out test45.out \
- test48.out test49.out test55.out \
+ test29.out \
+ test30.out test36.out test37.out test39.out \
+ test42.out test44.out test48.out test49.out \
+ test55.out \
test64.out test68.out test69.out \
test72.out test77a.out test88.out \
- test94.out test95.out test99.out test108.out\
+ test94.out test95.out test99.out test108.out \
test_autocmd_option.out \
test_breakindent.out \
test_changelist.out \
@@ -107,7 +107,6 @@ SCRIPT = test1.out test3.out \
#
# test72: bug - Vim hangs at :rename (while rename works well otherwise)
# test78: bug - Vim dies at :recover Xtest
-# test83: ?
# test85: no Lua interface
# test89: bug - findfile() does not work on VMS (just in the current directory)
# test102: Just ODS-5 supports space and special chars in the filename.
@@ -119,7 +118,7 @@ GUI_OPTION = -g
.ENDIF
.IFDEF WANT_UNIX
-SCRIPT_UNIX = test10.out test12.out test17.out test27.out test49.out test73.out
+SCRIPT_UNIX = test10.out test17.out test27.out test49.out test73.out
.ENDIF
.IFDEF WANT_WIN
@@ -146,10 +145,6 @@ SCRIPT_GZIP = test11.out
SCRIPT_GDIFF = test47.out
.ENDIF
-.IFDEF HAVE_ICONV
-SCRIPT_ICONV = test83.out
-.ENDIF
-
.IFDEF HAVE_LUA
SCRIPT_LUA = test85.out
.ENDIF
@@ -179,7 +174,7 @@ SCRIPT_PYTHON = test86.out test87.out
-@ if "''F$SEARCH("Xtest.*")'" .NES. "" then delete/noconfirm/nolog Xtest.*.*
all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_ODS5) $(SCRIPT_GZIP) \
- $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_ICONV) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog
+ $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog
-@ write sys$output " "
-@ write sys$output "-----------------------------------------------"
-@ write sys$output " All done"
diff --git a/src/testdir/main.aap b/src/testdir/main.aap
index 14afaac..89eae41 100644
--- a/src/testdir/main.aap
+++ b/src/testdir/main.aap
@@ -6,12 +6,12 @@ VimProg ?= ../vim
Scripts = test1.out test2.out test3.out test6.out
test11.out
- test12.out test13.out test14.out test15.out test17.out
+ test13.out test14.out test15.out test17.out
test18.out test21.out
test27.out test29.out test30.out
test36.out test37.out
- test39.out test40.out test42.out
- test44.out test45.out test46.out test47.out
+ test39.out test42.out
+ test44.out test46.out test47.out
test48.out test49.out test74.out
ScriptsGUI = test16.out
diff --git a/src/testdir/shared.vim b/src/testdir/shared.vim
index 8db388a..d6033d5 100644
--- a/src/testdir/shared.vim
+++ b/src/testdir/shared.vim
@@ -125,21 +125,18 @@ func WaitFor(expr, ...)
let slept = 0
endif
for i in range(timeout / 10)
- try
- if eval(a:expr)
- if has('reltime')
- return float2nr(reltimefloat(reltime(start)) * 1000)
- endif
- return slept
+ if eval(a:expr)
+ if has('reltime')
+ return float2nr(reltimefloat(reltime(start)) * 1000)
endif
- catch
- endtry
+ return slept
+ endif
if !has('reltime')
let slept += 10
endif
sleep 10m
endfor
- return timeout
+ throw 'WaitFor() timed out after ' . timeout . ' msec'
endfunc
" Wait for up to a given milliseconds.
diff --git a/src/testdir/test12.in b/src/testdir/test12.in
deleted file mode 100644
index 46e9c45..0000000
--- a/src/testdir/test12.in
+++ /dev/null
@@ -1,52 +0,0 @@
-Tests for 'directory' option.
-- ".", in same dir as file
-- "./dir", in directory relative to file
-- "dir", in directory relative to current dir
-
-STARTTEST
-:so small.vim
-:set nocompatible viminfo+=nviminfo
-:set dir=.,~
-:/start of testfile/,/end of testfile/w! Xtest1
-:" do an ls of the current dir to find the swap file (should not be there)
-:if has("unix")
-: !ls .X*.swp >test.out
-:else
-: r !ls X*.swp >test.out
-:endif
-:!echo first line >>test.out
-:e Xtest1
-:if has("unix")
-:" Do an ls of the current dir to find the swap file, remove the leading dot
-:" to make the result the same for all systems.
-: r!ls .X*.swp
-: s/\.*X/X/
-: .w >>test.out
-: undo
-:else
-: !ls X*.swp >>test.out
-:endif
-:!echo under Xtest1.swp >>test.out
-:!mkdir Xtest2
-:set dir=./Xtest2,.,~
-:e Xtest1
-:!ls X*.swp >>test.out
-:!echo under under >>test.out
-:!ls Xtest2 >>test.out
-:!echo under Xtest1.swp >>test.out
-:!mkdir Xtest.je
-:/start of testfile/,/end of testfile/w! Xtest2/Xtest3
-:set dir=Xtest.je,~
-:e Xtest2/Xtest3
-:swap
-:!ls Xtest2 >>test.out
-:!echo under Xtest3 >>test.out
-:!ls Xtest.je >>test.out
-:!echo under Xtest3.swp >>test.out
-:qa!
-ENDTEST
-
-start of testfile
-line 2 Abcdefghij
-line 3 Abcdefghij
-end of testfile
diff --git a/src/testdir/test12.ok b/src/testdir/test12.ok
deleted file mode 100644
index 605623b..0000000
--- a/src/testdir/test12.ok
+++ /dev/null
@@ -1,10 +0,0 @@
-first line
-Xtest1.swp
-under Xtest1.swp
-under under
-Xtest1.swp
-under Xtest1.swp
-Xtest3
-under Xtest3
-Xtest3.swp
-under Xtest3.swp
diff --git a/src/testdir/test40.in b/src/testdir/test40.in
deleted file mode 100644
index d92a18f..0000000
--- a/src/testdir/test40.in
+++ /dev/null
@@ -1,63 +0,0 @@
-Test for "*Cmd" autocommands
-
-STARTTEST
-:so small.vim
-:/^start/,$w! Xxx " write lines below to Xxx
-:au BufReadCmd XtestA 0r Xxx|$del
-:e XtestA " will read text of Xxd instead
-:au BufWriteCmd XtestA call append(line("$"), "write")
-:w " will append a line to the file
-:r XtestA " should not read anything
-: " now we have:
-: " 1 start of Xxx
-: " 2 test40
-: " 3 end of Xxx
-: " 4 write
-:au FileReadCmd XtestB '[r Xxx
-:2r XtestB " will read Xxx below line 2 instead
-: " 1 start of Xxx
-: " 2 test40
-: " 3 start of Xxx
-: " 4 test40
-: " 5 end of Xxx
-: " 6 end of Xxx
-: " 7 write
-:au FileWriteCmd XtestC '[,']copy $
-4GA1
-:4,5w XtestC " will copy lines 4 and 5 to the end
-:r XtestC " should not read anything
-: " 1 start of Xxx
-: " 2 test40
-: " 3 start of Xxx
-: " 4 test401
-: " 5 end of Xxx
-: " 6 end of Xxx
-: " 7 write
-: " 8 test401
-: " 9 end of Xxx
-:au FILEAppendCmd XtestD '[,']w! test.out
-:w >>XtestD " will write all lines to test.out
-:$r XtestD " should not read anything
-:$w >>test.out " append "end of Xxx" to test.out
-:au BufReadCmd XtestE 0r test.out|$del
-:sp XtestE " split window with test.out
-5Goasdf:"
-:au BufWriteCmd XtestE w! test.out
-:wall " will write other window to test.out
-: " 1 start of Xxx
-: " 2 test40
-: " 3 start of Xxx
-: " 4 test401
-: " 5 end of Xxx
-: " 6 asdf
-: " 7 end of Xxx
-: " 8 write
-: " 9 test401
-: " 10 end of Xxx
-: " 11 end of Xxx
-:qa!
-ENDTEST
-
-start of Xxx
- test40
-end of Xxx
diff --git a/src/testdir/test40.ok b/src/testdir/test40.ok
deleted file mode 100644
index b650139..0000000
--- a/src/testdir/test40.ok
+++ /dev/null
@@ -1,11 +0,0 @@
-start of Xxx
- test40
-start of Xxx
- test401
-end of Xxx
-asdf
-end of Xxx
-write
- test401
-end of Xxx
-end of Xxx
diff --git a/src/testdir/test45.in b/src/testdir/test45.in
deleted file mode 100644
index c6d7c50..0000000
--- a/src/testdir/test45.in
+++ /dev/null
@@ -1,92 +0,0 @@
-Tests for folding. vim: set ft=vim :
-
-STARTTEST
-:so small.vim
-:set belloff=all
-:" We also need the +syntax feature here.
-:if !has("syntax")
- e! test.ok
- w! test.out
- qa!
-:endif
-:" basic test if a fold can be created, opened, moving to the end and closed
-/^1
-zf2j:call append("$", "manual " . getline(foldclosed(".")))
-zo:call append("$", foldclosed("."))
-]z:call append("$", getline("."))
-zc:call append("$", getline(foldclosed(".")))
-:" test folding with markers.
-:set fdm=marker fdl=1 fdc=3
-/^5
-:call append("$", "marker " . foldlevel("."))
-[z:call append("$", foldlevel("."))
-jo{{ r{jj:call append("$", foldlevel("."))
-kYpj:call append("$", foldlevel("."))
-:" test folding with indent
-:set fdm=indent sw=2
-/^2 b
-i jI :call append("$", "indent " . foldlevel("."))
-k:call append("$", foldlevel("."))
-:set sw&
-:" test syntax folding
-:set fdm=syntax fdl=0
-:syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
-:syn region Fd1 start="ee" end="ff" fold contained
-:syn region Fd2 start="gg" end="hh" fold contained
-:syn region Fd3 start="commentstart" end="commentend" fold contained
-Gzk:call append("$", "folding " . getline("."))
-k:call append("$", getline("."))
-jAcommentstart Acommentend:set fdl=1
-3j:call append("$", getline("."))
-:set fdl=0
-zO j:call append("$", getline("."))
-:" test expression folding
-:fun Flvl()
- let l = getline(v:lnum)
- if l =~ "bb$"
- return 2
- elseif l =~ "gg$"
- return "s1"
- elseif l =~ "ii$"
- return ">2"
- elseif l =~ "kk$"
- return "0"
- endif
- return "="
-endfun
-:set fdm=expr fde=Flvl()
-/bb$
-:call append("$", "expr " . foldlevel("."))
-/hh$
-:call append("$", foldlevel("."))
-/ii$
-:call append("$", foldlevel("."))
-/kk$
-:call append("$", foldlevel("."))
-:/^last/+1,$w! test.out
-:delfun Flvl
-:new
-iTest fdm=indent and :move bug END
-line2
- Test fdm=indent START
- line3
- line4
-:set fdm=indent
-:1m1
-2jzc:m0
-:%w >> test.out
-:qa!
-ENDTEST
-
-1 aa
-2 bb
-3 cc
-4 dd {{{
-5 ee {{{ }}}
-6 ff }}}
-7 gg
-8 hh
-9 ii
-a jj
-b kk
-last
diff --git a/src/testdir/test45.ok b/src/testdir/test45.ok
deleted file mode 100644
index 0f25e62..0000000
--- a/src/testdir/test45.ok
+++ /dev/null
@@ -1,23 +0,0 @@
-manual 1 aa
--1
-3 cc
-1 aa
-marker 2
-1
-1
-0
-indent 2
-1
-folding 9 ii
- 3 cc
-7 gg
-8 hh
-expr 2
-1
-2
-0
- Test fdm=indent START
- line3
- line4
-Test fdm=indent and :move bug END
-line2
diff --git a/src/testdir/test83.in b/src/testdir/test83.in
deleted file mode 100644
index f24c1b8..0000000
--- a/src/testdir/test83.in
+++ /dev/null
@@ -1,76 +0,0 @@
-Tests for tag search with !_TAG_FILE_ENCODING.
-
-STARTTEST
-:so mbyte.vim
-:set enc=utf8
-:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
-: e! test.ok
-: w! test.out
-: qa!
-:endif
-:
-:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
-:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
-:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
-:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
-:
-ggdG:
-:
-:call setline('.', 'Results of test83')
-:
-:" case1:
-:new
-:set tags=Xtags1
-:let v:errmsg = ''
-:tag abcdefghijklmnopqrs
-:if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
-: close
-: put ='case1: failed'
-:else
-: close
-: put ='case1: ok'
-:endif
-:
-:" case2:
-:new
-:set tags=test83-tags2
-:let v:errmsg = ''
-:tag /.BC
-:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
-: close
-: put ='case2: failed'
-:else
-: close
-: put ='case2: ok'
-:endif
-:
-:" case3:
-:new
-:set tags=test83-tags3
-:let v:errmsg = ''
-:tag abc50
-:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
-: close
-: put ='case3: failed'
-:else
-: close
-: put ='case3: ok'
-:endif
-:close
-:
-:wq! test.out
-ENDTEST
-
-text for tags1
-abcdefghijklmnopqrs
-
-text for tags2
-ABC
-
-text for tags3
-ABC
-
-tags1
-!_TAG_FILE_ENCODING utf-8 //
-abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs
-tags1-end
diff --git a/src/testdir/test83.ok b/src/testdir/test83.ok
deleted file mode 100644
index 61a1a04..0000000
--- a/src/testdir/test83.ok
+++ /dev/null
@@ -1,4 +0,0 @@
-Results of test83
-case1: ok
-case2: ok
-case3: ok
diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim
index ad13303..b8a5650 100644
--- a/src/testdir/test_alot.vim
+++ b/src/testdir/test_alot.vim
@@ -41,6 +41,7 @@ source test_popup.vim
source test_put.vim
source test_recover.vim
source test_reltime.vim
+source test_scroll_opt.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index dbf7d20..3f072a5 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -1,6 +1,5 @@
" Tests for autocommands
-
func! s:cleanup_buffers() abort
for bnr in range(1, bufnr('$'))
if bufloaded(bnr) && bufnr('%') != bnr
@@ -917,3 +916,84 @@ func Test_buflocal_autocmd()
enew
unlet g:bname
endfunc
+
+" Test for "*Cmd" autocommands
+func Test_Cmd_Autocmds()
+ call writefile(['start of Xxx', "\tabc2", 'end of Xxx'], 'Xxx')
+
+ enew!
+ au BufReadCmd XtestA 0r Xxx|$del
+ edit XtestA " will read text of Xxd instead
+ call assert_equal('start of Xxx', getline(1))
+
+ au BufWriteCmd XtestA call append(line("$"), "write")
+ write " will append a line to the file
+ call assert_equal('write', getline('$'))
+ call assert_fails('read XtestA', 'E484') " should not read anything
+ call assert_equal('write', getline(4))
+
+ " now we have:
+ " 1 start of Xxx
+ " 2 abc2
+ " 3 end of Xxx
+ " 4 write
+
+ au FileReadCmd XtestB '[r Xxx
+ 2r XtestB " will read Xxx below line 2 instead
+ call assert_equal('start of Xxx', getline(3))
+
+ " now we have:
+ " 1 start of Xxx
+ " 2 abc2
+ " 3 start of Xxx
+ " 4 abc2
+ " 5 end of Xxx
+ " 6 end of Xxx
+ " 7 write
+
+ au FileWriteCmd XtestC '[,']copy $
+ normal 4GA1
+ 4,5w XtestC " will copy lines 4 and 5 to the end
+ call assert_equal("\tabc21", getline(8))
+ call assert_fails('r XtestC', 'E484') " should not read anything
+ call assert_equal("end of Xxx", getline(9))
+
+ " now we have:
+ " 1 start of Xxx
+ " 2 abc2
+ " 3 start of Xxx
+ " 4 abc21
+ " 5 end of Xxx
+ " 6 end of Xxx
+ " 7 write
+ " 8 abc21
+ " 9 end of Xxx
+
+ let g:lines = []
+ au FileAppendCmd XtestD call extend(g:lines, getline(line("'["), line("']")))
+ w >>XtestD " will add lines to 'lines'
+ call assert_equal(9, len(g:lines))
+ call assert_fails('$r XtestD', 'E484') " should not read anything
+ call assert_equal(9, line('$'))
+ call assert_equal('end of Xxx', getline('$'))
+
+ au BufReadCmd XtestE 0r Xxx|$del
+ sp XtestE " split window with test.out
+ call assert_equal('end of Xxx', getline(3))
+
+ let g:lines = []
+ exe "normal 2Goasdf\<Esc>\<C-W>\<C-W>"
+ au BufWriteCmd XtestE call extend(g:lines, getline(0, '$'))
+ wall " will write other window to 'lines'
+ call assert_equal(4, len(g:lines), g:lines)
+ call assert_equal('asdf', g:lines[2])
+
+ au! BufReadCmd
+ au! BufWriteCmd
+ au! FileReadCmd
+ au! FileWriteCmd
+ au! FileAppendCmd
+ %bwipe!
+ call delete('Xxx')
+ enew!
+endfunc
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 9dba0c4..5709bf8 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -709,7 +709,7 @@ func Run_test_pipe_to_buffer(use_name, nomod, do_msg)
call ch_sendraw(handle, "double this\n")
call ch_sendraw(handle, "quit\n")
sp pipe-output
- call WaitFor('line("$") >= 6 && g:Ch_bufClosed == "yes"')
+ call WaitFor('line("$") == ' . len(expected) . ' && g:Ch_bufClosed == "yes"')
call assert_equal(expected, getline(1, '$'))
if a:nomod
call assert_equal(0, &modifiable)
@@ -804,7 +804,7 @@ func Run_test_pipe_err_to_buffer(use_name, nomod, do_msg)
call ch_sendraw(handle, "doubleerr this\n")
call ch_sendraw(handle, "quit\n")
sp pipe-err
- call WaitFor('line("$") >= 5')
+ call WaitFor('line("$") == ' . len(expected))
call assert_equal(expected, getline(1, '$'))
if a:nomod
call assert_equal(0, &modifiable)
@@ -1130,12 +1130,14 @@ func Test_pipe_to_buffer_raw()
let job = job_start([s:python, '-c',
\ 'import sys; [sys.stdout.write(".") and sys.stdout.flush() for _ in range(10000)]'], options)
call assert_equal("run", job_status(job))
- call WaitFor('len(join(getline(2,line("$")),"") >= 10000')
+ call WaitFor('len(join(getline(1, "$"), "")) >= 10000', 3000)
try
- for line in getline(2, '$')
- let line = substitute(line, '^\.*', '', '')
- call assert_equal('', line)
+ let totlen = 0
+ for line in getline(1, '$')
+ call assert_equal('', substitute(line, '^\.*', '', ''))
+ let totlen += len(line)
endfor
+ call assert_equal(10000, totlen)
finally
call job_stop(job)
bwipe!
@@ -1300,24 +1302,25 @@ func Test_close_and_exit_cb()
endif
call ch_log('Test_close_and_exit_cb')
- let dict = {'ret': {}}
- func dict.close_cb(ch) dict
+ let g:retdict = {'ret': {}}
+ func g:retdict.close_cb(ch) dict
let self.ret['close_cb'] = job_status(ch_getjob(a:ch))
endfunc
- func dict.exit_cb(job, status) dict
+ func g:retdict.exit_cb(job, status) dict
let self.ret['exit_cb'] = job_status(a:job)
endfunc
let g:job = job_start('echo', {
- \ 'close_cb': dict.close_cb,
- \ 'exit_cb': dict.exit_cb,
+ \ 'close_cb': g:retdict.close_cb,
+ \ 'exit_cb': g:retdict.exit_cb,
\ })
call assert_equal('run', job_status(g:job))
unlet g:job
- call WaitFor('len(dict.ret) >= 2')
- call assert_equal(2, len(dict.ret))
- call assert_match('^\%(dead\|run\)', dict.ret['close_cb'])
- call assert_equal('dead', dict.ret['exit_cb'])
+ call WaitFor('len(g:retdict.ret) >= 2')
+ call assert_equal(2, len(g:retdict.ret))
+ call assert_match('^\%(dead\|run\)', g:retdict.ret['close_cb'])
+ call assert_equal('dead', g:retdict.ret['exit_cb'])
+ unlet g:retdict
endfunc
""""""""""
@@ -1547,13 +1550,14 @@ func Test_job_stop_immediately()
return
endif
- let job = job_start([s:python, '-c', 'import time;time.sleep(10)'])
+ let g:job = job_start([s:python, '-c', 'import time;time.sleep(10)'])
try
- call job_stop(job)
- call WaitFor('"dead" == job_status(job)')
- call assert_equal('dead', job_status(job))
+ call job_stop(g:job)
+ call WaitFor('"dead" == job_status(g:job)')
+ call assert_equal('dead', job_status(g:job))
finally
- call job_stop(job, 'kill')
+ call job_stop(g:job, 'kill')
+ unlet g:job
endtry
endfunc
@@ -1585,7 +1589,7 @@ func Test_collapse_buffers()
split testout
1,$delete
call job_start('cat test_channel.vim', {'out_io': 'buffer', 'out_name': 'testout'})
- call WaitFor('line("$") > g:linecount')
+ call WaitFor('line("$") >= g:linecount')
call assert_inrange(g:linecount, g:linecount + 1, line('$'))
bwipe!
endfunc
diff --git a/src/testdir/test_clientserver.vim b/src/testdir/test_clientserver.vim
index 811af13..02840de 100644
--- a/src/testdir/test_clientserver.vim
+++ b/src/testdir/test_clientserver.vim
@@ -42,7 +42,7 @@ func Test_client_server()
call remote_foreground(name)
call remote_send(name, ":let testvar = 'yes'\<CR>")
- call WaitFor('remote_expr("' . name . '", "testvar", "", 1) == "yes"')
+ call WaitFor('remote_expr("' . name . '", "exists(\"testvar\") ? testvar : \"\"", "", 1) == "yes"')
call assert_equal('yes', remote_expr(name, "testvar", "", 2))
if has('unix') && has('gui') && !has('gui_running')
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index ff19082..832413e 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -365,6 +365,27 @@ func Test_cmdline_complete_user_cmd()
delcommand Foo
endfunc
+func Test_cmdline_write_alternatefile()
+ new
+ call setline('.', ['one', 'two'])
+ f foo.txt
+ new
+ f #-A
+ call assert_equal('foo.txt-A', expand('%'))
+ f #<-B.txt
+ call assert_equal('foo-B.txt', expand('%'))
+ f %<
+ call assert_equal('foo-B', expand('%'))
+ new
+ call assert_fails('f #<', 'E95')
+ bw!
+ f foo-B.txt
+ f %<-A
+ call assert_equal('foo-B-A', expand('%'))
+ bw!
+ bw!
+endfunc
+
" using a leading backslash here
set cpo+=C
diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim
index b6ba99c..5ebf38f 100644
--- a/src/testdir/test_fold.vim
+++ b/src/testdir/test_fold.vim
@@ -460,3 +460,170 @@ func Test_foldtext_recursive()
call assert_equal(3, foldclosedend(2))
bwipe!
endfunc
+
+" Various fold related tests
+
+" Basic test if a fold can be created, opened, moving to the end and closed
+func Test_fold_manual()
+ enew!
+ set fdm=manual
+
+ let content = ['1 aa', '2 bb', '3 cc']
+ call append(0, content)
+ call cursor(1, 1)
+ normal zf2j
+ call assert_equal('1 aa', getline(foldclosed('.')))
+ normal zo
+ call assert_equal(-1, foldclosed('.'))
+ normal ]z
+ call assert_equal('3 cc', getline('.'))
+ normal zc
+ call assert_equal('1 aa', getline(foldclosed('.')))
+
+ set fdm&
+ enew!
+endfunc
+
+" test folding with markers.
+func Test_fold_marker()
+ enew!
+ set fdm=marker fdl=1 fdc=3
+
+ let content = ['4 dd {{{', '5 ee {{{ }}}', '6 ff }}}']
+ call append(0, content)
+ call cursor(2, 1)
+ call assert_equal(2, foldlevel('.'))
+ normal [z
+ call assert_equal(1, foldlevel('.'))
+ exe "normal jo{{ \<Esc>r{jj"
+ call assert_equal(1, foldlevel('.'))
+ normal kYpj
+ call assert_equal(0, foldlevel('.'))
+
+ set fdm& fdl& fdc&
+ enew!
+endfunc
+
+" test folding with indent
+func Test_fold_indent()
+ enew!
+ set fdm=indent sw=2
+
+ let content = ['1 aa', '2 bb', '3 cc']
+ call append(0, content)
+ call cursor(2, 1)
+ exe "normal i \<Esc>jI "
+ call assert_equal(2, foldlevel('.'))
+ normal k
+ call assert_equal(1, foldlevel('.'))
+
+ set fdm& sw&
+ enew!
+endfunc
+
+" test syntax folding
+func Test_fold_syntax()
+ if !has('syntax')
+ return
+ endif
+
+ enew!
+ set fdm=syntax fdl=0
+
+ syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
+ syn region Fd1 start="ee" end="ff" fold contained
+ syn region Fd2 start="gg" end="hh" fold contained
+ syn region Fd3 start="commentstart" end="commentend" fold contained
+ let content = ['3 cc', '4 dd {{{', '5 ee {{{ }}}', '{{{{', '6 ff }}}',
+ \ '6 ff }}}', '7 gg', '8 hh', '9 ii']
+ call append(0, content)
+ normal Gzk
+ call assert_equal('9 ii', getline('.'))
+ normal k
+ call assert_equal('3 cc', getline('.'))
+ exe "normal jAcommentstart \<Esc>Acommentend"
+ set fdl=1
+ normal 3j
+ call assert_equal('7 gg', getline('.'))
+ set fdl=0
+ exe "normal zO\<C-L>j"
+ call assert_equal('8 hh', getline('.'))
+ syn clear Fd1 Fd2 Fd3 Hup
+
+ set fdm& fdl&
+ enew!
+endfunc
+
+func Flvl()
+ let l = getline(v:lnum)
+ if l =~ "bb$"
+ return 2
+ elseif l =~ "gg$"
+ return "s1"
+ elseif l =~ "ii$"
+ return ">2"
+ elseif l =~ "kk$"
+ return "0"
+ endif
+ return "="
+endfun
+
+" test expression folding
+func Test_fold_expr()
+ enew!
+ set fdm=expr fde=Flvl()
+
+ let content = ['1 aa',
+ \ '2 bb',
+ \ '3 cc',
+ \ '4 dd {{{commentstart commentend',
+ \ '5 ee {{{ }}}',
+ \ '{{{',
+ \ '6 ff }}}',
+ \ '6 ff }}}',
+ \ ' 7 gg',
+ \ ' 8 hh',
+ \ '9 ii',
+ \ 'a jj',
+ \ 'b kk']
+ call append(0, content)
+ call cursor(1, 1)
+ exe "normal /bb$\<CR>"
+ call assert_equal(2, foldlevel('.'))
+ exe "normal /hh$\<CR>"
+ call assert_equal(1, foldlevel('.'))
+ exe "normal /ii$\<CR>"
+ call assert_equal(2, foldlevel('.'))
+ exe "normal /kk$\<CR>"
+ call assert_equal(0, foldlevel('.'))
+
+ set fdm& fde&
+ enew!
+endfunc
+
+" Bug with fdm=indent and moving folds
+" Moving a fold a few times, messes up the folds below the moved fold.
+" Fixed by 7.4.700
+func Test_fold_move()
+ enew!
+ set fdm=indent sw=2 fdl=0
+
+ let content = ['', '', 'Line1', ' Line2', ' Line3',
+ \ 'Line4', ' Line5', ' Line6',
+ \ 'Line7', ' Line8', ' Line9']
+ call append(0, content)
+ normal zM
+ call cursor(4, 1)
+ move 2
+ move 1
+ call assert_equal(7, foldclosed(7))
+ call assert_equal(8, foldclosedend(7))
+ call assert_equal(0, foldlevel(9))
+ call assert_equal(10, foldclosed(10))
+ call assert_equal(11, foldclosedend(10))
+ call assert_equal('+-- 2 lines: Line2', foldtextresult(2))
+ call assert_equal('+-- 2 lines: Line8', foldtextresult(10))
+
+ set fdm& sw& fdl&
+ enew!
+endfunc
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index bdad26a..d25267f 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -90,3 +90,22 @@ func Test_ins_complete()
call delete('Xtestdata')
set cpt& cot& def& tags& tagbsearch& hidden&
endfunc
+
+func Test_omni_dash()
+ func Omni(findstart, base)
+ if a:findstart
+ return 5
+ else
+ echom a:base
+ return ['-help', '-v']
+ endif
+ endfunc
+ set omnifunc=Omni
+ new
+ exe "normal Gofind -\<C-x>\<C-o>"
+ call assert_equal("\n-\nmatch 1 of 2", execute(':2mess'))
+
+ bwipe!
+ delfunc Omni
+ set omnifunc=
+endfunc
diff --git a/src/testdir/test_netbeans.vim b/src/testdir/test_netbeans.vim
index 7bffeb2..aa4e676 100644
--- a/src/testdir/test_netbeans.vim
+++ b/src/testdir/test_netbeans.vim
@@ -19,6 +19,7 @@ endfunc
func Nb_basic(port)
call delete("Xnetbeans")
+ call writefile([], "Xnetbeans")
exe 'nbstart :localhost:' . a:port . ':bunny'
call assert_true(has("netbeans_enabled"))
@@ -27,7 +28,7 @@ func Nb_basic(port)
" Opening README.txt will result in a setDot command
call WaitFor('len(readfile("Xnetbeans")) > 4')
- call WaitFor('getcurpos()[1] == 2')
+ call WaitFor('getcurpos()[1] == 3')
let pos = getcurpos()
call assert_equal(3, pos[1])
call assert_equal(20, pos[2])
@@ -53,6 +54,9 @@ func Test_nb_basic()
endfunc
func Nb_file_auth(port)
+ call delete("Xnetbeans")
+ call writefile([], "Xnetbeans")
+
call assert_fails('nbstart =notexist', 'E660:')
call writefile(['host=localhost', 'port=' . a:port, 'auth=bunny'], 'Xnbauth')
if has('unix')
diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim
index f6b1a43..90033c0 100644
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -1208,6 +1208,13 @@ func! Test_normal19_z_spell()
call assert_match("Word 'goood' added to ./Xspellfile2.add", a)
call assert_equal('goood', cnt[0])
+ " Test for :spellgood!
+ let temp = execute(':spe!0/0')
+ call assert_match('Invalid region', temp)
+ let spellfile = matchstr(temp, 'Invalid region nr in \zs.*\ze line \d: 0')
+ call assert_equal(['# goood', '# goood/!', '#oood', '0/0'], readfile(spellfile))
+ call delete(spellfile)
+
" clean up
exe "lang" oldlang
call delete("./Xspellfile.add")
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 1be4e6f..281836c 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -637,9 +637,13 @@ func Test_popup_and_window_resize()
if h < 15
return
endif
- let g:buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile'], {'term_rows': h / 3})
- call term_sendkeys(g:buf, (h / 3 - 1)."o\<esc>")
- call term_wait(g:buf, 200)
+ let rows = h / 3
+ let g:buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile'], {'term_rows': rows})
+ call term_sendkeys(g:buf, (h / 3 - 1) . "o\<esc>")
+ " Wait for the nested Vim to exit insert mode, where it will show the ruler.
+ " Need to trigger a redraw.
+ call WaitFor(printf('execute("redraw") == "" && term_getline(g:buf, %d) =~ "\\<%d,.*Bot"', rows, rows))
+
call term_sendkeys(g:buf, "Gi\<c-x>")
call term_sendkeys(g:buf, "\<c-v>")
call term_wait(g:buf, 100)
diff --git a/src/testdir/test_scroll_opt.vim b/src/testdir/test_scroll_opt.vim
new file mode 100644
index 0000000..77920eb
--- /dev/null
+++ b/src/testdir/test_scroll_opt.vim
@@ -0,0 +1,36 @@
+" Test for reset 'scroll'
+"
+
+func Test_reset_scroll()
+ let scr = &l:scroll
+
+ setlocal scroll=1
+ setlocal scroll&
+ call assert_equal(scr, &l:scroll)
+
+ setlocal scroll=1
+ setlocal scroll=0
+ call assert_equal(scr, &l:scroll)
+
+ try
+ execute 'setlocal scroll=' . (winheight(0) + 1)
+ " not reached
+ call assert_false(1)
+ catch
+ call assert_exception('E49:')
+ endtry
+
+ split
+
+ let scr = &l:scroll
+
+ setlocal scroll=1
+ setlocal scroll&
+ call assert_equal(scr, &l:scroll)
+
+ setlocal scroll=1
+ setlocal scroll=0
+ call assert_equal(scr, &l:scroll)
+
+ quit!
+endfunc
diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim
index 19e631e..37661c3 100644
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -1,5 +1,7 @@
" Test for the search command
+source shared.vim
+
func Test_search_cmdline()
if !exists('+incsearch')
return
@@ -294,6 +296,25 @@ func Test_searchpair()
q!
endfunc
+func Test_searchpair_skip()
+ func Zero()
+ return 0
+ endfunc
+ func Partial(x)
+ return a:x
+ endfunc
+ new
+ call setline(1, ['{', 'foo', 'foo', 'foo', '}'])
+ 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', ''))
+ 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', '0'))
+ 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', {-> 0}))
+ 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', function('Zero')))
+ 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', function('Partial', [0])))
+ " invalid argument
+ 3 | call assert_equal(0, searchpair('{', '', '}', 'bWn', 0))
+ bw!
+endfunc
+
func Test_searchc()
" These commands used to cause memory overflow in searchc().
new
@@ -376,6 +397,117 @@ func Test_search_cmdline5()
bw!
endfunc
+func Test_search_cmdline6()
+ " Test that consecutive matches
+ " are caught by <c-g>/<c-t>
+ if !exists('+incsearch')
+ return
+ endif
+ " need to disable char_avail,
+ " so that expansion of commandline works
+ call test_override("char_avail", 1)
+ new
+ call setline(1, [' bbvimb', ''])
+ set incsearch
+ " first match
+ norm! gg0
+ call feedkeys("/b\<cr>", 'tx')
+ call assert_equal([0,1,2,0], getpos('.'))
+ " second match
+ norm! gg0
+ call feedkeys("/b\<c-g>\<cr>", 'tx')
+ call assert_equal([0,1,3,0], getpos('.'))
+ " third match
+ norm! gg0
+ call feedkeys("/b\<c-g>\<c-g>\<cr>", 'tx')
+ call assert_equal([0,1,7,0], getpos('.'))
+ " first match again
+ norm! gg0
+ call feedkeys("/b\<c-g>\<c-g>\<c-g>\<cr>", 'tx')
+ call assert_equal([0,1,2,0], getpos('.'))
+ set nowrapscan
+ " last match
+ norm! gg0
+ call feedkeys("/b\<c-g>\<c-g>\<c-g>\<cr>", 'tx')
+ call assert_equal([0,1,7,0], getpos('.'))
+ " clean up
+ set wrapscan&vim
+ set noincsearch
+ call test_override("char_avail", 0)
+ bw!
+endfunc
+
+func Test_search_cmdline7()
+ " Test that an pressing <c-g> in an empty command line
+ " does not move the cursor
+ if !exists('+incsearch')
+ return
+ endif
+ " need to disable char_avail,
+ " so that expansion of commandline works
+ call test_override("char_avail", 1)
+ new
+ let @/='b'
+ call setline(1, [' bbvimb', ''])
+ set incsearch
+ " first match
+ norm! gg0
+ " moves to next match of previous search pattern, just like /<cr>
+ call feedkeys("/\<c-g>\<cr>", 'tx')
+ call assert_equal([0,1,2,0], getpos('.'))
+ " moves to next match of previous search pattern, just like /<cr>
+ call feedkeys("/\<cr>", 'tx')
+ call assert_equal([0,1,3,0], getpos('.'))
+ " moves to next match of previous search pattern, just like /<cr>
+ call feedkeys("/\<c-t>\<cr>", 'tx')
+ call assert_equal([0,1,7,0], getpos('.'))
+ set noincsearch
+ call test_override("char_avail", 0)
+ bw!
+endfunc
+
+func Test_search_cmdline8()
+ " Highlighting is cleared in all windows
+ " since hls applies to all windows
+ if !exists('+incsearch') || !has('terminal') || has('gui_running') || winwidth(0) < 30
+ return
+ endif
+ if has("win32")
+ throw "Skipped: Bug with sending <ESC> to terminal window not fixed yet"
+ endif
+ let h = winheight(0)
+ if h < 3
+ return
+ endif
+ " Prepare buffer text
+ let lines = ['abb vim vim vi', 'vimvivim']
+ call writefile(lines, 'Xsearch.txt')
+ let g:buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile', 'Xsearch.txt'], {'term_rows': 3})
+
+ call term_wait(g:buf, 200)
+ call assert_equal(lines[0], term_getline(g:buf, 1))
+ call assert_equal(lines[1], term_getline(g:buf, 2))
+
+ call term_sendkeys(g:buf, ":set incsearch hlsearch\<cr>")
+ call term_sendkeys(g:buf, ":14vsp\<cr>")
+ call term_sendkeys(g:buf, "/vim\<cr>")
+ call term_sendkeys(g:buf, "/b\<esc>")
+ call term_sendkeys(g:buf, "gg0")
+ call term_wait(g:buf, 500)
+ let screen_line = term_scrape(g:buf, 1)
+ let [a0,a1,a2,a3] = [screen_line[3].attr, screen_line[4].attr,
+ \ screen_line[18].attr, screen_line[19].attr]
+ call assert_notequal(a0, a1)
+ call assert_notequal(a0, a3)
+ call assert_notequal(a1, a2)
+ call assert_equal(a0, a2)
+ call assert_equal(a1, a3)
+ " clean up
+ call delete('Xsearch.txt')
+
+ bwipe!
+endfunc
+
" Tests for regexp with various magic settings
func Test_search_regexp()
enew!
@@ -431,3 +563,141 @@ func Test_search_regexp()
set undolevels&
enew!
endfunc
+
+func Test_search_cmdline_incsearch_highlight()
+ if !exists('+incsearch')
+ return
+ endif
+ set incsearch hlsearch
+ " need to disable char_avail,
+ " so that expansion of commandline works
+ call test_override("char_avail", 1)
+ new
+ call setline(1, ['aaa 1 the first', ' 2 the second', ' 3 the third'])
+
+ 1
+ call feedkeys("/second\<cr>", 'tx')
+ call assert_equal('second', @/)
+ call assert_equal(' 2 the second', getline('.'))
+
+ " Canceling search won't change @/
+ 1
+ let @/ = 'last pattern'
+ call feedkeys("/third\<C-c>", 'tx')
+ call assert_equal('last pattern', @/)
+ call feedkeys("/third\<Esc>", 'tx')
+ call assert_equal('last pattern', @/)
+ call feedkeys("/3\<bs>\<bs>", 'tx')
+ call assert_equal('last pattern', @/)
+ call feedkeys("/third\<c-g>\<c-t>\<Esc>", 'tx')
+ call assert_equal('last pattern', @/)
+
+ " clean up
+ set noincsearch nohlsearch
+ bw!
+endfunc
+
+func Test_search_cmdline_incsearch_highlight_attr()
+ if !exists('+incsearch') || !has('terminal') || has('gui_running')
+ return
+ endif
+ let h = winheight(0)
+ if h < 3
+ return
+ endif
+
+ " Prepare buffer text
+ let g:lines = ['abb vim vim vi', 'vimvivim']
+ call writefile(g:lines, 'Xsearch.txt')
+ let g:buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile', 'Xsearch.txt'], {'term_rows': 3})
+ call WaitFor('g:lines[0] == term_getline(g:buf, 1)')
+ call assert_equal(g:lines[0], term_getline(g:buf, 1))
+ call assert_equal(g:lines[1], term_getline(g:buf, 2))
+ unlet g:lines
+
+ " Get attr of normal(a0), incsearch(a1), hlsearch(a2) highlight
+ call term_sendkeys(g:buf, ":set incsearch hlsearch\<cr>")
+ call term_sendkeys(g:buf, '/b')
+ call term_wait(g:buf, 200)
+ let screen_line1 = term_scrape(g:buf, 1)
+ call assert_true(len(screen_line1) > 2)
+ " a0: attr_normal
+ let a0 = screen_line1[0].attr
+ " a1: attr_incsearch
+ let a1 = screen_line1[1].attr
+ " a2: attr_hlsearch
+ let a2 = screen_line1[2].attr
+ call assert_notequal(a0, a1)
+ call assert_notequal(a0, a2)
+ call assert_notequal(a1, a2)
+ call term_sendkeys(g:buf, "\<cr>gg0")
+
+ " Test incremental highlight search
+ call term_sendkeys(g:buf, "/vim")
+ call term_wait(g:buf, 200)
+ " Buffer:
+ " abb vim vim vi
+ " vimvivim
+ " Search: /vim
+ let attr_line1 = [a0,a0,a0,a0,a1,a1,a1,a0,a2,a2,a2,a0,a0,a0]
+ let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
+ call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
+ call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
+
+ " Test <C-g>
+ call term_sendkeys(g:buf, "\<C-g>\<C-g>")
+ call term_wait(g:buf, 200)
+ let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0]
+ let attr_line2 = [a1,a1,a1,a0,a0,a2,a2,a2]
+ call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
+ call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
+
+ " Test <C-t>
+ call term_sendkeys(g:buf, "\<C-t>")
+ call term_wait(g:buf, 200)
+ let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a1,a1,a1,a0,a0,a0]
+ let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
+ call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
+ call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
+
+ " Type Enter and a1(incsearch highlight) should become a2(hlsearch highlight)
+ call term_sendkeys(g:buf, "\<cr>")
+ call term_wait(g:buf, 200)
+ let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0]
+ let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
+ call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
+ call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
+
+ " Test nohlsearch. a2(hlsearch highlight) should become a0(normal highlight)
+ call term_sendkeys(g:buf, ":1\<cr>")
+ call term_sendkeys(g:buf, ":set nohlsearch\<cr>")
+ call term_sendkeys(g:buf, "/vim")
+ call term_wait(g:buf, 200)
+ let attr_line1 = [a0,a0,a0,a0,a1,a1,a1,a0,a0,a0,a0,a0,a0,a0]
+ let attr_line2 = [a0,a0,a0,a0,a0,a0,a0,a0]
+ call assert_equal(attr_line1, map(term_scrape(g:buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
+ call assert_equal(attr_line2, map(term_scrape(g:buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
+ call delete('Xsearch.txt')
+
+ call delete('Xsearch.txt')
+ bwipe!
+endfunc
+
+func Test_search_undefined_behaviour()
+ if !has("terminal")
+ return
+ endif
+ let h = winheight(0)
+ if h < 3
+ return
+ endif
+ " did cause an undefined left shift
+ let g:buf = term_start([GetVimProg(), '--clean', '-e', '-s', '-c', 'call search(getline("."))', 'samples/test000'], {'term_rows': 3})
+ call assert_equal([''], getline(1, '$'))
+ call term_sendkeys(g:buf, ":qa!\<cr>")
+ bwipe!
+endfunc
+
+func Test_search_undefined_behaviour2()
+ call search("\%UC0000000")
+endfunc
diff --git a/src/testdir/test_swap.vim b/src/testdir/test_swap.vim
new file mode 100644
index 0000000..245e1f1
--- /dev/null
+++ b/src/testdir/test_swap.vim
@@ -0,0 +1,48 @@
+" Tests for the swap feature
+
+" Tests for 'directory' option.
+func Test_swap_directory()
+ if !has("unix")
+ return
+ endif
+ let content = ['start of testfile',
+ \ 'line 2 Abcdefghij',
+ \ 'line 3 Abcdefghij',
+ \ 'end of testfile']
+ call writefile(content, 'Xtest1')
+
+ " '.', swap file in the same directory as file
+ set dir=.,~
+
+ " Verify that the swap file doesn't exist in the current directory
+ call assert_equal([], glob(".Xtest1*.swp", 1, 1, 1))
+ edit Xtest1
+ let swfname = split(execute("swapname"))[0]
+ call assert_equal([swfname], glob(swfname, 1, 1, 1))
+
+ " './dir', swap file in a directory relative to the file
+ set dir=./Xtest2,.,~
+
+ call mkdir("Xtest2")
+ edit Xtest1
+ call assert_equal([], glob(swfname, 1, 1, 1))
+ let swfname = "Xtest2/Xtest1.swp"
+ call assert_equal(swfname, split(execute("swapname"))[0])
+ call assert_equal([swfname], glob("Xtest2/*", 1, 1, 1))
+
+ " 'dir', swap file in directory relative to the current dir
+ set dir=Xtest.je,~
+
+ call mkdir("Xtest.je")
+ call writefile(content, 'Xtest2/Xtest3')
+ edit Xtest2/Xtest3
+ call assert_equal(["Xtest2/Xtest3"], glob("Xtest2/*", 1, 1, 1))
+ let swfname = "Xtest.je/Xtest3.swp"
+ call assert_equal(swfname, split(execute("swapname"))[0])
+ call assert_equal([swfname], glob("Xtest.je/*", 1, 1, 1))
+
+ set dir&
+ call delete("Xtest1")
+ call delete("Xtest2", "rf")
+ call delete("Xtest.je", "rf")
+endfunc
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index dbab8d9..0e51098 100644
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -174,4 +174,59 @@ func Test_tag_symbolic()
%bwipe!
endfunc
+" Tests for tag search with !_TAG_FILE_ENCODING.
+" Depends on the test83-tags2 and test83-tags3 files.
+func Test_tag_file_encoding()
+ if has('vms')
+ return
+ endif
+
+ if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+ return
+ endif
+
+ let save_enc = &encoding
+ set encoding=utf8
+
+ let content = ['text for tags1', 'abcdefghijklmnopqrs']
+ call writefile(content, 'Xtags1.txt')
+ let content = ['text for tags2', 'ABC']
+ call writefile(content, 'Xtags2.txt')
+ let content = ['text for tags3', 'ABC']
+ call writefile(content, 'Xtags3.txt')
+ let content = ['!_TAG_FILE_ENCODING utf-8 //', 'abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs']
+ call writefile(content, 'Xtags1')
+
+ " case1:
+ new
+ set tags=Xtags1
+ tag abcdefghijklmnopqrs
+ call assert_equal('Xtags1.txt', expand('%:t'))
+ call assert_equal('abcdefghijklmnopqrs', getline('.'))
+ close
+
+ " case2:
+ new
+ set tags=test83-tags2
+ tag /.BC
+ call assert_equal('Xtags2.txt', expand('%:t'))
+ call assert_equal('ABC', getline('.'))
+ close
+
+ " case3:
+ new
+ set tags=test83-tags3
+ tag abc50
+ call assert_equal('Xtags3.txt', expand('%:t'))
+ call assert_equal('ABC', getline('.'))
+ close
+
+ set tags&
+ let &encoding = save_enc
+ call delete('Xtags1.txt')
+ call delete('Xtags2.txt')
+ call delete('Xtags3.txt')
+ call delete('Xtags1')
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index bd7821d..967cd8f 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -11,7 +11,11 @@ let s:python = PythonProg()
" Open a terminal with a shell, assign the job to g:job and return the buffer
" number.
func Run_shell_in_terminal(options)
- let buf = term_start(&shell, a:options)
+ if has('win32')
+ let buf = term_start([&shell,'/k'], a:options)
+ else
+ let buf = term_start(&shell, a:options)
+ endif
let termlist = term_list()
call assert_equal(1, len(termlist))
@@ -430,13 +434,14 @@ func Test_terminal_cwd()
endfunc
func Test_terminal_env()
- if !has('unix')
- return
- endif
let g:buf = Run_shell_in_terminal({'env': {'TESTENV': 'correct'}})
" Wait for the shell to display a prompt
call WaitFor('term_getline(g:buf, 1) != ""')
- call term_sendkeys(g:buf, "echo $TESTENV\r")
+ if has('win32')
+ call term_sendkeys(g:buf, "echo %TESTENV%\r")
+ else
+ call term_sendkeys(g:buf, "echo $TESTENV\r")
+ endif
call term_wait(g:buf)
call Stop_shell_in_terminal(g:buf)
call WaitFor('getline(2) == "correct"')
@@ -700,7 +705,7 @@ func Test_terminal_composing_unicode()
enew
let buf = term_start(cmd, {'curwin': bufnr('')})
- let job = term_getjob(buf)
+ let g:job = term_getjob(buf)
call term_wait(buf, 50)
" ascii + composing
@@ -737,8 +742,9 @@ func Test_terminal_composing_unicode()
call assert_equal("\u00a0\u0308", l[3].chars)
call term_sendkeys(buf, "exit\r")
- call WaitFor('job_status(job) == "dead"')
- call assert_equal('dead', job_status(job))
+ call WaitFor('job_status(g:job) == "dead"')
+ call assert_equal('dead', job_status(g:job))
bwipe!
+ unlet g:job
let &encoding = save_enc
endfunc
diff --git a/src/ui.c b/src/ui.c
index f175e1a..d7daf94 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1748,7 +1748,7 @@ read_from_input_buf(char_u *buf, long maxlen)
void
fill_input_buf(int exit_on_error UNUSED)
{
-#if defined(UNIX) || defined(VMS) || defined(MACOS_X_UNIX)
+#if defined(UNIX) || defined(VMS) || defined(MACOS_X)
int len;
int try;
static int did_read_something = FALSE;
@@ -1772,7 +1772,7 @@ fill_input_buf(int exit_on_error UNUSED)
return;
}
#endif
-#if defined(UNIX) || defined(VMS) || defined(MACOS_X_UNIX)
+#if defined(UNIX) || defined(VMS) || defined(MACOS_X)
if (vim_is_input_buf_full())
return;
/*
diff --git a/src/undo.c b/src/undo.c
index 792d791..2c5725f 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1750,7 +1750,7 @@ write_error:
if (!write_ok)
EMSG2(_("E829: write error in undo file: %s"), file_name);
-#if defined(MACOS_CLASSIC) || defined(WIN3264)
+#if defined(WIN3264)
/* Copy file attributes; for systems where this can only be done after
* closing the file. */
if (buf->b_ffname != NULL)
diff --git a/src/version.c b/src/version.c
index 71569b3..65f5a4b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,68 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1257,
+/**/
+ 1256,
+/**/
+ 1255,
+/**/
+ 1254,
+/**/
+ 1253,
+/**/
+ 1252,
+/**/
+ 1251,
+/**/
+ 1250,
+/**/
+ 1249,
+/**/
+ 1248,
+/**/
+ 1247,
+/**/
+ 1246,
+/**/
+ 1245,
+/**/
+ 1244,
+/**/
+ 1243,
+/**/
+ 1242,
+/**/
+ 1241,
+/**/
+ 1240,
+/**/
+ 1239,
+/**/
+ 1238,
+/**/
+ 1237,
+/**/
+ 1236,
+/**/
+ 1235,
+/**/
+ 1234,
+/**/
+ 1233,
+/**/
+ 1232,
+/**/
+ 1231,
+/**/
+ 1230,
+/**/
+ 1229,
+/**/
+ 1228,
+/**/
+ 1227,
+/**/
1226,
/**/
1225,
@@ -3371,15 +3433,11 @@ list_version(void)
# endif
# endif
#endif
-#ifdef MACOS
-# ifdef MACOS_X
-# ifdef MACOS_X_UNIX
- MSG_PUTS(_("\nMacOS X (unix) version"));
-# else
- MSG_PUTS(_("\nMacOS X version"));
-# endif
-#else
- MSG_PUTS(_("\nMacOS version"));
+#if defined(MACOS_X)
+# if defined(MACOS_X_DARWIN)
+ MSG_PUTS(_("\nmacOS version"));
+# else
+ MSG_PUTS(_("\nmacOS version w/o darwin feat."));
# endif
#endif
@@ -3512,9 +3570,6 @@ list_version(void)
# if defined(TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX
MSG_PUTS(_("with Cocoa GUI."));
# else
-# if defined(MACOS)
- MSG_PUTS(_("with (classic) GUI."));
-# endif
# endif
# endif
# endif
diff --git a/src/vim.h b/src/vim.h
index ed12b07..d12c46c 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -85,28 +85,15 @@
#endif
/*
- * MACOS_CLASSIC compiling for MacOS prior to MacOS X
- * MACOS_X_UNIX compiling for MacOS X (using os_unix.c)
- * MACOS_X compiling for MacOS X (using os_unix.c)
- * MACOS compiling for either one
+ * MACOS_X compiling for Mac OS X
+ * MACOS_X_DARWIN integrating the darwin feature into MACOS_X
*/
-#if defined(macintosh) && !defined(MACOS_CLASSIC)
-# define MACOS_CLASSIC
-#endif
-#if defined(MACOS_X_UNIX)
+#if defined(MACOS_X_DARWIN) && !defined(MACOS_X)
# define MACOS_X
-# ifndef HAVE_CONFIG_H
-# define UNIX
-# endif
-#endif
-#if defined(MACOS_X) || defined(MACOS_CLASSIC)
-# define MACOS
-#endif
-#if defined(MACOS_X) && defined(MACOS_CLASSIC)
- Error: To compile for both MACOS X and Classic use a Classic Carbon
#endif
/* Unless made through the Makefile enforce GUI on Mac */
-#if defined(MACOS) && !defined(HAVE_CONFIG_H)
+#if defined(MACOS_X) && !defined(HAVE_CONFIG_H)
+# define UNIX
# define FEAT_GUI_MAC
#endif
@@ -164,23 +151,17 @@
# endif
# endif
#endif
-#ifdef MACOS
-# if defined(__POWERPC__) || defined(MACOS_X) || defined(__fourbyteints__) \
- || defined(__MRC__) || defined(__SC__) || defined(__APPLE_CC__)/* MPW Compilers */
-# define VIM_SIZEOF_INT 4
-# else
-# define VIM_SIZEOF_INT 2
-# endif
+#if defined(MACOS_X) && !defined(HAVE_CONFIG_H)
+# define VIM_SIZEOF_INT __SIZEOF_INT__
#endif
-
/*
* #defines for optionals and features
* Also defines FEAT_TINY, FEAT_SMALL, etc. when FEAT_HUGE is defined.
*/
#include "feature.h"
-#if defined(MACOS_X_UNIX)
+#if defined(MACOS_X_DARWIN)
# if defined(FEAT_SMALL) && !defined(FEAT_CLIPBOARD)
# define FEAT_CLIPBOARD
# endif
@@ -227,7 +208,7 @@
#endif
/* The Mac conversion stuff doesn't work under X11. */
-#if defined(FEAT_MBYTE) && defined(MACOS_X)
+#if defined(FEAT_MBYTE) && defined(MACOS_X_DARWIN)
# define MACOS_CONVERT
#endif
@@ -297,10 +278,7 @@
# include "os_mint.h"
#endif
-#if defined(MACOS)
-# if defined(__MRC__) || defined(__SC__) /* MPW Compilers */
-# define HAVE_SETENV
-# endif
+#if defined(MACOS_X)
# include "os_mac.h"
#endif
@@ -2358,9 +2336,10 @@ typedef enum {
# ifdef instr
# undef instr
# endif
- /* bool may cause trouble on MACOS but is required on a few other systems
- * and for Perl */
-# if defined(bool) && defined(MACOS) && !defined(FEAT_PERL)
+ /* bool may cause trouble on some old versions of Mac OS X but is required
+ * on a few other systems and for Perl */
+# if (defined(MACOS_X) && !defined(MAC_OS_X_VERSION_10_6)) \
+ && defined(bool) && !defined(FEAT_PERL)
# undef bool
# endif
diff --git a/src/window.c b/src/window.c
index ad084a4..97c5dc3 100644
--- a/src/window.c
+++ b/src/window.c
@@ -6364,7 +6364,7 @@ vim_FullName(
/* something failed; use the file name (truncate when too long) */
vim_strncpy(buf, fname, len - 1);
}
-#if defined(MACOS_CLASSIC) || defined(MSWIN)
+#if defined(MSWIN)
slash_adjust(buf);
#endif
return retval;