Compare commits

...

32 Commits

Author SHA1 Message Date
Bram Moolenaar
e3303cb081 patch 7.4.1007
Problem:    When a symbolic link points to a file in the root directory, the
            swapfile is not correct.
Solution:   Do not try getting the full name of a file in the root directory.
            (Milly, closes #501)
2015-12-31 18:29:46 +01:00
Bram Moolenaar
96c664af27 patch 7.4.1006
Problem:    The fix in patch 7.3.192 is not tested.
Solution:   Add a test, one for each regexp engine. (Elias Diem)
2015-12-31 16:21:52 +01:00
Bram Moolenaar
86e179dbe7 patch 7.4.1005
Problem:    Vim users are not always happy.
Solution:   Make them happy.
2015-12-31 16:10:23 +01:00
Bram Moolenaar
cc7ff3fcd8 Update English spell files. 2015-12-30 19:13:24 +01:00
Bram Moolenaar
08b7bae91a patch 7.4.1004
Problem:    Using Makefile when auto/config.mk does not exists results in
            warnings.
Solution:   Use default values for essential variables.
2015-12-30 17:56:05 +01:00
Bram Moolenaar
7b5f0a15bc patch 7.4.1003
Problem:    Travis could check a few more things.
Solution:   Run autoconf on one of the builds. (James McCoy, closes #510)
            Also build with normal features.
2015-12-30 17:40:43 +01:00
Bram Moolenaar
604619784c patch 7.4.1002
Problem:    Cannot run an individual test on MS-Windows.
Solution:   Move the rule to run test1 downwards. (Ken Takata)
2015-12-30 17:17:10 +01:00
Bram Moolenaar
f49e240c2d patch 7.4.1001
Problem:    test_viml isn't run.
Solution:   Include change in makefile.
2015-12-30 15:59:25 +01:00
Bram Moolenaar
c06624661a patch 7.4.1000
Problem:    Test 49 is slow and doesn't work on MS-Windows.
Solution:   Start moving parts of test 49 to test_viml.
2015-12-30 15:49:05 +01:00
Bram Moolenaar
b8cb643eab patch 7.4.999
Problem:    "make shadow" creates a broken link. (Tony Mechelynck)
Solution:   Remove vimrc.unix from the list.
2015-12-30 13:43:56 +01:00
Bram Moolenaar
f9c8bd2137 patch 7.4.998
Problem:    Running tests in shadow directory fails.  Test 49 fails.
Solution:   Link more files for the shadow directory. Make test 49 end up in
            the right buffer.
2015-12-29 21:34:48 +01:00
Bram Moolenaar
4c7bb12c82 patch 7.4.997
Problem:    "make shadow" was sometimes broken.
Solution:   Add a test for it. (James McCoy, closes #520)
2015-12-29 20:32:23 +01:00
Bram Moolenaar
256972a984 Updated runtime files. 2015-12-29 19:10:25 +01:00
Bram Moolenaar
e292d80bed patch 7.4.996
Problem:    New GDK files and testdir/Make_all.mak missing from distribution.
            PC build instructions are outdated.
Solution:   Add the file to the list.  Update PC build instructions.
2015-12-29 19:03:21 +01:00
Bram Moolenaar
36e294c00c patch 7.4.995
Problem:    gdk_pixbuf_new_from_inline() is deprecated.
Solution:   Generate auto/gui_gtk_gresources.c. (Kazunobu Kazunobu,
            closes #507)
2015-12-29 18:55:46 +01:00
Bram Moolenaar
4e5a31c8b3 patch 7.4.994
Problem:    New style tests are not run on MS-Windows.
Solution:   Add the new style tests.
2015-12-29 17:11:15 +01:00
Bram Moolenaar
52f6ae1366 patch 7.4.993
Problem:    Test 87 is flaky on AppVeyor.
Solution:   Reduce the minimum background thread count.
2015-12-29 16:34:06 +01:00
Bram Moolenaar
013806229a patch 7.4.992
Problem:    Makefiles for MS-Windows in src/po are outdated.
Solution:   Make them work. (Ken Takata, Taro Muraoka)
2015-12-29 16:04:42 +01:00
Bram Moolenaar
096c8bb40d patch 7.4.991
Problem:    When running new style tests the output is not visible.
Solution:   Add the testdir/messages file and show it.  Update the list of
            test names.
2015-12-29 14:26:57 +01:00
Bram Moolenaar
e5c5f0c66c patch 7.4.990
Problem:    Test 86 fails on AppVeyor.
Solution:   Do some registry magic. (Ken Takata)
2015-12-29 13:59:29 +01:00
Bram Moolenaar
0107f5ba87 patch 7.4.989
Problem:    Leaking memory when hash_add() fails. Coverity error 99126.
Solution:   When hash_add() fails free the memory.
2015-12-28 22:51:20 +01:00
Bram Moolenaar
40bbceee22 patch 7.4.988
Problem:    Default test target is test49.out.
Solution:   Add a build rule before including Make_all.mak.
2015-12-28 22:24:41 +01:00
Bram Moolenaar
0d27f64f71 patch 7.4.987
Problem:    Can't build with Ruby 1.9.2.
Solution:   Require Rub 2.0 for defining USE_TYPEDDATA.
2015-12-28 22:05:28 +01:00
Bram Moolenaar
da9888a3f0 patch 7.4.986
Problem:    Test49 doesn't work on MS-Windows.  test70 is listed twice.
Solution:   Move test49 to the group not used on Amiga and MS-Windows.
            Remove test70 from SCRIPTS_WIN32.
2015-12-28 21:35:14 +01:00
Bram Moolenaar
f2f6d29796 patch 7.4.985
Problem:    Can't build with Ruby 2.3.0.
Solution:   Use the new TypedData_XXX macro family instead of Data_XXX. Use
            TypedData. (Ken Takata)
2015-12-28 20:57:10 +01:00
Bram Moolenaar
ad4d8a192a patch 7.4.984
Problem:    searchpos() always starts searching in the first column, which is
            not what some people expect. (Brett Stahlman)
Solution:   Add the 'z' flag: start at the specified column.
2015-12-28 19:20:36 +01:00
Bram Moolenaar
a60824308c patch 7.4.983
Problem:    Executing one test after "make testclean" doesn't work.
Solution:   Add a dependency on test1.out.
2015-12-28 16:26:45 +01:00
Bram Moolenaar
7b6156f4cd patch 7.4.982
Problem:    Keeping the list of tests updated is a hassle.
Solution:   Move the list to a separate file, so that it only needs to be
            udpated in one place.
2015-12-28 16:01:26 +01:00
Bram Moolenaar
4686b323e4 patch 7.4.981
Problem:    An error in a test script goes unnoticed.
Solution:   Source the test script inside try/catch. (Hirohito Higashi)
2015-12-28 14:44:10 +01:00
Bram Moolenaar
57d7971b5f patch 7.4.980
Problem:    Tests for :cdo, :ldo, etc. are outdated.
Solution:   Add new style tests for these commands. (Yegappan Lakshmanan)
2015-12-28 14:04:47 +01:00
Bram Moolenaar
4a8c2cfc56 patch 7.4.979
Problem:    When changing the crypt key the blocks read from disk are not
            decrypted.
Solution:   Also call ml_decrypt_data() when mf_old_key is set. (Ken Takata)
2015-12-19 15:28:18 +01:00
Bram Moolenaar
c42b9c670e patch 7.4.978
Problem:    test_cdo fails when using another language than English.
Solution:   Set the language to C. (Dominique Pelle)
2015-12-19 15:15:54 +01:00
100 changed files with 14548 additions and 4865 deletions

2
.gitignore vendored
View File

@@ -3,6 +3,8 @@
src/vim
src/xxd/xxd
src/auto/if_perl.c
src/auto/gui_gtk_gresources.c
src/auto/gui_gtk_gresources.h
src/tags
# We do need src/auto/configure.

View File

@@ -5,10 +5,12 @@ compiler:
- gcc
env:
- COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge
- COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
- COVERAGE=no FEATURES=small CONFOPT=
- COVERAGE=no FEATURES=tiny CONFOPT=
CHECK_AUTOCONF=yes
- COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
sudo: false
@@ -19,6 +21,7 @@ branches:
addons:
apt:
packages:
- autoconf
- lcov
- libperl-dev
- python-dev
@@ -31,11 +34,12 @@ before_install:
script:
- NPROC=$(getconf _NPROCESSORS_ONLN)
- ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && make -j$NPROC
- ./src/vim --version
- make test
- if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
- if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi && (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && make -j$NPROC)
- ${SRCDIR}/vim --version
- make $SHADOWOPT test
after_success:
- if [ x"$COVERAGE" = "xyes" ]; then ~/.local/bin/coveralls -b src -x .xs -e src/xxd -e src/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi
- if [ x"$COVERAGE" = "xyes" ]; then ~/.local/bin/coveralls -b $SRCDIR -x .xs -e ${SRCDIR}/xxd -e ${SRCDIR}/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi
# vim:set sts=2 sw=2 tw=0 et:

View File

@@ -85,6 +85,7 @@ SRC_ALL = \
src/main.aap \
src/testdir/main.aap \
src/testdir/README.txt \
src/testdir/Make_all.mak \
src/testdir/*.in \
src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \
@@ -169,6 +170,7 @@ SRC_UNIX = \
README_src.txt \
configure \
pixmaps/*.xpm \
pixmaps/*.png \
pixmaps/gen-inline-pixbufs.sh \
pixmaps/stock_icons.h \
src/INSTALL \
@@ -189,6 +191,7 @@ SRC_UNIX = \
src/gui_gtk_f.c \
src/gui_gtk_f.h \
src/gui_gtk_x11.c \
src/gui_gtk_gresources.xml \
src/gui_motif.c \
src/gui_xmdlg.c \
src/gui_xmebw.c \
@@ -214,6 +217,7 @@ SRC_UNIX = \
src/proto/gui_athena.pro \
src/proto/gui_gtk.pro \
src/proto/gui_gtk_x11.pro \
src/proto/gui_gtk_gresources.pro \
src/proto/gui_motif.pro \
src/proto/gui_xmdlg.pro \
src/proto/gui_x11.pro \

View File

@@ -143,18 +143,31 @@ MINOR = 4
# For Windows 98/ME the 2003 version is required, but then the executable
# won't work on Windows 7 and 64 bit systems.
# - "nmake -f Make_mvc.mak" (use the same path as for vcvars32.bat)
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
# - Run the tests:
# > rm testdir/*.out
# > nmake -f Make_mvc.mak test
# - check the output.
# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe.
# - Rename vim.pdb to vimw32.pdb.
# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe.
# Win32 GUI version:
# - "nmake -f Make_mvc.mak GUI=yes"
# - Run the tests:
# > cd testdir
# > rm *.out
# > nmake -f Make_dos.mak VIMPROG=..\gvim
# - check the output.
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
# - Copy "GvimExt/gvimext.dll" to here.
# Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME:
# - Run src/bigvim.bat ("nmake -f Make_mvc.mak GUI=yes OLE=yes IME=yes ...)
# - Run the tests:
# > cd testdir
# > rm *.out
# > nmake -f Make_dos.mak VIMPROG=..\gvim
# - check the output.
# - Rename "gvim.exe" to "gvim_ole.exe".
# - Rename gvim.pdb to "gvim_ole.pdb".
# - Delete install.exe and uninstal.exe.

View File

@@ -4,6 +4,9 @@ skip_tags: true
before_build:
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
# Work around for Python 2.7.11's bug
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:32
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:64
build_script:
- cd src

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
pixmaps/stock_vim_shell.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.4. Last change: 2015 Aug 18
*autocmd.txt* For Vim version 7.4. Last change: 2015 Dec 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1131,6 +1131,9 @@ name!
:aug[roup] {name} Define the autocmd group name for the
following ":autocmd" commands. The name "end"
or "END" selects the default group.
To avoid confusion, the name should be
different from existing {event} names, as this
most likely will not do what you intended.
*:augroup-delete* *E367*
:aug[roup]! {name} Delete the autocmd group {name}. Don't use

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.4. Last change: 2015 Sep 25
*cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -101,6 +101,11 @@ CTRL-E or <End> *c_CTRL-E* *c_<End>* *c_End*
*c_<LeftMouse>*
<LeftMouse> Move the cursor to the position of the mouse click.
*c_<MiddleMouse>*
<MiddleMouse> Paste the contents of the clipboard (for X11 the primary
selection). This is similar to using CTRL-R *, but no CR
characters are inserted between lines.
CTRL-H *c_<BS>* *c_CTRL-H* *c_BS*
<BS> Delete the character in front of the cursor (see |:fixdel| if
your <BS> key does not do what you want).

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2015 Dec 03
*eval.txt* For Vim version 7.4. Last change: 2015 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -865,8 +865,8 @@ expr1'th single byte from expr8. expr8 is used as a String, expr1 as a
Number. This doesn't recognize multi-byte encodings, see |byteidx()| for
an alternative.
Index zero gives the first character. This is like it works in C. Careful:
text column numbers start with one! Example, to get the character under the
Index zero gives the first byte. This is like it works in C. Careful:
text column numbers start with one! Example, to get the byte under the
cursor: >
:let c = getline(".")[col(".") - 1]
@@ -5228,14 +5228,15 @@ search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
move. No error message is given.
{flags} is a String, which can contain these character flags:
'b' search backward instead of forward
'c' accept a match at the cursor position
'b' search Backward instead of forward
'c' accept a match at the Cursor position
'e' move to the End of the match
'n' do Not move the cursor
'p' return number of matching sub-pattern (see below)
's' set the ' mark at the previous location of the cursor
'w' wrap around the end of the file
'W' don't wrap around the end of the file
'p' return number of matching sub-Pattern (see below)
's' Set the ' mark at the previous location of the cursor
'w' Wrap around the end of the file
'W' don't Wrap around the end of the file
'z' start searching at the cursor column instead of zero
If neither 'w' or 'W' is given, the 'wrapscan' option applies.
If the 's' flag is supplied, the ' mark is set, only if the
@@ -5243,6 +5244,12 @@ search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
flag.
'ignorecase', 'smartcase' and 'magic' are used.
When the 'z' flag is not given seaching always starts in
column zero and then matches before the cursor are skipped.
When the 'c' flag is present in 'cpo' the next search starts
after the match. Without the 'c' flag the next search starts
one column further.
When the {stopline} argument is given then the search stops
after searching this line. This is useful to restrict the

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.4. Last change: 2015 Nov 28
*filetype.txt* For Vim version 7.4. Last change: 2015 Dec 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -581,6 +581,9 @@ q Same as ":quit"
To enable folding use this: >
let g:ft_man_folding_enable = 1
If you do not like the default folding, use an autocommand to add your desired
folding style instead. For example: >
autocmd FileType man setlocal foldmethod=indent foldenable
PDF *ft-pdf-plugin*

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.4. Last change: 2015 Mar 16
*pattern.txt* For Vim version 7.4. Last change: 2015 Dec 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -393,8 +393,8 @@ Use of "\M" makes the pattern after it be interpreted as if 'nomagic' is used.
Use of "\v" means that in the pattern after it all ASCII characters except
'0'-'9', 'a'-'z', 'A'-'Z' and '_' have a special meaning. "very magic"
Use of "\V" means that in the pattern after it only the backslash has a
special meaning. "very nomagic"
Use of "\V" means that in the pattern after it only the backslash and the
terminating character (/ or ?) has a special meaning. "very nomagic"
Examples:
after: \v \m \M \V matches ~
@@ -402,6 +402,7 @@ after: \v \m \M \V matches ~
$ $ $ \$ matches end-of-line
. . \. \. matches any character
* * \* \* any number of the previous atom
~ ~ \~ \~ latest substitute string
() \(\) \(\) \(\) grouping into an atom
| \| \| \| separating alternatives
\a \a \a \a alphabetic character
@@ -480,6 +481,7 @@ More explanation and examples below, follow the links.
|/\%v| \%23v \%23v in virtual column 23 |/zero-width|
Character classes {not in Vi}: */character-classes*
magic nomagic matches ~
|/\i| \i \i identifier character (see 'isident' option)
|/\I| \I \I like "\i", but excluding digits
|/\k| \k \k keyword character (see 'iskeyword' option)
@@ -510,6 +512,7 @@ Character classes {not in Vi}: */character-classes*
class with end-of-line included
(end of character classes)
magic nomagic matches ~
|/\e| \e \e <Esc>
|/\t| \t \t <Tab>
|/\r| \r \r <CR>
@@ -535,6 +538,7 @@ Character classes {not in Vi}: */character-classes*
|/\Z| \Z \Z ignore differences in Unicode "combining characters".
Useful when searching voweled Hebrew or Arabic text.
magic nomagic matches ~
|/\m| \m \m 'magic' on for the following chars in the pattern
|/\M| \M \M 'magic' off for the following chars in the pattern
|/\v| \v \v the following chars in the pattern are "very magic"

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2015 Nov 05
*syntax.txt* For Vim version 7.4. Last change: 2015 Dec 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1438,34 +1438,27 @@ form, then >
:let fortran_fixed_source=1
in your .vimrc prior to the :syntax on command.
If the form of the source code depends upon the file extension, then it is
most convenient to set fortran_free_source in a ftplugin file. For more
information on ftplugin files, see |ftplugin|. For example, if all your
fortran files with an .f90 extension are written in free source form and the
rest in fixed source form, add the following code to your ftplugin file >
let s:extfname = expand("%:e")
if s:extfname ==? "f90"
let fortran_free_source=1
unlet! fortran_fixed_source
else
let fortran_fixed_source=1
unlet! fortran_free_source
endif
Note that this will work only if the "filetype plugin indent on" command
precedes the "syntax on" command in your .vimrc file.
If the form of the source code depends, in a non-standard way, upon the file
extension, then it is most convenient to set fortran_free_source in a ftplugin
file. For more information on ftplugin files, see |ftplugin|. Note that this
will work only if the "filetype plugin indent on" command precedes the "syntax
on" command in your .vimrc file.
When you edit an existing fortran file, the syntax script will assume free
source form if the fortran_free_source variable has been set, and assumes
fixed source form if the fortran_fixed_source variable has been set. If
neither of these variables have been set, the syntax script attempts to
determine which source form has been used by examining the first five columns
of the first 250 lines of your file. If no signs of free source form are
detected, then the file is assumed to be in fixed source form. The algorithm
should work in the vast majority of cases. In some cases, such as a file that
begins with 250 or more full-line comments, the script may incorrectly decide
that the fortran code is in fixed form. If that happens, just add a
non-comment statement beginning anywhere in the first five columns of the
first twenty five lines, save (:w) and then reload (:e!) the file.
determine which source form has been used by examining the file extension
using conventions common to the ifort, gfortran, Cray, NAG, and PathScale
compilers (.f, .for, .f77 for fixed-source, .f90, .f95, .f03, .f08 for
free-source). If none of this works, then the script examines the first five
columns of the first 500 lines of your file. If no signs of free source form
are detected, then the file is assumed to be in fixed source form. The
algorithm should work in the vast majority of cases. In some cases, such as a
file that begins with 500 or more full-line comments, the script may
incorrectly decide that the fortran code is in fixed form. If that happens,
just add a non-comment statement beginning anywhere in the first five columns
of the first twenty five lines, save (:w) and then reload (:e!) the file.
Tabs in fortran files ~
Tabs are not recognized by the Fortran standards. Tabs are not a good idea in

View File

@@ -5060,6 +5060,7 @@ c_<Home> cmdline.txt /*c_<Home>*
c_<Insert> cmdline.txt /*c_<Insert>*
c_<Left> cmdline.txt /*c_<Left>*
c_<LeftMouse> cmdline.txt /*c_<LeftMouse>*
c_<MiddleMouse> cmdline.txt /*c_<MiddleMouse>*
c_<NL> cmdline.txt /*c_<NL>*
c_<PageDown> cmdline.txt /*c_<PageDown>*
c_<PageUp> cmdline.txt /*c_<PageUp>*

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2015 Dec 05
*todo.txt* For Vim version 7.4. Last change: 2015 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -74,18 +74,38 @@ Regexp problems:
out the \& works. Seems any column check after \& fails.
- The pattern "\1" with the old engine gives E65, with the new engine it
matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
- Search for \\~ causes error E874.
Poor mans runtime file updater:
- Generate a content file of all included runtime files:
$VIMRUNTIME/CONTENTS
With lines:
runtime/syntax/ada.vim hexchecksum hexchecksum-with-CR-LF
runtime/syntax/old.vim DELETED
- Use a command to trigger a script:
:RuntimeUpdate
Gets the new contents file from
https://raw.githubusercontent.com/vim/vim/master/runtime/CONTENTS
Goes over each line, compares the checksum and gets the file if it differs.
- Include a minimal required Vim version?
- For an installation, use "sudo" after getting all the files, only copy them.
need a temp directory tree.
- For Windows generate a .bat file with "runas" (see StackOverflow).
- Include a wget.exe or curl.exe in the distribution?
- Also update vim.exe and gvim.exe this way?
English spell file has an encoding error in the affix file.
(Dominique Pelle, 2015 Oct 15)
Perhaps use the files from here:
https://github.com/marcoagpinto/aoo-mozilla-en-dict
Patch to enable clipboard with MSYS2. (Ken Takata, 2015 Nov 26)
Hint for new URL: Christian Brabandt, 2015 Oct 15.
But that file looks old.
Still using freed memory after using setloclist(). (lcd, 2014 Jul 23)
More info Jul 24. Not clear why.
Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28)
work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
@@ -96,7 +116,12 @@ Should use /usr/local/share/applications or /usr/share/applications.
Or use $XDG_DATA_DIRS.
Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
test107 fails when run in the GUI on Linux.
Patch to test shadow. James McCoy, 2015 Dec 7, #520
Patch to support strawberry Perl. (Ken Takata, 2015 Dec 21)
Change the travis config to also run autoconf on the huge build.
(James McCoy, 2015 Dec 4)
Access to uninitialized memory in match_backref() regexp_nda.c:4882
(Dominique Pelle, 2015 Nov 6)
@@ -106,14 +131,16 @@ Patch to fix test_listchars for MingW. (Christian Brabandt, 2015 Nov 29)
Patch to not set the python home if $PYTHONHOME is set. (Kazuki Sakamoto,
2015 Nov 24)
Patch to add tests for what 7.3.192 fixed. (Elias Diem, 2015 Dec 22)
Patch to use local value of 'errorformat' in :cexpr. (Christian Brabandt,
2015 Oct 16) Only do this for :lexpr ?
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
directory exists. (Sergio Gallelli, 2013 Dec 29)
Patch to make fnamemodify() work better with Cygwin. (Wily Wampa, 2015 Nov 28,
issue 505)
Patch to make fnamemodify() work better with Cygwin. (Wily Wampa == Jacob
Niehus, 2015 Nov 28, issue 505)
Patch to fix mc_FullName() on root directory. (Milly, 2015 Nov 24, Issue 501)
@@ -123,18 +150,27 @@ Nov 26)
Test 17 does not clean up the directory it creates. (Michael Soyka, 2015 Nov
28)
English spell checking has an error. Updating doesn't work.
(Dominique Pelle, 2015 Oct 15)
Hint for new URL: Christian Brabandt, 2015 Oct 15.
But that file looks old.
Patch to add binary support for nrformat. (Jason Schulz, 2015 Dec 28)
Patch to make assert_false() error message look better. (Watiko, 2015 Dec 14)
Using ":windo" to set options in all windows has the side effect that it
changes the window layout and the current window. Make a variant that saves
and restores. Use in the matchparen plugin.
Perhaps we can use ":silent window"?
Perhaps we can use "window <restore> {cmd}"?
Patch to estimate available memory on MS-Windows. (Mike Williams, 2015 Dec 18)
Last version that day.
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
Patch for testing 'backspace'. Also changes behavior of ":set bs=0", do we
want that? (Hirohito Higashi, 2015 Dec 17)
New patch Dec 26.
Patch to adjust an Ex range only if it's about line numbers. (Christian
Brabandt, 2015 Dec 13)
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
Unexpected delay when using CTRL-O u. It's not timeoutlen.
@@ -153,8 +189,11 @@ github? This URL works:
Can src/GvimExt/Make_cyg.mak be removed?
Same for src/xxd/Make_cyg.mak
Patch to replace deprecated gdk_pixbuf_new_from_inline(). (Kazunobu Kuriyama,
2015 Nov 30, PR #507)
":q!" should reset modified flag for current buffer, if another buffer is
modified no need to abandon it again.
Patch from Yasuhiro Matsumoto, 2014 Nov 21.
Update from Hirohito Higashi, 2014 Nov 21.
With test, Nov 23. Update 2015 Dec 15.
Updated Fortran files. (Ajit Thakkar, 2015 Nov 30, second one)
@@ -181,14 +220,34 @@ specifically? First try with the parens, then without.
Patch to fix "." after CTRL-A in Visual block mode. (Ozaki Kiichi, 2015 Oct
24)
Half-finished patch to fix the Problem using cgn to change a search hit when
replacement includes hit. Reported by John Beckett, fix by Christian Brabandt,
2015 Dec 14, Update Dec 15.
Patch to fix pointer cast warning in VS2015. (Mike Williams, 2015 Dec 13)
Patch to make building GVimExt with VS2015. (Mike Williams, 2015 Dec 13)
Value returned by virtcol() changes depending on how lines wrap. This is
inconsistent with the documentation.
Patch to add perleval(). (Damien, 2015 Dec 8)
Can we cache the syntax attributes, so that updates for 'relativenumber' and
'cursorline'/'cursorcolumn' are a lot faster?
Patch to add window and tab arguments to getcwd(). (Thinca, 2015 Nov 15)
Patch to check PYTHONHOME first. #500
Patch to build with Python using MSYS2. (Yasuhiro Matsumoto, 2015 Nov 26)
Updated Nov 29.
Build with Python on Mac does not always use the right library.
(Kazunobu Kuriyama, 2015 Mar 28)
Patch to support Python 'None' value in pyeval(). (Damien, 2015 Nov 21)
Need a Vim equivalent of None and a way to test for it.
To support Thai (and other languages) word boundaries, include the ICU
library: http://userguide.icu-project.org/boundaryanalysis
@@ -224,11 +283,17 @@ effects for when set by the user, on init and when reset to default.
The argument for "-S" is not taken literally, the ":so" command expands
wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4)
Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct
30)
Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
Update Aug 14.
Crash in :cnext on MS-Windows. (Ben Fritz, 2015 Oct 27)
When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)
Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
26, update 2013 Dec 14, another 2014 Nov 22)
@@ -238,9 +303,6 @@ Sep 10)
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8.
Build with Python on Mac does not always use the right library.
(Kazunobu Kuriyama, 2015 Mar 28)
Example in editing.txt uses $HOME with the expectating that it ends in a
slash. For me it does, but perhaps not for everybody. Add a function that
inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12)
@@ -253,9 +315,6 @@ ml_updatechunk() is slow when retrying for another encoding. (John Little,
Patch to fix checking global option value when not using it.
(Arnaud Decara, 2015 Jul 23)
Patch to support Python 'None' value in pyeval(). (Damien, 2015 Nov 21)
Need a Vim equivalent of None and a way to test for it.
When 'showbreak' is set repeating a Visual operation counts the size of the
'showbreak' text as part of the operation. (Axel Bender, 2015 Jul 20)
@@ -345,12 +404,6 @@ Plugins need to make a lot of effort, lots of mappings, to know what happened
before pressing the key that triggers a plugin action. How about keeping the
last N pressed keys, so that they do not need to be mapped?
":q!" should reset modified flag for current buffer, if another buffer is
modified no need to abandon it again.
Patch from Yasuhiro Matsumoto, 2014 Nov 21.
Update from Hirohito Higashi, 2014 Nov 21.
With test, Nov 23.
Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4.
Is this a good solution?
@@ -518,9 +571,6 @@ Patch to skip sort if no line matches the expression.
Patch to add sortuniq(). (Cade Forester, 2014 Mar 19)
Or add uniq() instead? Patch by lcd47, but it has problems.
Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct
30)
Patch to support expression argument to sort() instead of a function name.
Yasuhiro Matsumoto, 2013 May 31.
Or should we add a more general mechanism, like a lambda() function?
@@ -1540,6 +1590,10 @@ Win32: A --remote command that has a directory name starting with a ( doesn't
work, the backslash is removed, assuming that it escapes the (. (Valery
Kondakoff, 2009 May 13)
Win32: Using "gvim --remote-tab-silent elŝuti.txt" doesn't work, the
multi-byte character isn't passed and edits elsuti.txt.
(Raúl Núñez de Arenas Coronado, 2015 Dec 18)
Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
2008 May 14)
Possibly related problem: Alexey Muranov, 2015 Apr 2

View File

@@ -1,4 +1,4 @@
*usr_03.txt* For Vim version 7.4. Last change: 2006 Jun 21
*usr_03.txt* For Vim version 7.4. Last change: 2015 Dec 12
VIM USER MANUAL - by Bram Moolenaar
@@ -57,8 +57,11 @@ paragraph, much faster than using "l". "b" does the same in the other
direction.
A word ends at a non-word character, such as a ".", "-" or ")". To change
what Vim considers to be a word, see the 'iskeyword' option.
It is also possible to move by white-space separated WORDs. This is not a
what Vim considers to be a word, see the 'iskeyword' option. If you try this
out in the help directly, 'iskeyword' needs to be reset for the examples to
work: >
:set iskeyword&
It is also possible to move by white-space separated WORDs. This is not a
word in the normal sense, that's why the uppercase is used. The commands for
moving by WORDs are also uppercase, as this figure shows:

View File

@@ -1,9 +1,9 @@
" Vim settings file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
" Version: 0.49
" Last Change: 2013 Oct. 01
" Version: 0.50
" Last Change: 2015 Nov. 30
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: Do :help fortran-plugin from Vim
" Usage: For instructions, do :help fortran-plugin from Vim
" Credits:
" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, Ben
" Fritz, and David Barnett.
@@ -20,7 +20,10 @@ set cpoptions&vim
let b:did_ftplugin = 1
" Determine whether this is a fixed or free format source file
" if this hasn't been done yet
" if this hasn't been done yet using the priority:
" buffer-local value
" > global value
" > file extension as in Intel ifort, gcc (gfortran), NAG, Pathscale, and Cray compilers
if !exists("b:fortran_fixed_source")
if exists("fortran_free_source")
" User guarantees free source form
@@ -28,13 +31,19 @@ if !exists("b:fortran_fixed_source")
elseif exists("fortran_fixed_source")
" User guarantees fixed source form
let b:fortran_fixed_source = 1
elseif expand("%:e") ==? "f\<90\|95\|03\|08\>"
" Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers
let b:fortran_fixed_source = 0
elseif expand("%:e") ==? "f\|f77\|for"
" Fixed-form file extension defaults
let b:fortran_fixed_source = 1
else
" Modern Fortran allows both fixed and free source form
" assume fixed source form unless signs of free source form
" are detected in the first five columns of the first s:lmax lines
" Modern fortran still allows both fixed and free source form
" Assume fixed source form unless signs of free source form
" are detected in the first five columns of the first s:lmax lines.
" Detection becomes more accurate and time-consuming if more lines
" are checked. Increase the limit below if you keep lots of comments at
" the very top of each file and you have a fast computer
" the very top of each file and you have a fast computer.
let s:lmax = 500
if ( s:lmax > line("$") )
let s:lmax = line("$")

View File

@@ -1,9 +1,9 @@
" Vim indent file
" Language: Fortran 2008 (and earlier versions: 2003, 95, 90, and 77)
" Version: 0.41
" Last Change: 2015 Jan. 15
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: 0.42
" Last Change: 2015 Nov. 30
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: Do :help fortran-indent from Vim
" Usage: For instructions, do :help fortran-indent from Vim
" Credits:
" Useful suggestions were made by: Albert Oliver Serra.
@@ -27,7 +27,10 @@ if exists("b:fortran_indent_more") || exists("g:fortran_indent_more")
endif
" Determine whether this is a fixed or free format source file
" if this hasn't been done yet
" if this hasn't been done yet using the priority:
" buffer-local value
" > global value
" > file extension as in Intel ifort, gcc (gfortran), NAG, Pathscale, and Cray compilers
if !exists("b:fortran_fixed_source")
if exists("fortran_free_source")
" User guarantees free source form
@@ -35,13 +38,19 @@ if !exists("b:fortran_fixed_source")
elseif exists("fortran_fixed_source")
" User guarantees fixed source form
let b:fortran_fixed_source = 1
elseif expand("%:e") ==? "f\<90\|95\|03\|08\>"
" Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers
let b:fortran_fixed_source = 0
elseif expand("%:e") ==? "f\|f77\|for"
" Fixed-form file extension defaults
let b:fortran_fixed_source = 1
else
" f90 and f95 allow both fixed and free source form
" assume fixed source form unless signs of free source form
" Modern fortran still allows both fixed and free source form
" Assume fixed source form unless signs of free source form
" are detected in the first five columns of the first s:lmax lines.
" Detection becomes more accurate and more time-consuming if more lines
" Detection becomes more accurate and time-consuming if more lines
" are checked. Increase the limit below if you keep lots of comments at
" the very top of each file and you have a fast computer
" the very top of each file and you have a fast computer.
let s:lmax = 500
if ( s:lmax > line("$") )
let s:lmax = line("$")

View File

@@ -3,7 +3,7 @@
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-07-28
" Latest Revision: 2015-12-15
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
@@ -12,6 +12,8 @@ if exists("b:did_indent")
endif
let b:did_indent = 1
let b:undo_indent = 'setlocal indentexpr< indentkeys< smartindent<'
setlocal indentexpr=GetShIndent()
setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,0=end,),0=;;,0=;&
setlocal indentkeys+=0=fin,0=fil,0=fip,0=fir,0=fix

View File

@@ -55,14 +55,19 @@ function! s:Highlight_Matching_Pair()
let before = 0
let text = getline(c_lnum)
let c = text[c_col - 1]
let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\)')
if empty(matches)
let [c_before, c] = ['', '']
else
let [c_before, c] = matches[1:2]
endif
let plist = split(&matchpairs, '.\zs[:,]')
let i = index(plist, c)
if i < 0
" not found, in Insert mode try character before the cursor
if c_col > 1 && (mode() == 'i' || mode() == 'R')
let before = 1
let c = text[c_col - 2]
let before = strlen(c_before)
let c = c_before
let i = index(plist, c)
endif
if i < 0

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,5 +1,5 @@
*** en_AU.orig.aff Fri Apr 15 13:20:36 2005
--- en_AU.aff Wed Jan 11 11:10:45 2006
*** en_AU.orig.aff 2010-05-15 13:03:47.000000000 +0200
--- en_AU.aff 2015-12-30 19:08:16.916527503 +0100
***************
*** 7,9 ****
SET ISO8859-1
@@ -16,7 +16,7 @@
! MIDWORD '
!
! RARE ?
! BAD !
! BAD %
!
! MAP 9
! MAP a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -2382,8 +2382,8 @@
!
! # a few more for consistency
! COMMON five six seven eight nine ten hundred thousand
*** en_AU.orig.dic Fri Apr 15 13:20:36 2005
--- en_AU.dic Wed Mar 8 13:14:30 2006
*** en_AU.orig.dic 2010-05-15 13:03:48.000000000 +0200
--- en_AU.dic 2015-12-30 19:07:42.620898655 +0100
***************
*** 1,2 ****
! 45654
@@ -2666,15 +2666,19 @@
--- 45578,45579 ----
***************
*** 45655 ****
--- 45646,45656 ----
--- 45646,45660 ----
zymurgy/S
+ nd
+ the the/!
+ and and/!
+ a a/!
+ a an/!
+ an a/!
+ an an/!
+ PayPal
+ Google
+ TCP\/IP
+ a a/%
+ a an/%
+ a the/%
+ an a/%
+ an an/%
+ an the/%
+ and and/%
+ the a/%
+ the an/%
+ the the/%

View File

@@ -1,28 +1,40 @@
*** en_CA.orig.aff Fri Apr 15 13:20:36 2005
--- en_CA.aff Wed Jan 11 22:03:23 2006
*** en_CA.orig.aff 2015-12-30 18:18:20.076952127 +0100
--- en_CA.aff 2015-12-30 18:32:50.395546116 +0100
***************
*** 3,4 ****
--- 3,141 ----
*** 2,7 ****
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
! ICONV 1
! ICONV '
NOSUGGEST !
+ FOL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ LOW <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ UPP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
# ordinal numbers
--- 2,146 ----
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
!
! # ICONV 1
! # ICONV '
!
NOSUGGEST !
+ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
+ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
+ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
+
+ MIDWORD '
+
+ RARE ?
+ BAD !
+ BAD %
+
+ MAP 9
+ MAP a<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP e<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP i<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP o<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP u<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP n<EFBFBD>
+ MAP c<EFBFBD>
+ MAP y<EFBFBD><EFBFBD>
+ MAP s<EFBFBD>
+ MAP aàáâãäå
+ MAP eèéêë
+ MAP iìíîï
+ MAP oòóôõö
+ MAP uùúûü
+ MAP nñ
+ MAP cç
+ MAP yÿý
+ MAP sß
+
+ # This comes from Aspell en_phonet.dat, version 1.1, 2000-01-07
+
@@ -33,8 +45,8 @@
+ SAL AH(AEIOUY)- H
+ SAL AR(AEIOUY)- R
+ SAL A(HR) _
+ SAL <EFBFBD>^ *
+ SAL <EFBFBD>^ *
+ SAL À^ *
+ SAL Å^ *
+ SAL BB- _
+ SAL B B
+ SAL CQ- _
@@ -48,7 +60,7 @@
+ SAL DG(EIY) K
+ SAL DD- _
+ SAL D T
+ SAL <EFBFBD>< E
+ SAL É< E
+ SAL EH(AEIOUY)-^ *H
+ SAL ER(AEIOUY)-^ *R
+ SAL E(HR)^ *
@@ -141,319 +153,29 @@
+ REPSAL ht @
+ REPSAL @ ht
+
PFX A Y 1
# ordinal numbers
***************
*** 30,33 ****
SFX N e ion e
! SFX N y ication y
! SFX N 0 en [^ey]
*** 16,18 ****
COMPOUNDRULE n*mp
! WORDCHARS 0123456789
--- 167,170 ----
SFX N e ion e
! SFX N y ication y
! SFX N 0 en [^ey]
--- 155,157 ----
COMPOUNDRULE n*mp
! # WORDCHARS 0123456789
*** en_CA.orig.dic 2015-12-30 18:20:47.803358258 +0100
--- en_CA.dic 2015-12-30 18:59:26.490267196 +0100
***************
*** 40,42 ****
SFX H y ieth y
! SFX H 0 th [^y]
--- 177,179 ----
SFX H y ieth y
! SFX H 0 th [^y]
***************
*** 47,49 ****
SFX G e ing e
! SFX G 0 ing [^e]
--- 184,186 ----
SFX G e ing e
! SFX G 0 ing [^e]
*** en_CA.orig.dic Sat Apr 16 14:40:06 2005
--- en_CA.dic Wed Mar 8 13:14:35 2006
***************
*** 46,48 ****
R/G
- S
easternmost
--- 46,47 ----
***************
*** 59,66 ****
a
! b/KGDT
Emmey/M
baggagemen
! c/EAS
antimalarial/S
- d/AMV
enveloper/M
--- 58,65 ----
a
! probing
! probed
Emmey/M
baggagemen
! recs
antimalarial/S
enveloper/M
***************
*** 68,98 ****
Balearic/M
! e/FDSM
! f/BVXT
Karamazov/M
! g/VXB
! h/VEMS
! i
Braille/DSGM
- j/FTV
transceiver/MS
! k/FGISE
promising/YU
! l/XTJGV
Emmet/M
! m/XG
! n/FKT
! o
xviii
fitting/PSY
! p/KRT
! q
! r/GVTJ
! s/FK
fatting
! t/BGXTJ
Franciska/M
oedipal
! u
! v/VTK
! w/JXTGV
youths
--- 67,94 ----
Balearic/M
! fens
Karamazov/M
! gens
Braille/DSGM
transceiver/MS
! inking
! disking
! conking
! inks
! disks
! conks
promising/YU
! lings
Emmet/M
! ming
! pron
xviii
fitting/PSY
! cons
fatting
! tings
Franciska/M
oedipal
! vive
! wens
! wings
youths
***************
*** 100,103 ****
x
! y/F
! z/JGT
crumby/RT
--- 96,98 ----
x
! zings
crumby/RT
***************
*** 714,715 ****
--- 709,711 ----
silty/RT
+ conj.
conjectural/Y
***************
*** 3145,3146 ****
--- 3141,3143 ----
semester/MS
+ etc.
etch/GZSRDJ
***************
*** 6190,6191 ****
--- 6187,6190 ----
Paula/M
+ coned
+ cone/MS
coneflower/M
***************
*** 7022,7024 ****
DA
- DB
DC
--- 7021,7022 ----
***************
*** 7395,7397 ****
rec
! red/YPS
Eamon/M
--- 7393,7395 ----
rec
! red/YPSM
Eamon/M
***************
*** 8388,8390 ****
slotting
- ON
OR
--- 8386,8387 ----
***************
*** 9125,9127 ****
perchance
- rte
hastiness/MS
--- 9122,9123 ----
***************
*** 10603,10604 ****
--- 10599,10603 ----
dB/M
+ dBi
+ dBm
+ dBd
Hewet/M
***************
*** 10615,10617 ****
Garold/M
- db
tollhouse/M
--- 10614,10615 ----
***************
*** 11017,11019 ****
hr
- ht
MCI/M
--- 11015,11016 ----
***************
*** 11609,11611 ****
demureness/SM
! nd/A
MIA
--- 11606,11608 ----
demureness/SM
! nd
MIA
***************
*** 13669,13671 ****
engross/LDRSG
! hobbit
certainty/MUS
--- 13666,13668 ----
engross/LDRSG
! hobbit/MS
certainty/MUS
***************
*** 14434,14435 ****
--- 14431,14433 ----
pompom/MS
+ pompon/M
Devland/M
***************
*** 19265,19267 ****
bloodstone/M
! cetera/S
storm/SGZRDM
--- 19263,19265 ----
bloodstone/M
! et cetera/S
storm/SGZRDM
***************
*** 20162,20164 ****
Hansel/M
! ring/GZJDRM
Hansen/M
--- 20160,20162 ----
Hansel/M
! ring/GZJDRMS
Hansen/M
***************
*** 26960,26965 ****
Wisenheimer/M
! disc/GDM
horticulturist/SM
isotropically
! dish/DG
disburser/M
--- 26958,26963 ----
Wisenheimer/M
! disc/GDMS
horticulturist/SM
isotropically
! dish/DGMS
disburser/M
***************
*** 28157,28158 ****
--- 28155,28157 ----
pneumonia/MS
+ pneumonic
Socratic/S
***************
*** 34999,35001 ****
claque/MS
- etc
Chad/M
--- 34998,34999 ----
***************
*** 36707,36708 ****
--- 36705,36707 ----
Moody/M
+ Moolenaar/M
Bresenham/M
***************
*** 40455,40457 ****
proneness/MS
! transl
Conchita/M
--- 40454,40456 ----
proneness/MS
! transl.
Conchita/M
***************
*** 50272,50273 ****
--- 50271,50273 ----
Dutch/M
+ Farsi
Sharon/M
***************
*** 52565,52567 ****
hatchery/MS
! vim/SM
compatriot/MS
--- 52565,52568 ----
hatchery/MS
! Vim/SM
! vim/?
compatriot/MS
***************
*** 53490,53491 ****
--- 53491,53493 ----
unsearchable
+ searchable
felicitous/IY
***************
*** 62341 ****
--- 62343,62354 ----
data/M
+ et al.
+ the the/!
+ and and/!
+ a a/!
+ a an/!
+ an a/!
+ an an/!
+ PayPal
+ Google
+ e.g.
+ TCP\/IP
*** 48930 ****
--- 48930,48940 ----
zymurgy/M
+ a a/%
+ a an/%
+ a the/%
+ an a/%
+ an an/%
+ an the/%
+ and and/%
+ the a/%
+ the an/%
+ the the/%

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
*** en_NZ.orig.aff Fri Apr 15 13:20:36 2005
--- en_NZ.aff Wed Jan 11 22:03:30 2006
*** en_NZ.orig.aff 2010-05-15 13:03:47.000000000 +0200
--- en_NZ.aff 2015-12-30 19:08:13.884560313 +0100
***************
*** 7,9 ****
SET ISO8859-1
@@ -16,7 +16,7 @@
! MIDWORD '
!
! RARE ?
! BAD !
! BAD %
!
! MAP 9
! MAP a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -2359,8 +2359,8 @@
! SFX 3 0 ist's [aeioubp]y
! SFX 3 o ist's o
! SFX 3 0 ist's [^eoy]
*** en_NZ.orig.dic Fri Apr 15 13:20:36 2005
--- en_NZ.dic Wed Mar 8 13:14:40 2006
*** en_NZ.orig.dic 2010-05-15 13:03:48.000000000 +0200
--- en_NZ.dic 2015-12-30 19:08:04.928657238 +0100
***************
*** 4,6 ****
2ZB
@@ -2680,16 +2680,20 @@
Burkina
! Faso/M
\ No newline at end of file
--- 47109,47120 ----
--- 47109,47124 ----
Burkina
! Faso/M
! nd
! the the/!
! and and/!
! a a/!
! a an/!
! an a/!
! an an/!
! PayPal
! Google
! TCP\/IP
! a a/%
! a an/%
! a the/%
! an a/%
! an an/%
! an the/%
! and and/%
! the a/%
! the an/%
! the the/%

View File

@@ -1,598 +1,177 @@
*** en_US.orig.aff Fri Apr 15 13:20:36 2005
--- en_US.aff Wed Jan 11 22:03:34 2006
*** en_US.orig.aff 2015-12-30 18:55:30.352821552 +0100
--- en_US.aff 2015-12-30 19:01:19.849041178 +0100
***************
*** 3,4 ****
--- 3,141 ----
*** 2,5 ****
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
! ICONV 1
! ICONV '
NOSUGGEST !
--- 2,144 ----
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
!
! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
!
! MIDWORD '
!
! RARE ?
! BAD %
!
! MAP 9
! MAP aàáâãäå
! MAP eèéêë
! MAP iìíîï
! MAP oòóôõö
! MAP uùúûü
! MAP nñ
! MAP cç
! MAP yÿý
! MAP sß
!
! # This comes from Aspell en_phonet.dat, version 1.1, 2000-01-07
!
! SAL AH(AEIOUY)-^ *H
! SAL AR(AEIOUY)-^ *R
! SAL A(HR)^ *
! SAL A^ *
! SAL AH(AEIOUY)- H
! SAL AR(AEIOUY)- R
! SAL A(HR) _
! SAL À^ *
! SAL Å^ *
! SAL BB- _
! SAL B B
! SAL CQ- _
! SAL CIA X
! SAL CH X
! SAL C(EIY)- S
! SAL CK K
! SAL COUGH^ KF
! SAL CC< C
! SAL C K
! SAL DG(EIY) K
! SAL DD- _
! SAL D T
! SAL É< E
! SAL EH(AEIOUY)-^ *H
! SAL ER(AEIOUY)-^ *R
! SAL E(HR)^ *
! SAL ENOUGH^$ *NF
! SAL E^ *
! SAL EH(AEIOUY)- H
! SAL ER(AEIOUY)- R
! SAL E(HR) _
! SAL FF- _
! SAL F F
! SAL GN^ N
! SAL GN$ N
! SAL GNS$ NS
! SAL GNED$ N
! SAL GH(AEIOUY)- K
! SAL GH _
! SAL GG9 K
! SAL G K
! SAL H H
! SAL IH(AEIOUY)-^ *H
! SAL IR(AEIOUY)-^ *R
! SAL I(HR)^ *
! SAL I^ *
! SAL ING6 N
! SAL IH(AEIOUY)- H
! SAL IR(AEIOUY)- R
! SAL I(HR) _
! SAL J K
! SAL KN^ N
! SAL KK- _
! SAL K K
! SAL LAUGH^ LF
! SAL LL- _
! SAL L L
! SAL MB$ M
! SAL MM M
! SAL M M
! SAL NN- _
! SAL N N
! SAL OH(AEIOUY)-^ *H
! SAL OR(AEIOUY)-^ *R
! SAL O(HR)^ *
! SAL O^ *
! SAL OH(AEIOUY)- H
! SAL OR(AEIOUY)- R
! SAL O(HR) _
! SAL PH F
! SAL PN^ N
! SAL PP- _
! SAL P P
! SAL Q K
! SAL RH^ R
! SAL ROUGH^ RF
! SAL RR- _
! SAL R R
! SAL SCH(EOU)- SK
! SAL SC(IEY)- S
! SAL SH X
! SAL SI(AO)- X
! SAL SS- _
! SAL S S
! SAL TI(AO)- X
! SAL TH @
! SAL TCH-- _
! SAL TOUGH^ TF
! SAL TT- _
! SAL T T
! SAL UH(AEIOUY)-^ *H
! SAL UR(AEIOUY)-^ *R
! SAL U(HR)^ *
! SAL U^ *
! SAL UH(AEIOUY)- H
! SAL UR(AEIOUY)- R
! SAL U(HR) _
! SAL V^ W
! SAL V F
! SAL WR^ R
! SAL WH^ W
! SAL W(AEIOU)- W
! SAL X^ S
! SAL X KS
! SAL Y(AEIOU)- Y
! SAL ZZ- _
! SAL Z S
!
! # When soundfolding "th" is turned into "@". When this is mistyped as "ht" it
! # soundfolds to "ht". This difference is too big, thus use REP items to lower
! # the score.
! REPSAL 2
! REPSAL ht @
! REPSAL @ ht
!
! # ICONV 1
! # ICONV '
!
NOSUGGEST !
***************
*** 16,18 ****
COMPOUNDRULE n*mp
! WORDCHARS 0123456789
+ FOL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ LOW <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ UPP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+
+ MIDWORD '
+
+ RARE ?
+ BAD !
+
+ MAP 9
+ MAP a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ MAP e<><65><EFBFBD><EFBFBD>
+ MAP i<><69><EFBFBD><EFBFBD>
+ MAP o<><6F><EFBFBD><EFBFBD><EFBFBD>
+ MAP u<><75><EFBFBD><EFBFBD>
+ MAP n<>
+ MAP c<>
+ MAP y<><79>
+ MAP s<>
+
+ # This comes from Aspell en_phonet.dat, version 1.1, 2000-01-07
+
+ SAL AH(AEIOUY)-^ *H
+ SAL AR(AEIOUY)-^ *R
+ SAL A(HR)^ *
+ SAL A^ *
+ SAL AH(AEIOUY)- H
+ SAL AR(AEIOUY)- R
+ SAL A(HR) _
+ SAL <20>^ *
+ SAL <20>^ *
+ SAL BB- _
+ SAL B B
+ SAL CQ- _
+ SAL CIA X
+ SAL CH X
+ SAL C(EIY)- S
+ SAL CK K
+ SAL COUGH^ KF
+ SAL CC< C
+ SAL C K
+ SAL DG(EIY) K
+ SAL DD- _
+ SAL D T
+ SAL <20>< E
+ SAL EH(AEIOUY)-^ *H
+ SAL ER(AEIOUY)-^ *R
+ SAL E(HR)^ *
+ SAL ENOUGH^$ *NF
+ SAL E^ *
+ SAL EH(AEIOUY)- H
+ SAL ER(AEIOUY)- R
+ SAL E(HR) _
+ SAL FF- _
+ SAL F F
+ SAL GN^ N
+ SAL GN$ N
+ SAL GNS$ NS
+ SAL GNED$ N
+ SAL GH(AEIOUY)- K
+ SAL GH _
+ SAL GG9 K
+ SAL G K
+ SAL H H
+ SAL IH(AEIOUY)-^ *H
+ SAL IR(AEIOUY)-^ *R
+ SAL I(HR)^ *
+ SAL I^ *
+ SAL ING6 N
+ SAL IH(AEIOUY)- H
+ SAL IR(AEIOUY)- R
+ SAL I(HR) _
+ SAL J K
+ SAL KN^ N
+ SAL KK- _
+ SAL K K
+ SAL LAUGH^ LF
+ SAL LL- _
+ SAL L L
+ SAL MB$ M
+ SAL MM M
+ SAL M M
+ SAL NN- _
+ SAL N N
+ SAL OH(AEIOUY)-^ *H
+ SAL OR(AEIOUY)-^ *R
+ SAL O(HR)^ *
+ SAL O^ *
+ SAL OH(AEIOUY)- H
+ SAL OR(AEIOUY)- R
+ SAL O(HR) _
+ SAL PH F
+ SAL PN^ N
+ SAL PP- _
+ SAL P P
+ SAL Q K
+ SAL RH^ R
+ SAL ROUGH^ RF
+ SAL RR- _
+ SAL R R
+ SAL SCH(EOU)- SK
+ SAL SC(IEY)- S
+ SAL SH X
+ SAL SI(AO)- X
+ SAL SS- _
+ SAL S S
+ SAL TI(AO)- X
+ SAL TH @
+ SAL TCH-- _
+ SAL TOUGH^ TF
+ SAL TT- _
+ SAL T T
+ SAL UH(AEIOUY)-^ *H
+ SAL UR(AEIOUY)-^ *R
+ SAL U(HR)^ *
+ SAL U^ *
+ SAL UH(AEIOUY)- H
+ SAL UR(AEIOUY)- R
+ SAL U(HR) _
+ SAL V^ W
+ SAL V F
+ SAL WR^ R
+ SAL WH^ W
+ SAL W(AEIOU)- W
+ SAL X^ S
+ SAL X KS
+ SAL Y(AEIOU)- Y
+ SAL ZZ- _
+ SAL Z S
+
+ # When soundfolding "th" is turned into "@". When this is mistyped as "ht" it
+ # soundfolds to "ht". This difference is too big, thus use REP items to lower
+ # the score.
+ REPSAL 2
+ REPSAL ht @
+ REPSAL @ ht
+
PFX A Y 1
***************
*** 30,33 ****
SFX N e ion e
! SFX N y ication y
! SFX N 0 en [^ey]
--- 167,170 ----
SFX N e ion e
! SFX N y ication y
! SFX N 0 en [^ey]
--- 155,157 ----
COMPOUNDRULE n*mp
! # WORDCHARS 0123456789
*** en_US.orig.dic 2015-12-30 18:55:58.928512408 +0100
--- en_US.dic 2015-12-30 18:58:56.026596695 +0100
***************
*** 40,42 ****
SFX H y ieth y
! SFX H 0 th [^y]
--- 177,179 ----
SFX H y ieth y
! SFX H 0 th [^y]
***************
*** 47,49 ****
SFX G e ing e
! SFX G 0 ing [^e]
--- 184,186 ----
SFX G e ing e
! SFX G 0 ing [^e]
***************
*** 99,101 ****
! REP 88
REP a ei
--- 236,238 ----
! REP 91
REP a ei
***************
*** 137,138 ****
--- 274,277 ----
REP uy i
+ REP y ie
+ REP ie y
REP i ee
***************
*** 174,175 ****
--- 313,315 ----
REP ew ue
+ REP uf ough
REP uff ough
***************
*** 188 ****
--- 328,332 ----
REP shun cion
+ REP an_a a
+ REP an_a an
+ REP a_an a
+ REP a_an an
*** en_US.orig.dic Fri Apr 15 13:20:36 2005
--- en_US.dic Wed Mar 8 13:14:43 2006
***************
*** 1,2 ****
! 62076
a
--- 1,2 ----
! 62078
a
***************
*** 5944,5946 ****
bk
! b/KGD
Bk/M
--- 5944,5947 ----
bk
! probing
! probed
Bk/M
***************
*** 9007,9009 ****
Cazzie/M
- c/B
CB
--- 9008,9009 ----
***************
*** 9233,9235 ****
cetacean/S
- cetera/S
Cetus/M
--- 9233,9234 ----
***************
*** 11575,11576 ****
--- 11574,11577 ----
conduit/MS
+ coned
+ cone/MS
coneflower/M
***************
*** 11712,11713 ****
--- 11713,11715 ----
coniferous
+ conj.
conjectural/Y
***************
*** 14038,14043 ****
dazzling/Y
- db
- DB
dbl
dB/M
DBMS
--- 14040,14046 ----
dazzling/Y
dbl
dB/M
+ dBi
+ dBm
+ dBd
DBMS
***************
*** 15464,15466 ****
dingbat/MS
! ding/GD
dinghy/SM
--- 15467,15469 ----
dingbat/MS
! ding/GDS
dinghy/SM
***************
*** 15690,15692 ****
dishevelment/MS
! dish/GD
dishonest
--- 15693,15695 ----
dishevelment/MS
! dish/GDMS
dishonest
***************
*** 15973,15975 ****
djellaba/S
- d/JGVX
Djibouti/M
--- 15976,15977 ----
***************
*** 16911,16912 ****
--- 16913,16915 ----
dusty/RPT
+ Farsi
Dutch/M
***************
*** 17357,17359 ****
EFL
- e/FMDS
Efrain/M
--- 17360,17361 ----
***************
*** 18780,18782 ****
estuary/SM
! et
ET
--- 18782,18785 ----
estuary/SM
! et cetera/S
! et al.
ET
***************
*** 18785,18787 ****
eta/SM
! etc
etcetera/SM
--- 18788,18790 ----
eta/SM
! etc.
etcetera/SM
***************
*** 20559,20561 ****
Fiori/M
- f/IRAC
firearm/SM
--- 20562,20563 ----
***************
*** 24402,24404 ****
guzzler/M
! g/VBX
Gwalior/M
--- 24404,24406 ----
guzzler/M
! gens
Gwalior/M
***************
*** 25473,25475 ****
hemp/MNS
- h/EMS
hemstitch/DSMG
--- 25475,25476 ----
***************
*** 25963,25965 ****
hobbing
! hobbit
hobbler/M
--- 25964,25966 ----
hobbing
! hobbit/MS
hobbler/M
***************
*** 26524,26526 ****
HST
- ht
HTML
--- 26525,26526 ----
***************
*** 26942,26944 ****
Hz
- i
I
--- 26942,26943 ----
***************
*** 29627,29629 ****
Jezebel/MS
- j/F
JFK/M
--- 29626,29627 ----
***************
*** 30578,30580 ****
keyword/SM
! k/FGEIS
kg
--- 30576,30583 ----
keyword/SM
! inking
! disking
! conking
! inks
! disks
! conks
kg
***************
*** 32694,32696 ****
Lizzy/M
! l/JGVXT
Ljubljana/M
--- 32697,32699 ----
Lizzy/M
! lings
Ljubljana/M
***************
*** 34456,34458 ****
mash/JGZMSRD
! m/ASK
masked/U
--- 34459,34462 ----
mash/JGZMSRD
! rems
! prom/S
masked/U
***************
*** 34746,34747 ****
--- 34750,34753 ----
Mb
+ Mbyte
+ Mbit
MB
***************
*** 36605,36606 ****
--- 36611,36613 ----
Moog
+ Moolenaar/M
moo/GSD
***************
*** 38871,38873 ****
NSF
- n/T
NT
--- 38878,38879 ----
***************
*** 39011,39013 ****
NZ
- o
O
--- 39017,39018 ----
***************
*** 39532,39534 ****
om/XN
- ON
onanism/M
--- 39537,39538 ----
***************
*** 42508,42510 ****
pinfeather/SM
! ping/GDRM
pinheaded/P
--- 42512,42514 ----
pinfeather/SM
! ping/GDRMS
pinheaded/P
***************
*** 42983,42984 ****
--- 42987,42989 ----
pneumonia/MS
+ pneumonic
PO
***************
*** 43216,43218 ****
pompom/SM
! pompon's
pomposity/MS
--- 43221,43223 ----
pompom/SM
! pompon/M
pomposity/MS
***************
*** 44940,44942 ****
PX
- p/XTGJ
Pygmalion/M
--- 44945,44946 ----
***************
*** 44983,44985 ****
pyx/MDSG
- q
Q
--- 44987,44988 ----
***************
*** 46507,46509 ****
Renault/MS
- rend
renderer/M
--- 46510,46511 ----
***************
*** 47258,47260 ****
ringer/M
! ring/GZJDRM
ringing/Y
--- 47260,47262 ----
ringer/M
! ring/GZJDRMS
ringing/Y
***************
*** 47857,47862 ****
rt
- rte
Rte
RTFM
- r/TGVJ
Rubaiyat/M
--- 47859,47862 ----
***************
*** 48085,48087 ****
Ryun/M
- S
SA
--- 48085,48086 ----
***************
*** 54450,54452 ****
swung
! s/XJBG
sybarite/MS
--- 54449,54451 ----
swung
! sings
sybarite/MS
***************
*** 56906,56908 ****
transit/SGVMD
! transl
translatability/M
--- 56905,56907 ----
transit/SGVMD
! transl.
translatability/M
***************
*** 57728,57730 ****
TX
! t/XTJBG
Tybalt/M
--- 57727,57729 ----
TX
! tings
Tybalt/M
***************
*** 57809,57811 ****
Tzeltal/M
- u
U
--- 57808,57809 ----
***************
*** 58494,58495 ****
--- 58492,58494 ----
unsearchable
+ searchable
unseasonal
***************
*** 59072,59074 ****
vast/PTSYR
! v/ASV
VAT
--- 59071,59073 ----
vast/PTSYR
! revs
VAT
***************
*** 59538,59540 ****
vi/MDR
! vim/MS
vinaigrette/MS
--- 59537,59540 ----
vi/MDR
! Vim/MS
! vim/?
vinaigrette/MS
***************
*** 61534,61536 ****
WWW
! w/XTJGV
WY
--- 61534,61537 ----
WWW
! wens
! wings
WY
***************
*** 61750,61752 ****
yew/SM
- y/F
Yggdrasil/M
--- 61751,61752 ----
***************
*** 62058,62060 ****
Zsigmondy/M
! z/TGJ
Zubenelgenubi/M
--- 62058,62060 ----
Zsigmondy/M
! zings
Zubenelgenubi/M
***************
*** 62077 ****
--- 62077,62092 ----
zymurgy/S
+ nd
+ the the/!
+ and and/!
+ a a/!
+ an an/!
+ a an/!
+ an a/!
+ the a/!
+ the an/!
+ a the/!
+ an the/!
+ PayPal
+ Google
+ e.g.
+ TCP\/IP
*** 48757 ****
--- 48757,48767 ----
zymurgy/M
+ a a/%
+ a an/%
+ a the/%
+ an a/%
+ an an/%
+ an the/%
+ and and/%
+ the a/%
+ the an/%
+ the the/%

View File

@@ -30,7 +30,7 @@ $SPELLDIR/en.ascii.spl : $FILES
:sys $VIM -u NONE -e -c "mkspell! -ascii $SPELLDIR/en
en_US en_AU en_CA en_GB en_NZ" -c q
../README_en.txt: README_en_US.txt README_en_AU.txt
../README_en.txt: README_en_US.txt README_en_AU.txt README_en_CA.txt README_en_GB.txt README_en_NZ.txt
:print en_US >!$target
:cat README_en_US.txt | :eval re.sub('\r', '', stdin) >>$target
:print =================================================== >>$target
@@ -48,6 +48,12 @@ $SPELLDIR/en.ascii.spl : $FILES
#
# Fetching the files from OpenOffice.org.
# THIS URL NO LONGER WORKS.
#
# Files for en_US, en_CA and en_GB obtaind from
# github.com/marcoagpinto/aoo-mozilla-en-dict
#
# NOTE: en_AU and en_NZ use older libraries.
#
OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
:attr {fetch = $OODIR/%file%} en_US.zip en_CA.zip en_NZ.zip
@@ -117,7 +123,7 @@ en_NZ.aff en_NZ.dic: {buildcheck=}
:sys patch <en_NZ.diff
# Generate diff files, so that others can get the OpenOffice files and apply
# Generate diff files, so that others can get the original files and apply
# the diffs to get the Vim versions.
diff:

View File

@@ -2,10 +2,10 @@
" Program: CMake - Cross-Platform Makefile Generator
" Module: $RCSfile: cmake-syntax.vim,v $
" Language: CMake
" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
" Former Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
" Last Change: 2015 Sep 29
" Last Change: 2015 Dec 17
" Version: $Revision: 1.10 $
"
" Licence: The CMake license applies to this file. See

View File

@@ -3,8 +3,8 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2015 Apr 30
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debchangelog.vim
" Last Change: 2015 Oct 24
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
" Standard syntax initialization
if version < 600
@@ -23,7 +23,7 @@ let binNMU='binary-only=yes'
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
exe 'syn match debchangelogFirstKV contained "; \('.urgency.'\|'.binNMU.'\)"'
exe 'syn match debchangelogOtherKV contained ", \('.urgency.'\|'.binNMU.'\)"'
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|lucid|precise|trusty|utopic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogVersion contained "(.\{-})"
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"

View File

@@ -3,8 +3,8 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2014 Oct 08
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
" Last Change: 2015 Oct 24
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim
" Standard syntax initialization
if version < 600

View File

@@ -2,8 +2,8 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2015 May 25
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debsources.vim
" Last Change: 2015 Oct 24
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
" Standard syntax initialization
if version < 600
@@ -27,7 +27,7 @@ let s:supported = [
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
\ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
\
\ 'precise', 'trusty', 'utopic', 'vivid', 'wily', 'devel'
\ 'precise', 'trusty', 'vivid', 'wily', 'xenial', 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
@@ -35,7 +35,8 @@ let s:unsupported = [
\
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
\ 'maverick', 'natty', 'oneiric', 'quantal', 'raring', 'saucy'
\ 'maverick', 'natty', 'oneiric', 'quantal', 'raring', 'saucy',
\ 'utopic'
\ ]
let &cpo=s:cpo

View File

@@ -1,12 +1,12 @@
" Vim syntax file
" Language: Fortran 2008 (and earlier versions: 2003, 95, 90, and 77)
" Version: 0.95
" Last Change: 2015 Jan. 15
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: 0.96
" Last Change: 2015 Nov. 30
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-syntax from Vim
" Credits:
" Version 0.1 was based on the fortran 77 syntax file by Mario Eusebio and
" Preben Guldberg. Useful suggestions were made by: Andrej Panjkov,
" Preben Guldberg. Useful suggestions and contributions were made by: Andrej Panjkov,
" Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
" Walter Dieudonn<6E>, Alexander Wagner, Roman Bertle, Charles Rendleman,
" Andrew Griffiths, Joe Krahn, Hendrik Merx, and Matt Thompson.
@@ -19,8 +19,8 @@ let s:cpo_save = &cpo
set cpo&vim
" Choose fortran_dialect using the priority:
" source file directive > buffer-local value > global value > default
" try using directive in first three lines of file
" source file directive > buffer-local value > global value > file extension
" first try using directive in first three lines of file
let b:fortran_retype = getline(1)." ".getline(2)." ".getline(3)
if b:fortran_retype =~? '\<fortran_dialect\s*=\s*F\>'
let b:fortran_dialect = "F"
@@ -51,6 +51,12 @@ if !exists("b:fortran_fixed_source")
elseif exists("fortran_fixed_source")
" User guarantees fixed source form for all fortran files
let b:fortran_fixed_source = 1
elseif expand("%:e") ==? "f\<90\|95\|03\|08\>"
" Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers
let b:fortran_fixed_source = 0
elseif expand("%:e") ==? "f\|f77\|for"
" Fixed-form file extension defaults
let b:fortran_fixed_source = 1
else
" Modern fortran still allows both free and fixed source form.
" Assume fixed source form unless signs of free source form
@@ -67,8 +73,8 @@ if !exists("b:fortran_fixed_source")
while s:ln <= s:lmax
let s:test = strpart(getline(s:ln),0,5)
if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t'
let b:fortran_fixed_source = 0
break
let b:fortran_fixed_source = 0
break
endif
let s:ln = s:ln + 1
endwhile

View File

@@ -1,8 +1,7 @@
" Vim syntax file
" Language: Objective-C
" Maintainer: Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com>
" Last Change: 2013 Jun 13
" Remark: Modern Objective-C Edition
" Maintainer: Kazunobu Kuriyama <kazunobu.kuriyama@gmail.com>
" Last Change: 2015 Dec 14
""" Preparation for loading ObjC stuff
if exists("b:current_syntax")
@@ -25,14 +24,14 @@ syn keyword objcUsefulTerm nil Nil NO YES
" Preprocessor Directives
syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match objcImported display contained "<[^>]*>"
syn match objcImported display contained "\(<\h[-a-zA-Z0-9_/]*\.h>\|<[a-z0-9]\+>\)"
syn match objcImport display "^\s*\(%:\|#\)\s*import\>\s*["<]" contains=objcImported
" ObjC Compiler Directives
syn match objcObjDef display /@interface\>\|@implementation\>\|@end\>\|@class\>/
syn match objcProtocol display /@protocol\>\|@optional\>\|@required\>/
syn match objcProperty display /@property\>\|@synthesize\>\|@dynamic\>/
syn match objcIvarScope display /@private\>\|@protected\>\|@public\>/
syn match objcIvarScope display /@private\>\|@protected\>\|@public\>\|@package\>/
syn match objcInternalRep display /@selector\>\|@encode\>/
syn match objcException display /@try\>\|@throw\>\|@catch\|@finally\>/
syn match objcThread display /@synchronized\>/
@@ -56,6 +55,17 @@ syn keyword objcTollFreeBridgeQualifier __bridge __bridge_retained __bridge_tran
" ObjC Type Qualifiers for Remote Messaging
syn match objcRemoteMessagingQualifier display contained /\((\s*oneway\s\+\|(\s*in\s\+\|(\s*out\s\+\|(\s*inout\s\+\|(\s*bycopy\s\+\(in\(out\)\?\|out\)\?\|(\s*byref\s\+\(in\(out\)\?\|out\)\?\)/hs=s+1
" ObjC Storage Classes
syn keyword objcStorageClass _Nullable _Nonnull _Null_unspecified
syn keyword objcStorageClass __nullable __nonnull __null_unspecified
syn keyword objcStorageClass nullable nonnull null_unspecified
" ObjC type specifier
syn keyword objcTypeSpecifier __kindof __covariant
" ObjC Type Infomation Parameters
syn keyword objcTypeInfoParams ObjectType KeyType
" shorthand
syn cluster objcTypeQualifier contains=objcBlocksQualifier,objcObjectLifetimeQualifier,objcTollFreeBridgeQualifier,objcRemoteMessagingQualifier
@@ -75,17 +85,24 @@ syn keyword objcDeclPropAccessorType readonly readwrite contained
syn keyword objcDeclPropAssignSemantics assign retain copy contained
syn keyword objcDeclPropAtomicity nonatomic contained
syn keyword objcDeclPropARC strong weak contained
syn region objcDeclProp display transparent keepend start=/@property\s*(/ end=/)/ contains=objcProperty,objcDeclPropAccessorName,objcDeclPropAccessorType,objcDeclPropAssignSemantics,objcDeclPropAtomicity,objcDeclPropARC
syn match objcDeclPropNullable /\((\|\s\)nullable\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained
syn match objcDeclPropNonnull /\((\|\s\)nonnull\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained
syn match objcDeclPropNullUnspecified /\((\|\s\)null_unspecified\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained
syn keyword objcDeclProcNullResettable null_resettable contained
syn region objcDeclProp display transparent keepend start=/@property\s*(/ end=/)/ contains=objcProperty,objcDeclPropAccessorName,objcDeclPropAccessorType,objcDeclPropAssignSemantics,objcDeclPropAtomicity,objcDeclPropARC,objcDeclPropNullable,objcDeclPropNonnull,objcDeclPropNullUnspecified,objcDeclProcNullResettable
" To distinguish colons in methods and dictionaries from those in C's labels.
syn match objcColon display /^\s*\h\w*\s*\:\(\s\|.\)/me=e-1,he=e-1
" To distinguish a protocol list from system header files
syn match objcProtocolList display /<\h\w*\(\s*,\s*\h\w*\)*>/ contains=objcPrincipalType,cType,Type
syn match objcProtocolList display /<\h\w*\(\s*,\s*\h\w*\)*>/ contains=objcPrincipalType,cType,Type,objcType,objcTypeInfoParams
" Type info for collection classes
syn match objcTypeInfo display /<\h\w*\s*<\(\h\w*\s*\**\|\h\w*\)>>/ contains=objcPrincipalType,cType,Type,objcType,objcTypeInfoParams
" shorthand
syn cluster objcCEntities contains=cType,cStructure,cStorageClass,cString,cCharacter,cSpecialCharacter,cNumbers,cConstant,cOperator,cComment,cCommentL,cStatement,cLabel,cConditional,cRepeat
syn cluster objcObjCEntities contains=objcHiddenArgument,objcPrincipalType,objcString,objcUsefulTerm,objcProtocol,objcInternalRep,objcException,objcThread,objcPool,objcModuleImport,@objcTypeQualifier,objcLiteralSyntaxNumber,objcLiteralSyntaxOp,objcLiteralSyntaxChar,objcLiteralSyntaxSpecialChar,objcProtocolList,objcColon,objcFastEnumKeyword,objcType,objcClass,objcMacro,objcEnum,objcEnumValue,objcExceptionValue,objcNotificationValue,objcConstVar,objcPreProcMacro
syn cluster objcObjCEntities contains=objcHiddenArgument,objcPrincipalType,objcString,objcUsefulTerm,objcProtocol,objcInternalRep,objcException,objcThread,objcPool,objcModuleImport,@objcTypeQualifier,objcLiteralSyntaxNumber,objcLiteralSyntaxOp,objcLiteralSyntaxChar,objcLiteralSyntaxSpecialChar,objcProtocolList,objcColon,objcFastEnumKeyword,objcType,objcClass,objcMacro,objcEnum,objcEnumValue,objcExceptionValue,objcNotificationValue,objcConstVar,objcPreProcMacro,objcTypeInfo
" Objective-C Message Expressions
syn region objcMethodCall start=/\[/ end=/\]/ contains=objcMethodCall,objcBlocks,@objcObjCEntities,@objcCEntities
@@ -114,13 +131,17 @@ syn keyword objcEnum NSSortOptions
syn keyword objcEnumValue NSSortConcurrent NSSortStable
syn keyword objcEnumValue NSNotFound
syn keyword objcMacro NSIntegerMax NSIntegerMin NSUIntegerMax
syn keyword objcMacro NS_INLINE NS_BLOCKS_AVAILABLE NS_NONATOMIC_IOSONLY NS_FORMAT_FUNCTION NS_FORMAT_ARGUMENT NS_RETURNS_RETAINED NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_AUTOMATED_REFCOUNT_UNAVAILABLE NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE NS_REQUIRES_PROPERTY_DEFINITIONS NS_REPLACES_RECEIVER NS_RELEASES_ARGUMENT NS_VALID_UNTIL_END_OF_SCOPE NS_ROOT_CLASS NS_REQUIRES_SUPER NS_PROTOCOL_REQUIRES_EXPLICIT_IMPLEMENTATION NS_DESIGNATED_INITIALIZER NS_REQUIRES_NIL_TERMINATION
syn keyword objcEnum NSQualityOfService
syn keyword objcEnumValue NSQualityOfServiceUserInteractive NSQualityOfServiceUserInitiated NSQualityOfServiceUtility NSQualityOfServiceBackground NSQualityOfServiceDefault
" NSRange.h
syn keyword objcType NSRange NSRangePointer
" NSGeometry.h
syn keyword objcType NSPoint NSPointPointer NSPointArray NSSize NSSizePointer NSSizeArray NSRect NSRectPointer NSRectArray
syn keyword objcType NSPoint NSPointPointer NSPointArray NSSize NSSizePointer NSSizeArray NSRect NSRectPointer NSRectArray NSEdgeInsets
syn keyword objcEnum NSRectEdge
syn keyword objcEnumValue NSMinXEdge NSMinYEdge NSMaxXEdge NSMaxYEdge
syn keyword objcConstVar NSZeroPoint NSZeroSize NSZeroRect
syn keyword objcEnumValue NSRectEdgeMinX NSRectEdgeMinY NSRectEdgeMaxX NSRectEdgeMaxY
syn keyword objcConstVar NSZeroPoint NSZeroSize NSZeroRect NSEdgeInsetsZero
syn keyword cType CGFloat CGPoint CGSize CGRect
syn keyword objcEnum NSAlignmentOptions
syn keyword objcEnumValue NSAlignMinXInward NSAlignMinYInward NSAlignMaxXInward NSAlignMaxYInward NSAlignWidthInward NSAlignHeightInward NSAlignMinXOutward NSAlignMinYOutward NSAlignMaxXOutward NSAlignMaxYOutward NSAlignWidthOutward NSAlignHeightOutward NSAlignMinXNearest NSAlignMinYNearest NSAlignMaxXNearest NSAlignMaxYNearest NSAlignWidthNearest NSAlignHeightNearest NSAlignRectFlipped NSAlignAllEdgesInward NSAlignAllEdgesOutward NSAlignAllEdgesNearest
@@ -130,6 +151,7 @@ syn keyword objcEnum NSRoundingMode
syn keyword objcEnumValue NSRoundPlain NSRoundDown NSRoundUp NSRoundBankers
syn keyword objcEnum NSCalculationError
syn keyword objcEnumValue NSCalculationNoError NSCalculationLossOfPrecision NSCalculationUnderflow NSCalculationOverflow NSCalculationDivideByZero
syn keyword objcConstVar NSDecimalMaxSize NSDecimalNoScale
" NSDate.h
syn match objcClass /NSDate\s*\*/me=s+6,he=s+6
syn keyword objcType NSTimeInterval
@@ -137,11 +159,13 @@ syn keyword objcNotificationValue NSSystemClockDidChangeNotification
syn keyword objcMacro NSTimeIntervalSince1970
" NSZone.h
syn match objcType /NSZone\s*\*/me=s+6,he=s+6
syn keyword objcEnumValue NSScannedOption NSCollectorDisabledOption
" NSError.h
syn match objcClass /NSError\s*\*/me=s+7,he=s+7
syn keyword objcConstVar NSCocoaErrorDomain NSPOSIXErrorDomain NSOSStatusErrorDomain NSMachErrorDomain NSUnderlyingErrorKey NSLocalizedDescriptionKey NSLocalizedFailureReasonErrorKey NSLocalizedRecoverySuggestionErrorKey NSLocalizedRecoveryOptionsErrorKey NSRecoveryAttempterErrorKey NSHelpAnchorErrorKey NSStringEncodingErrorKey NSURLErrorKey NSFilePathErrorKey
" NSException.h
syn match objcClass /NSException\s*\*/me=s+11,he=s+11
syn match objcClass /NSAssertionHandler\s*\*/me=s+18,he=s+18
syn keyword objcType NSUncaughtExceptionHandler
syn keyword objcConstVar NSGenericException NSRangeException NSInvalidArgumentException NSInternalInconsistencyException NSMallocException NSObjectInaccessibleException NSObjectNotAvailableException NSDestinationInvalidException NSPortTimeoutException NSInvalidSendPortException NSInvalidReceivePortException NSPortSendException NSPortReceiveException NSOldStyleException
" NSNotification.h
@@ -153,6 +177,8 @@ syn keyword objcConstVar NSLocalNotificationCenterType
syn keyword objcEnum NSNotificationSuspensionBehavior
syn keyword objcEnumValue NSNotificationSuspensionBehaviorDrop NSNotificationSuspensionBehaviorCoalesce NSNotificationSuspensionBehaviorHold NSNotificationSuspensionBehaviorHold NSNotificationSuspensionBehaviorDeliverImmediately
syn keyword objcEnumValue NSNotificationDeliverImmediately NSNotificationPostToAllSessions
syn keyword objcEnum NSDistributedNotificationOptions
syn keyword objcEnumValue NSDistributedNotificationDeliverImmediately NSDistributedNotificationPostToAllSessions
" NSNotificationQueue.h
syn match objcClass /NSNotificationQueue\s*\*/me=s+19,he=s+19
syn keyword objcEnum NSPostingStyle
@@ -161,11 +187,15 @@ syn keyword objcEnum NSNotificationCoalescing
syn keyword objcEnumValue NSNotificationNoCoalescing NSNotificationCoalescingOnName NSNotificationCoalescingOnSender
" NSEnumerator.h
syn match objcClass /NSEnumerator\s*\*/me=s+12,he=s+12
syn match objcClass /NSEnumerator<.*>\s*\*/me=s+12,he=s+12 contains=objcTypeInfoParams
syn keyword objcType NSFastEnumerationState
" NSIndexSet.h
syn match objcClass /NSIndexSet\s*\*/me=s+10,he=s+10
syn match objcClass /NSMutableIndexSet\s*\*/me=s+17,he=s+17
" NSCharecterSet.h
syn match objcClass /NSCharacterSet\s*\*/me=s+14,he=s+14
syn match objcClass /NSMutableCharacterSet\s*\*/me=s+21,he=s+21
syn keyword objcConstVar NSOpenStepUnicodeReservedBase
" NSURL.h
syn match objcClass /NSURL\s*\*/me=s+5,he=s+5
syn keyword objcEnum NSURLBookmarkCreationOptions
@@ -174,11 +204,11 @@ syn keyword objcEnum NSURLBookmarkResolutionOptions
syn keyword objcEnumValue NSURLBookmarkResolutionWithoutUI NSURLBookmarkResolutionWithoutMounting NSURLBookmarkResolutionWithSecurityScope
syn keyword objcType NSURLBookmarkFileCreationOptions
syn keyword objcConstVar NSURLFileScheme NSURLKeysOfUnsetValuesKey
syn keyword objcConstVar NSURLNameKey NSURLLocalizedNameKey NSURLIsRegularFileKey NSURLIsDirectoryKey NSURLIsSymbolicLinkKey NSURLIsVolumeKey NSURLIsPackageKey NSURLIsSystemImmutableKey NSURLIsUserImmutableKey NSURLIsHiddenKey NSURLHasHiddenExtensionKey NSURLCreationDateKey NSURLContentAccessDateKey NSURLContentModificationDateKey NSURLAttributeModificationDateKey NSURLLinkCountKey NSURLParentDirectoryURLKey NSURLVolumeURLKey NSURLTypeIdentifierKey NSURLLocalizedTypeDescriptionKey NSURLLabelNumberKey NSURLLabelColorKey NSURLLocalizedLabelKey NSURLEffectiveIconKey NSURLCustomIconKey NSURLFileResourceIdentifierKey NSURLVolumeIdentifierKey NSURLPreferredIOBlockSizeKey NSURLIsReadableKey NSURLIsWritableKey NSURLIsExecutableKey NSURLFileSecurityKey NSURLIsExcludedFromBackupKey NSURLPathKey NSURLIsMountTriggerKey NSURLFileResourceTypeKey
syn keyword objcConstVar NSURLFileResourceTypeNamedPipe NSURLFileResourceTypeCharacterSpecial NSURLFileResourceTypeDirectory NSURLFileResourceTypeBlockSpecial NSURLFileResourceTypeRegular NSURLFileResourceTypeSymbolicLink NSURLFileResourceTypeSocket NSURLFileResourceTypeUnknown
syn keyword objcConstVar NSURLFileSizeKey NSURLFileAllocatedSizeKey NSURLTotalFileSizeKey NSURLTotalFileAllocatedSizeKey NSURLIsAliasFileKey
syn keyword objcConstVar NSURLNameKey NSURLLocalizedNameKey NSURLIsRegularFileKey NSURLIsDirectoryKey NSURLIsSymbolicLinkKey NSURLIsVolumeKey NSURLIsPackageKey NSURLIsApplicationKey NSURLApplicationIsScriptableKey NSURLIsSystemImmutableKey NSURLIsUserImmutableKey NSURLIsHiddenKey NSURLHasHiddenExtensionKey NSURLCreationDateKey NSURLContentAccessDateKey NSURLContentModificationDateKey NSURLAttributeModificationDateKey NSURLLinkCountKey NSURLParentDirectoryURLKey NSURLVolumeURLKey NSURLTypeIdentifierKey NSURLLocalizedTypeDescriptionKey NSURLLabelNumberKey NSURLLabelColorKey NSURLLocalizedLabelKey NSURLEffectiveIconKey NSURLCustomIconKey NSURLFileResourceIdentifierKey NSURLVolumeIdentifierKey NSURLPreferredIOBlockSizeKey NSURLIsReadableKey NSURLIsWritableKey NSURLIsExecutableKey NSURLFileSecurityKey NSURLIsExcludedFromBackupKey NSURLTagNamesKey NSURLPathKey NSURLIsMountTriggerKey NSURLGenerationIdentifierKey NSURLDocumentIdentifierKey NSURLAddedToDirectoryDateKey NSURLQuarantinePropertiesKey NSURLFileResourceTypeKey
syn keyword objcConstVar NSURLFileResourceTypeNamedPipe NSURLFileResourceTypeCharacterSpecial NSURLFileResourceTypeDirectory NSURLFileResourceTypeBlockSpecial NSURLFileResourceTypeRegular NSURLFileResourceTypeSymbolicLink NSURLFileResourceTypeSocket NSURLFileResourceTypeUnknown NSURLThumbnailDictionaryKey NSURLThumbnailKey NSThumbnail1024x1024SizeKey
syn keyword objcConstVar NSURLFileSizeKey NSURLFileAllocatedSizeKey NSURLTotalFileSizeKey NSURLTotalFileAllocatedSizeKey NSURLIsAliasFileKey NSURLFileProtectionKey NSURLFileProtectionNone NSURLFileProtectionComplete NSURLFileProtectionCompleteUnlessOpen NSURLFileProtectionCompleteUntilFirstUserAuthentication
syn keyword objcConstVar NSURLVolumeLocalizedFormatDescriptionKey NSURLVolumeTotalCapacityKey NSURLVolumeAvailableCapacityKey NSURLVolumeResourceCountKey NSURLVolumeSupportsPersistentIDsKey NSURLVolumeSupportsSymbolicLinksKey NSURLVolumeSupportsHardLinksKey NSURLVolumeSupportsJournalingKey NSURLVolumeIsJournalingKey NSURLVolumeSupportsSparseFilesKey NSURLVolumeSupportsZeroRunsKey NSURLVolumeSupportsCaseSensitiveNamesKey NSURLVolumeSupportsCasePreservedNamesKey NSURLVolumeSupportsRootDirectoryDatesKey NSURLVolumeSupportsVolumeSizesKey NSURLVolumeSupportsRenamingKey NSURLVolumeSupportsAdvisoryFileLockingKey NSURLVolumeSupportsExtendedSecurityKey NSURLVolumeIsBrowsableKey NSURLVolumeMaximumFileSizeKey NSURLVolumeIsEjectableKey NSURLVolumeIsRemovableKey NSURLVolumeIsInternalKey NSURLVolumeIsAutomountedKey NSURLVolumeIsLocalKey NSURLVolumeIsReadOnlyKey NSURLVolumeCreationDateKey NSURLVolumeURLForRemountingKey NSURLVolumeUUIDStringKey NSURLVolumeNameKey NSURLVolumeLocalizedNameKey
syn keyword objcConstVar NSURLIsUbiquitousItemKey NSURLUbiquitousItemHasUnresolvedConflictsKey NSURLUbiquitousItemIsDownloadedKey NSURLUbiquitousItemIsDownloadingKey NSURLUbiquitousItemIsUploadedKey NSURLUbiquitousItemIsUploadingKey NSURLUbiquitousItemPercentDownloadedKey NSURLUbiquitousItemPercentUploadedKey
syn keyword objcConstVar NSURLIsUbiquitousItemKey NSURLUbiquitousItemHasUnresolvedConflictsKey NSURLUbiquitousItemIsDownloadedKey NSURLUbiquitousItemIsDownloadingKey NSURLUbiquitousItemIsUploadedKey NSURLUbiquitousItemIsUploadingKey NSURLUbiquitousItemPercentDownloadedKey NSURLUbiquitousItemPercentUploadedKey NSURLUbiquitousItemDownloadingStatusKey NSURLUbiquitousItemDownloadingErrorKey NSURLUbiquitousItemUploadingErrorKey NSURLUbiquitousItemDownloadRequestedKey NSURLUbiquitousItemContainerDisplayNameKey NSURLUbiquitousItemDownloadingStatusNotDownloaded NSURLUbiquitousItemDownloadingStatusDownloaded NSURLUbiquitousItemDownloadingStatusCurrent
""""""""""""
" NSString.h
syn match objcClass /NSString\s*\*/me=s+8,he=s+8
@@ -189,11 +219,14 @@ syn keyword objcMacro NSMaximumStringLength
syn keyword objcEnum NSStringCompareOptions
syn keyword objcEnumValue NSCaseInsensitiveSearch NSLiteralSearch NSBackwardsSearch NSAnchoredSearch NSNumericSearch NSDiacriticInsensitiveSearch NSWidthInsensitiveSearch NSForcedOrderingSearch NSRegularExpressionSearch
syn keyword objcEnum NSStringEncoding
syn keyword objcEnumValue NSProprietaryStringEncoding
syn keyword objcEnumValue NSASCIIStringEncoding NSNEXTSTEPStringEncoding NSJapaneseEUCStringEncoding NSUTF8StringEncoding NSISOLatin1StringEncoding NSSymbolStringEncoding NSNonLossyASCIIStringEncoding NSShiftJISStringEncoding NSISOLatin2StringEncoding NSUnicodeStringEncoding NSWindowsCP1251StringEncoding NSWindowsCP1252StringEncoding NSWindowsCP1253StringEncoding NSWindowsCP1254StringEncoding NSWindowsCP1250StringEncoding NSISO2022JPStringEncoding NSMacOSRomanStringEncoding NSUTF16StringEncoding NSUTF16BigEndianStringEncoding NSUTF16LittleEndianStringEncoding NSUTF32StringEncoding NSUTF32BigEndianStringEncoding NSUTF32LittleEndianStringEncoding
syn keyword objcEnum NSStringEncodingConversionOptions
syn keyword objcEnumValue NSStringEncodingConversionAllowLossy NSStringEncodingConversionExternalRepresentation
syn keyword objcEnum NSStringEnumerationOptions
syn keyword objcEnumValue NSStringEnumerationByLines NSStringEnumerationByParagraphs NSStringEnumerationByComposedCharacterSequences NSStringEnumerationByWords NSStringEnumerationBySentences NSStringEnumerationReverse NSStringEnumerationSubstringNotRequired NSStringEnumerationLocalized
syn keyword objcConstVar NSStringTransformLatinToKatakana NSStringTransformLatinToHiragana NSStringTransformLatinToHangul NSStringTransformLatinToArabic NSStringTransformLatinToHebrew NSStringTransformLatinToThai NSStringTransformLatinToCyrillic NSStringTransformLatinToGreek NSStringTransformToLatin NSStringTransformMandarinToLatin NSStringTransformHiraganaToKatakana NSStringTransformFullwidthToHalfwidth NSStringTransformToXMLHex NSStringTransformToUnicodeName NSStringTransformStripCombiningMarks NSStringTransformStripDiacritics
syn keyword objcConstVar NSStringEncodingDetectionSuggestedEncodingsKey NSStringEncodingDetectionDisallowedEncodingsKey NSStringEncodingDetectionUseOnlySuggestedEncodingsKey NSStringEncodingDetectionAllowLossyKey NSStringEncodingDetectionFromWindowsKey NSStringEncodingDetectionLossySubstitutionKey NSStringEncodingDetectionLikelyLanguageKey
" NSAttributedString.h
syn match objcClass /NSAttributedString\s*\*/me=s+18,he=s+18
syn match objcClass /NSMutableAttributedString\s*\*/me=s+25,he=s+25
@@ -215,21 +248,32 @@ syn keyword objcEnum NSDataWritingOptions
syn keyword objcEnumValue NSDataWritingAtomic NSDataWritingWithoutOverwriting NSDataWritingFileProtectionNone NSDataWritingFileProtectionComplete NSDataWritingFileProtectionCompleteUnlessOpen NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication NSDataWritingFileProtectionMask NSAtomicWrite
syn keyword objcEnum NSDataSearchOptions
syn keyword objcEnumValue NSDataSearchBackwards NSDataSearchAnchored
syn keyword objcEnum NSDataBase64EncodingOptions NSDataBase64DecodingOptions
syn keyword objcEnumValue NSDataBase64Encoding64CharacterLineLength NSDataBase64Encoding76CharacterLineLength NSDataBase64EncodingEndLineWithCarriageReturn NSDataBase64EncodingEndLineWithLineFeed NSDataBase64DecodingIgnoreUnknownCharacters
" NSArray.h
syn match objcClass /NSArray\s*\*/me=s+7,he=s+7
syn match objcClass /NSArray<.*>\s*\*/me=s+7,he=s+7 contains=objcTypeInfoParams
syn match objcClass /NSMutableArray\s*\*/me=s+14,he=s+14
syn match objcClass /NSMutableArray<.*>\s*\*/me=s+14,he=s+14 contains=objcTypeInfoParams
syn keyword objcEnum NSBinarySearchingOptions
syn keyword objcEnumValue NSBinarySearchingFirstEqual NSBinarySearchingLastEqual NSBinarySearchingInsertionIndex
" NSDictionary.h
syn match objcClass /NSDictionary\s*\*/me=s+12,he=s+12
syn match objcClass /NSDictionary<.*>\s*\*/me=s+12,he=s+12 contains=objcTypeInfoParams
syn match objcClass /NSMutableDictionary\s*\*/me=s+19,he=s+19
syn match objcClass /NSMutableDictionary<.*>\s*\*/me=s+19,he=s+19 contains=objcTypeInfoParams
" NSSet.h
syn match objcClass /NSSet\s*\*/me=s+5,me=s+5
syn match objcClass /NSSet<.*>\s*\*/me=s+5,me=s+5 contains=objcTypeInfoParams
syn match objcClass /NSMutableSet\s*\*/me=s+12,me=s+12
syn match objcClass /NSMutableSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams
syn match objcClass /NSCountedSet\s*\*/me=s+12,me=s+12
syn match objcClass /NSCountedSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams
" NSOrderedSet.h
syn match objcClass /NSOrderedSet\s*\*/me=s+12,me=s+12
syn match objcClass /NSOrderedSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams
syn match objcClass /NSMutableOrderedSet\s*\*/me=s+19,me=s+19
syn match objcClass /NSMutableOrderedSet<.*>\s*\*/me=s+19,me=s+19
"""""""""""""""""""
" NSPathUtilities.h
syn keyword objcEnum NSSearchPathDirectory
@@ -238,9 +282,15 @@ syn keyword objcEnum NSSearchPathDomainMask
syn keyword objcEnumValue NSUserDomainMask NSLocalDomainMask NSNetworkDomainMask NSSystemDomainMask NSAllDomainsMask
" NSFileManger.h
syn match objcClass /NSFileManager\s*\*/me=s+13,he=s+13
syn match objcClass /NSDirectoryEnumerator\s*\*/me=s+21,he=s+21
syn match objcClass /NSDirectoryEnumerator\s*\*/me=s+21,he=s+21 contains=objcTypeInfoParams
syn match objcClass /NSDirectoryEnumerator<.*>\s*\*/me=s+21,he=s+21
syn keyword objcEnum NSVolumeEnumerationOptions
syn keyword objcEnumValue NSVolumeEnumerationSkipHiddenVolumes NSVolumeEnumerationProduceFileReferenceURLs
syn keyword objcEnum NSURLRelationship
syn keyword objcEnumValue NSURLRelationshipContains NSURLRelationshipSame NSURLRelationshipOther
syn keyword objcEnum NSFileManagerUnmountOptions
syn keyword objcEnumValue NSFileManagerUnmountAllPartitionsAndEjectDisk NSFileManagerUnmountWithoutUI
syn keyword objcConstVar NSFileManagerUnmountDissentingProcessIdentifierErrorKey
syn keyword objcEnum NSDirectoryEnumerationOptions
syn keyword objcEnumValue NSDirectoryEnumerationSkipsSubdirectoryDescendants NSDirectoryEnumerationSkipsPackageDescendants NSDirectoryEnumerationSkipsHiddenFiles
syn keyword objcEnum NSFileManagerItemReplacementOptions
@@ -261,10 +311,12 @@ syn keyword objcNotificationValue NSCurrentLocaleDidChangeNotification
syn keyword objcConstVar NSLocaleIdentifier NSLocaleLanguageCode NSLocaleCountryCode NSLocaleScriptCode NSLocaleVariantCode NSLocaleExemplarCharacterSet NSLocaleCalendar NSLocaleCollationIdentifier NSLocaleUsesMetricSystem NSLocaleMeasurementSystem NSLocaleDecimalSeparator NSLocaleGroupingSeparator NSLocaleCurrencySymbol NSLocaleCurrencyCode NSLocaleCollatorIdentifier NSLocaleQuotationBeginDelimiterKey NSLocaleQuotationEndDelimiterKey NSLocaleAlternateQuotationBeginDelimiterKey NSLocaleAlternateQuotationEndDelimiterKey NSGregorianCalendar NSBuddhistCalendar NSChineseCalendar NSHebrewCalendar NSIslamicCalendar NSIslamicCivilCalendar NSJapaneseCalendar NSRepublicOfChinaCalendar NSPersianCalendar NSIndianCalendar NSISO8601Calendar
" NSFormatter.h
syn match objcClass /NSFormatter\s*\*/me=s+11,he=s+11
syn keyword objcEnum NSFormattingContext NSFormattingUnitStyle
syn keyword objcEnumValue NSFormattingContextUnknown NSFormattingContextDynamic NSFormattingContextStandalone NSFormattingContextListItem NSFormattingContextBeginningOfSentence NSFormattingContextMiddleOfSentence NSFormattingUnitStyleShort NSFormattingUnitStyleMedium NSFormattingUnitStyleLong
" NSNumberFormatter.h
syn match objcClass /NSNumberFormatter\s*\*/me=s+17,he=s+17
syn keyword objcEnum NSNumberFormatterStyle
syn keyword objcEnumValue NSNumberFormatterNoStyle NSNumberFormatterDecimalStyle NSNumberFormatterCurrencyStyle NSNumberFormatterPercentStyle NSNumberFormatterScientificStyle NSNumberFormatterSpellOutStyle
syn keyword objcEnumValue NSNumberFormatterNoStyle NSNumberFormatterDecimalStyle NSNumberFormatterCurrencyStyle NSNumberFormatterPercentStyle NSNumberFormatterScientificStyle NSNumberFormatterSpellOutStyle NSNumberFormatterOrdinalStyle NSNumberFormatterCurrencyISOCodeStyle NSNumberFormatterCurrencyPluralStyle NSNumberFormatterCurrencyAccountingStyle
syn keyword objcEnum NSNumberFormatterBehavior
syn keyword objcEnumValue NSNumberFormatterBehaviorDefault NSNumberFormatterBehavior10_0 NSNumberFormatterBehavior10_4
syn keyword objcEnum NSNumberFormatterPadPosition
@@ -279,10 +331,15 @@ syn keyword objcEnum NSDateFormatterBehavior
syn keyword objcEnumValue NSDateFormatterBehaviorDefault NSDateFormatterBehavior10_0 NSDateFormatterBehavior10_4
" NSCalendar.h
syn match objcClass /NSCalendar\s*\*/me=s+10,he=s+10
syn keyword objcConstVar NSCalendarIdentifierGregorian NSCalendarIdentifierBuddhist NSCalendarIdentifierChinese NSCalendarIdentifierCoptic NSCalendarIdentifierEthiopicAmeteMihret NSCalendarIdentifierEthiopicAmeteAlem NSCalendarIdentifierHebrew NSCalendarIdentifierISO8601 NSCalendarIdentifierIndian NSCalendarIdentifierIslamic NSCalendarIdentifierIslamicCivil NSCalendarIdentifierJapanese NSCalendarIdentifierPersian NSCalendarIdentifierRepublicOfChina NSCalendarIdentifierIslamicTabular NSCalendarIdentifierIslamicUmmAlQura
syn keyword objcEnum NSCalendarUnit
syn keyword objcEnumValue NSCalendarUnitEra NSCalendarUnitYear NSCalendarUnitMonth NSCalendarUnitDay NSCalendarUnitHour NSCalendarUnitMinute NSCalendarUnitSecond NSCalendarUnitWeekday NSCalendarUnitWeekdayOrdinal NSCalendarUnitQuarter NSCalendarUnitWeekOfMonth NSCalendarUnitWeekOfYear NSCalendarUnitYearForWeekOfYear NSCalendarUnitNanosecond NSCalendarUnitCalendar NSCalendarUnitTimeZone
syn keyword objcEnumValue NSEraCalendarUnit NSYearCalendarUnit NSMonthCalendarUnit NSDayCalendarUnit NSHourCalendarUnit NSMinuteCalendarUnit NSSecondCalendarUnit NSWeekCalendarUnit NSWeekdayCalendarUnit NSWeekdayOrdinalCalendarUnit NSQuarterCalendarUnit NSWeekOfMonthCalendarUnit NSWeekOfYearCalendarUnit NSYearForWeekOfYearCalendarUnit NSCalendarCalendarUnit NSTimeZoneCalendarUnit
syn keyword objcEnumValue NSWrapCalendarComponents NSUndefinedDateComponent
syn keyword objcEnumValue NSWrapCalendarComponents NSUndefinedDateComponent NSDateComponentUndefined
syn match objcClass /NSDateComponents\s*\*/me=s+16,he=s+16
syn keyword objcEnum NSCalendarOptions
syn keyword objcEnumValue NSCalendarWrapComponents NSCalendarMatchStrictly NSCalendarSearchBackwards NSCalendarMatchPreviousTimePreservingSmallerUnits NSCalendarMatchNextTimePreservingSmallerUnits NSCalendarMatchNextTime NSCalendarMatchFirst NSCalendarMatchLast
syn keyword objcConstVar NSCalendarDayChangedNotification
" NSTimeZone.h
syn match objcClass /NSTimeZone\s*\*/me=s+10,he=s+10
syn keyword objcEnum NSTimeZoneNameStyle
@@ -299,6 +356,7 @@ syn keyword objcExceptionValue NSInconsistentArchiveException
syn match objcClass /NSKeyedArchiver\s*\*/me=s+15,he=s+15
syn match objcClass /NSKeyedUnarchiver\s*\*/me=s+17,he=s+17
syn keyword objcExceptionValue NSInvalidArchiveOperationException NSInvalidUnarchiveOperationException
syn keyword objcConstVar NSKeyedArchiveRootObjectKey
""""""""""""""""""
" NSPropertyList.h
syn keyword objcEnum NSPropertyListMutabilityOptions
@@ -313,11 +371,16 @@ syn keyword objcNotificationValue NSUserDefaultsDidChangeNotification
" NSBundle.h
syn match objcClass /NSBundle\s*\*/me=s+8,he=s+8
syn keyword objcEnumValue NSBundleExecutableArchitectureI386 NSBundleExecutableArchitecturePPC NSBundleExecutableArchitectureX86_64 NSBundleExecutableArchitecturePPC64
syn keyword objcNotificationValue NSBundleDidLoadNotification NSLoadedClasses
syn keyword objcNotificationValue NSBundleDidLoadNotification NSLoadedClasses NSBundleResourceRequestLowDiskSpaceNotification
syn keyword objcConstVar NSBundleResourceRequestLoadingPriorityUrgent
"""""""""""""""""
" NSProcessInfo.h
syn match objcClass /NSProcessInfo\s*\*/me=s+13,he=s+13
syn keyword objcEnumValue NSWindowsNTOperatingSystem NSWindows95OperatingSystem NSSolarisOperatingSystem NSHPUXOperatingSystem NSMACHOperatingSystem NSSunOSOperatingSystem NSOSF1OperatingSystem
syn keyword objcType NSOperatingSystemVersion
syn keyword objcEnum NSActivityOptions NSProcessInfoThermalState
syn keyword objcEnumValue NSActivityIdleDisplaySleepDisabled NSActivityIdleSystemSleepDisabled NSActivitySuddenTerminationDisabled NSActivityAutomaticTerminationDisabled NSActivityUserInitiated NSActivityUserInitiatedAllowingIdleSystemSleep NSActivityBackground NSActivityLatencyCritical NSProcessInfoThermalStateNominal NSProcessInfoThermalStateFair NSProcessInfoThermalStateSerious NSProcessInfoThermalStateCritical
syn keyword objcNotificationValue NSProcessInfoThermalStateDidChangeNotification NSProcessInfoPowerStateDidChangeNotification
" NSTask.h
syn match objcClass /NSTask\s*\*/me=s+6,he=s+6
syn keyword objcEnum NSTaskTerminationReason
@@ -352,6 +415,7 @@ syn match objcClass /NSPort\s*\*/me=s+6,he=s+6
syn keyword objcType NSSocketNativeHandle
syn keyword objcNotificationValue NSPortDidBecomeInvalidNotification
syn match objcClass /NSMachPort\s*\*/me=s+10,he=s+10
syn keyword objcEnum NSMachPortOptions
syn keyword objcEnumValue NSMachPortDeallocateNone NSMachPortDeallocateSendRight NSMachPortDeallocateReceiveRight
syn match objcClass /NSMessagePort\s*\*/me=s+13,he=s+13
syn match objcClass /NSSocketPort\s*\*/me=s+12,he=s+12
@@ -386,6 +450,31 @@ syn match objcClass /NSProxy\s*\*/me=s+7,he=s+7
" NSObject.h
syn match objcClass /NSObject\s*\*/me=s+8,he=s+8
" NSCache.h
syn match objcClass /NSCache\s*\*/me=s+7,he=s+7
syn match objcClass /NSCache<.*>\s*\*/me=s+7,he=s+7 contains=objcTypeInfoParams
" NSHashTable.h
syn match objcClass /NSHashTable\s*\*/me=s+11,he=s+11
syn match objcClass /NSHashTable<.*>\s*\*/me=s+11,he=s+11 contains=objcTypeInfoParams
syn keyword objcConstVar NSHashTableStrongMemory NSHashTableZeroingWeakMemory NSHashTableCopyIn NSHashTableObjectPointerPersonality NSHashTableWeakMemory
syn keyword objcType NSHashTableOptions NSHashEnumerator NSHashTableCallBacks
syn keyword objcConstVar NSIntegerHashCallBacks NSNonOwnedPointerHashCallBacks NSNonRetainedObjectHashCallBacks NSObjectHashCallBacks NSOwnedObjectIdentityHashCallBacks NSOwnedPointerHashCallBacks NSPointerToStructHashCallBacks NSOwnedObjectIdentityHashCallBacks NSOwnedObjectIdentityHashCallBacks NSIntHashCallBacks
" NSMapTable.h
syn match objcClass /NSMapTable\s*\*/me=s+10,he=s+10
syn match objcClass /NSMapTable<.*>\s*\*/me=s+10,he=s+10 contains=objcTypeInfoParams
syn keyword objcConstVar NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks
syn keyword objcConstVar NSMapTableStrongMemory NSMapTableZeroingWeakMemory NSMapTableCopyIn NSMapTableObjectPointerPersonality NSMapTableWeakMemory
syn keyword objcType NSMapTableOptions NSMapEnumerator NSMapTableKeyCallBacks NSMapTableValueCallBacks
syn keyword objcMacro NSNotAnIntMapKey NSNotAnIntegerMapKey NSNotAPointerMapKey
syn keyword objcConstVar NSIntegerMapKeyCallBacks NSNonOwnedPointerMapKeyCallBacks NSNonOwnedPointerOrNullMapKeyCallBacks NSNonRetainedObjectMapKeyCallBacks NSObjectMapKeyCallBacks NSOwnedPointerMapKeyCallBacks NSIntMapKeyCallBacks NSIntegerMapValueCallBacks NSNonOwnedPointerMapValueCallBacks NSObjectMapValueCallBacks NSNonRetainedObjectMapValueCallBacks NSOwnedPointerMapValueCallBacks NSIntMapValueCallBacks
" NSPointerFunctions.h
syn match objcClass /NSPointerFunctions\s*\*/me=s+18,he=s+18
syn keyword objcEnum NSPointerFunctionsOptions
syn keyword objcEnumValue NSPointerFunctionsStrongMemory NSPointerFunctionsZeroingWeakMemory NSPointerFunctionsOpaqueMemory NSPointerFunctionsMallocMemory NSPointerFunctionsMachVirtualMemory NSPointerFunctionsWeakMemory NSPointerFunctionsObjectPersonality NSPointerFunctionsOpaquePersonality NSPointerFunctionsObjectPointerPersonality NSPointerFunctionsCStringPersonality NSPointerFunctionsStructPersonality NSPointerFunctionsIntegerPersonality NSPointerFunctionsCopyIn
""" Default Highlighting
hi def link objcPreProcMacro cConstant
hi def link objcPrincipalType cType
@@ -408,6 +497,7 @@ hi def link objcBlocksQualifier cStorageClass
hi def link objcObjectLifetimeQualifier cStorageClass
hi def link objcTollFreeBridgeQualifier cStorageClass
hi def link objcRemoteMessagingQualifier cStorageClass
hi def link objcStorageClass cStorageClass
hi def link objcFastEnumKeyword cStatement
hi def link objcLiteralSyntaxNumber cNumber
hi def link objcLiteralSyntaxChar cCharacter
@@ -418,16 +508,22 @@ hi def link objcDeclPropAccessorType cConstant
hi def link objcDeclPropAssignSemantics cConstant
hi def link objcDeclPropAtomicity cConstant
hi def link objcDeclPropARC cConstant
hi def link objcDeclPropNullable cConstant
hi def link objcDeclPropNonnull cConstant
hi def link objcDeclPropNullUnspecified cConstant
hi def link objcDeclProcNullResettable cConstant
hi def link objcInstanceMethod Function
hi def link objcClassMethod Function
hi def link objcType cType
hi def link objcClass cType
hi def link objcTypeSpecifier cType
hi def link objcMacro cConstant
hi def link objcEnum cType
hi def link objcEnumValue cConstant
hi def link objcExceptionValue cConstant
hi def link objcNotificationValue cConstant
hi def link objcConstVar cConstant
hi def link objcTypeInfoParams Identifier
""" Final step
let b:current_syntax = "objc"

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: Nov 23, 2015
" Last Change: Dec 26, 2015
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -515,7 +515,7 @@ syntax keyword phpStatement die contained
" Highlighting for PHP5's user-definable magic class methods
syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier
\ __construct __destruct __call __toString __sleep __wakeup __set __get __unset __isset __clone __set_state
\ __construct __destruct __call __callStatic __get __set __isset __unset __sleep __wakeup __toString __invoke __set_state __clone __debugInfo
" Highlighting for __autoload slightly different from line above
syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
\ __autoload

View File

@@ -1,9 +1,10 @@
" Vim syntax file
" Language: OpenSSH client configuration file (ssh_config)
" Author: David Necas (Yeti)
" Maintainer: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Last Change: 2012 Feb 24
" SSH Version: 5.9p1
" Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Last Change: 2015 Dec 3
" SSH Version: 7.0
"
" Setup
@@ -100,6 +101,8 @@ syn case ignore
" Keywords
syn keyword sshconfigHostSect Host
syn keyword sshconfigMatch canonical exec host originalhost user localuser all
syn keyword sshconfigKeyword AddressFamily
syn keyword sshconfigKeyword BatchMode
syn keyword sshconfigKeyword BindAddress
@@ -138,6 +141,7 @@ syn keyword sshconfigKeyword HostKeyAlgorithms
syn keyword sshconfigKeyword HostKeyAlias
syn keyword sshconfigKeyword HostName
syn keyword sshconfigKeyword HostbasedAuthentication
syn keyword sshconfigKeyword HostbasedKeyTypes
syn keyword sshconfigKeyword IPQoS
syn keyword sshconfigKeyword IdentitiesOnly
syn keyword sshconfigKeyword IdentityFile
@@ -148,6 +152,7 @@ syn keyword sshconfigKeyword LocalCommand
syn keyword sshconfigKeyword LocalForward
syn keyword sshconfigKeyword LogLevel
syn keyword sshconfigKeyword MACs
syn keyword sshconfigKeyword Match
syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
syn keyword sshconfigKeyword NumberOfPasswordPrompts
syn keyword sshconfigKeyword PKCS11Provider
@@ -157,6 +162,8 @@ syn keyword sshconfigKeyword Port
syn keyword sshconfigKeyword PreferredAuthentications
syn keyword sshconfigKeyword Protocol
syn keyword sshconfigKeyword ProxyCommand
syn keyword sshconfigKeyword ProxyUseFDPass
syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
syn keyword sshconfigKeyword PubkeyAuthentication
syn keyword sshconfigKeyword RSAAuthentication
syn keyword sshconfigKeyword RekeyLimit
@@ -211,6 +218,7 @@ if version >= 508 || !exists("did_sshconfig_syntax_inits")
HiLink sshconfigSpecial Special
HiLink sshconfigKeyword Keyword
HiLink sshconfigHostSect Type
HiLink sshconfigMatch Type
delcommand HiLink
endif

View File

@@ -1,11 +1,12 @@
" Vim syntax file
" Language: OpenSSH server configuration file (sshd_config)
" Maintainer: David Necas (Yeti)
" Maintainer: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Modified By: Thilo Six
" Author: David Necas (Yeti)
" Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
" Contributor: Thilo Six
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
" Originally: 2009-07-09
" Last Change: 2011 Oct 31
" SSH Version: 5.9p1
" Last Change: 2015 Dec 3
" SSH Version: 7.0
"
" Setup
@@ -39,6 +40,12 @@ syn keyword sshdconfigYesNo yes no none
syn keyword sshdconfigAddressFamily any inet inet6
syn keyword sshdconfigPrivilegeSeparation sandbox
syn keyword sshdconfigTcpForwarding local remote
syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only
syn keyword sshdconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
syn keyword sshdconfigCipher aes192-cbc aes256-cbc aes128-ctr aes192-ctr aes256-ctr
syn keyword sshdconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
@@ -49,7 +56,7 @@ syn keyword sshdconfigMAC hmac-sha2-256 hmac-sha256-96 hmac-sha2-512
syn keyword sshdconfigMAC hmac-sha2-512-96
syn match sshdconfigMAC "\<umac-64@openssh\.com\>"
syn keyword sshdconfigRootLogin without-password forced-commands-only
syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only
syn keyword sshdconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
syn keyword sshdconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
@@ -99,9 +106,12 @@ syn keyword sshdconfigKeyword AcceptEnv
syn keyword sshdconfigKeyword AddressFamily
syn keyword sshdconfigKeyword AllowAgentForwarding
syn keyword sshdconfigKeyword AllowGroups
syn keyword sshdconfigKeyword AllowStreamLocalForwarding
syn keyword sshdconfigKeyword AllowTcpForwarding
syn keyword sshdconfigKeyword AllowUsers
syn keyword sshdconfigKeyword AuthorizedKeysFile
syn keyword sshdconfigKeyword AuthorizedKeysCommand
syn keyword sshdconfigKeyword AuthorizedKeysCommandUser
syn keyword sshdconfigKeyword AuthorizedPrincipalsFile
syn keyword sshdconfigKeyword Banner
syn keyword sshdconfigKeyword ChallengeResponseAuthentication
@@ -122,6 +132,8 @@ syn keyword sshdconfigKeyword GSSAPIStrictAcceptorCheck
syn keyword sshdconfigKeyword GatewayPorts
syn keyword sshdconfigKeyword HostCertificate
syn keyword sshdconfigKeyword HostKey
syn keyword sshdconfigKeyword HostKeyAlgorithms
syn keyword sshdconfigKeyword HostbasedAcceptedKeyTypes
syn keyword sshdconfigKeyword HostbasedAuthentication
syn keyword sshdconfigKeyword HostbasedUsesNameFromPacketOnly
syn keyword sshdconfigKeyword IPQoS
@@ -147,15 +159,19 @@ syn keyword sshdconfigKeyword PermitBlacklistedKeys
syn keyword sshdconfigKeyword PermitEmptyPasswords
syn keyword sshdconfigKeyword PermitOpen
syn keyword sshdconfigKeyword PermitRootLogin
syn keyword sshdconfigKeyword PermitTTY
syn keyword sshdconfigKeyword PermitTunnel
syn keyword sshdconfigKeyword PermitUserEnvironment
syn keyword sshdconfigKeyword PermitUserRC
syn keyword sshdconfigKeyword PidFile
syn keyword sshdconfigKeyword Port
syn keyword sshdconfigKeyword PrintLastLog
syn keyword sshdconfigKeyword PrintMotd
syn keyword sshdconfigKeyword Protocol
syn keyword sshdconfigKeyword PubkeyAcceptedKeyTypes
syn keyword sshdconfigKeyword PubkeyAuthentication
syn keyword sshdconfigKeyword RSAAuthentication
syn keyword sshdconfigKeyword RekeyLimit
syn keyword sshdconfigKeyword RevokedKeys
syn keyword sshdconfigKeyword RhostsRSAAuthentication
syn keyword sshdconfigKeyword ServerKeyBits
@@ -169,6 +185,7 @@ 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
syn keyword sshdconfigKeyword X11UseLocalhost
@@ -184,29 +201,32 @@ if version >= 508 || !exists("did_sshdconfig_syntax_inits")
command -nargs=+ HiLink hi def link <args>
endif
HiLink sshdconfigComment Comment
HiLink sshdconfigTodo Todo
HiLink sshdconfigHostPort sshdconfigConstant
HiLink sshdconfigTime sshdconfigConstant
HiLink sshdconfigNumber sshdconfigConstant
HiLink sshdconfigConstant Constant
HiLink sshdconfigYesNo sshdconfigEnum
HiLink sshdconfigAddressFamily sshdconfigEnum
HiLink sshdconfigCipher sshdconfigEnum
HiLink sshdconfigMAC sshdconfigEnum
HiLink sshdconfigRootLogin sshdconfigEnum
HiLink sshdconfigLogLevel sshdconfigEnum
HiLink sshdconfigSysLogFacility sshdconfigEnum
HiLink sshdconfigVar sshdconfigEnum
HiLink sshdconfigCompression sshdconfigEnum
HiLink sshdconfigIPQoS sshdconfigEnum
HiLink sshdconfigKexAlgo sshdconfigEnum
HiLink sshdconfigTunnel sshdconfigEnum
HiLink sshdconfigSubsystem sshdconfigEnum
HiLink sshdconfigEnum Function
HiLink sshdconfigSpecial Special
HiLink sshdconfigKeyword Keyword
HiLink sshdconfigMatch Type
HiLink sshdconfigComment Comment
HiLink sshdconfigTodo Todo
HiLink sshdconfigHostPort sshdconfigConstant
HiLink sshdconfigTime sshdconfigConstant
HiLink sshdconfigNumber sshdconfigConstant
HiLink sshdconfigConstant Constant
HiLink sshdconfigYesNo sshdconfigEnum
HiLink sshdconfigAddressFamily sshdconfigEnum
HiLink sshdconfigPrivilegeSeparation sshdconfigEnum
HiLink sshdconfigTcpForwarding sshdconfigEnum
HiLink sshdconfigRootLogin sshdconfigEnum
HiLink sshdconfigCipher sshdconfigEnum
HiLink sshdconfigMAC sshdconfigEnum
HiLink sshdconfigRootLogin sshdconfigEnum
HiLink sshdconfigLogLevel sshdconfigEnum
HiLink sshdconfigSysLogFacility sshdconfigEnum
HiLink sshdconfigVar sshdconfigEnum
HiLink sshdconfigCompression sshdconfigEnum
HiLink sshdconfigIPQoS sshdconfigEnum
HiLink sshdconfigKexAlgo sshdconfigEnum
HiLink sshdconfigTunnel sshdconfigEnum
HiLink sshdconfigSubsystem sshdconfigEnum
HiLink sshdconfigEnum Function
HiLink sshdconfigSpecial Special
HiLink sshdconfigKeyword Keyword
HiLink sshdconfigMatch Type
delcommand HiLink
endif

View File

@@ -281,6 +281,12 @@ CC=
#GUI_LIB_LOC = -L/usr/X11R6/lib
# }}}
# Defaults used when auto/config.mk does not exist.
srcdir = .
VIMNAME = vim
EXNAME = ex
VIEWNAME = view
######################## auto/config.mk ######################## {{{1
# At this position auto/config.mk is included. When starting from the
# toplevel Makefile it is almost empty. After running auto/configure it
@@ -616,6 +622,27 @@ LINT_OPTIONS = -beprxzF
#PROFILE_LIBS = -pg
#PROFILE_LIBS = -pg -lc
# TEST COVERAGE - Uncomment the two lines below the explanation to get code
# coverage information. (provided by Yegappan Lakshmanan)
# 1. make clean, run configure and build Vim as usual.
# 2. Generate the baseline code coverage information:
# $ lcov -c -i -b . -d objects -o objects/coverage_base.info
# 3. Run "make test" to run the unit tests. The code coverage information will
# be generated in the src/objects directory.
# 4. Generate the code coverage information from the tests:
# $ lcov -c -b . -d objects/ -o objects/coverage_test.info
# 5. Combine the baseline and test code coverage data:
# $ lcov -a objects/coverage_base.info -a objects/coverage_test.info -o objects/coverage_total.info
# 6. Process the test coverage data and generate a report in html:
# $ genhtml objects/coverage_total.info -o objects
# 7. Open the objects/index.html file in a web browser to view the coverage
# information.
#
# PROFILE_CFLAGS=-g -O0 -fprofile-arcs -ftest-coverage
# LDFLAGS=--coverage
# Uncomment one of the next two lines to compile Vim with the
# address sanitizer or with the undefined sanitizer. Works with gcc and
# clang. May make Vim twice as slow. Errors reported on stderr.
@@ -1178,10 +1205,10 @@ NONE_INSTALL = install_normal
### GTK GUI
GTK_SRC = gui.c gui_gtk.c gui_gtk_x11.c pty.c gui_gtk_f.c \
gui_beval.c
gui_beval.c $(GRESOURCE_SRC)
GTK_OBJ = objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o \
objects/pty.o objects/gui_gtk_f.o \
objects/gui_beval.o
objects/gui_beval.o $(GRESOURCE_OBJ)
GTK_DEFS = -DFEAT_GUI_GTK $(NARROW_PROTO)
GTK_IPATH = $(GUI_INC_LOC)
GTK_LIBS_DIR = $(GUI_LIB_LOC)
@@ -1506,7 +1533,8 @@ TAGS_SRC = *.c *.cpp if_perl.xs
EXTRA_SRC = hangulin.c if_lua.c if_mzsch.c auto/if_perl.c if_perlsfio.c \
if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
gui_beval.c workshop.c wsdebug.c integration.c netbeans.c \
$(GRESOURCE_SRC)
# Unittest files
MEMFILE_TEST_SRC = memfile_test.c
@@ -1848,6 +1876,9 @@ os_vms.pro: os_vms.c
if_perl.pro: auto/if_perl.c
$(CPROTO) -DFEAT_GUI auto/if_perl.c | sed "/_VI/d" > proto/$@
gui_gtk_gresources.pro: auto/gui_gtk_gresources.c
$(CPROTO) -DFEAT_GUI $< > proto/$@
echo "/* vim: set ft=c : */" >> proto/$@
notags:
-rm -f tags
@@ -1905,7 +1936,6 @@ test1 \
test_autocmd_option \
test_autoformat_join \
test_breakindent \
test_cdo \
test_changelist \
test_charsearch \
test_close_count \
@@ -1948,13 +1978,24 @@ test1 \
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
test_assert \
test_cdo \
test_searchpos \
test_sort \
test_undolevels \
test_viml \
test_alot:
cd testdir; rm -f $@.res; $(MAKE) -f Makefile $@.res VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile $@.res VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
@if test -f testdir/test.log; then \
cat testdir/test.log; \
fi
cat testdir/messages
newtests:
cd testdir; rm -f $@.res; $(MAKE) -f Makefile newtests VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile newtests VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
@if test -f testdir/test.log; then \
cat testdir/test.log; \
fi
cat testdir/messages
testclean:
cd testdir; $(MAKE) -f Makefile clean
@@ -2417,7 +2458,7 @@ uninstall_runtime:
# We support common typing mistakes for Juergen! :-)
clean celan: testclean
-rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o
-rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
-rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c auto/gui_gtk_gresources.c auto/gui_gtk_gresources.h
-rm -f conftest* *~ auto/link.sed
-rm -f $(UNITTEST_TARGETS)
-rm -f runtime pixmaps
@@ -2433,7 +2474,7 @@ SHADOWDIR = shadow
shadow: runtime pixmaps
mkdir $(SHADOWDIR)
cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_gresources.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
mkdir $(SHADOWDIR)/auto
cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
mkdir $(SHADOWDIR)/po
@@ -2452,7 +2493,7 @@ shadow: runtime pixmaps
fi
mkdir $(SHADOWDIR)/testdir
cd $(SHADOWDIR)/testdir; ln -s ../../testdir/Makefile \
../../testdir/vimrc.unix \
../../testdir/Make_all.mak \
../../testdir/*.in \
../../testdir/*.vim \
../../testdir/python* \
@@ -2554,6 +2595,11 @@ auto/pathdef.c: Makefile auto/config.mk
-@echo '";' >> $@
-@sh $(srcdir)/pathdef.sh
auto/gui_gtk_gresources.c: gui_gtk_gresources.xml
$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register $<
auto/gui_gtk_gresources.h: gui_gtk_gresources.xml
$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register $<
# All the object files are put in the "objects" directory. Since not all make
# commands understand putting object files in another directory, it must be
# specified for each file separately.
@@ -2639,6 +2685,9 @@ objects/gui_gtk.o: gui_gtk.c
objects/gui_gtk_f.o: gui_gtk_f.c
$(CCC) -o $@ gui_gtk_f.c
objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c
$(CCC) $(PERL_CFLAGS) -o $@ auto/gui_gtk_gresources.c
objects/gui_gtk_x11.o: gui_gtk_x11.c
$(CCC) -o $@ gui_gtk_x11.c
@@ -2674,7 +2723,7 @@ objects/if_lua.o: if_lua.c
objects/if_mzsch.o: if_mzsch.c $(MZSCHEME_EXTRA)
$(CCC) -o $@ $(MZSCHEME_CFLAGS_EXTRA) if_mzsch.c
mzscheme_base.c:
$(MZSCHEME_MZC) --c-mods mzscheme_base.c ++lib scheme/base
@@ -3121,6 +3170,16 @@ objects/gui_gtk_f.o: gui_gtk_f.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_gtk_f.h
objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c gui_gtk_gresources.xml \
../pixmaps/stock_vim_build_tags.png ../pixmaps/stock_vim_find_help.png \
../pixmaps/stock_vim_save_all.png ../pixmaps/stock_vim_session_load.png \
../pixmaps/stock_vim_session_new.png ../pixmaps/stock_vim_session_save.png \
../pixmaps/stock_vim_shell.png ../pixmaps/stock_vim_window_maximize.png \
../pixmaps/stock_vim_window_maximize_width.png \
../pixmaps/stock_vim_window_minimize.png \
../pixmaps/stock_vim_window_minimize_width.png \
../pixmaps/stock_vim_window_split.png \
../pixmaps/stock_vim_window_split_vertical.png
objects/gui_motif.o: gui_motif.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
@@ -3173,7 +3232,7 @@ objects/gui_gtk_x11.o: gui_gtk_x11.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_gtk_f.h ../runtime/vim32x32.xpm \
../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
../runtime/vim16x16.xpm ../runtime/vim48x48.xpm $(GRESOURCE_HDR)
objects/gui_x11.o: gui_x11.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \

84
src/auto/configure vendored
View File

@@ -636,6 +636,10 @@ GUI_LIB_LOC
GUI_INC_LOC
NARROW_PROTO
MOTIF_LIBNAME
GRESOURCE_OBJ
GRESOURCE_SRC
GRESOURCE_HDR
GLIB_COMPILE_RESOURCES
GNOME_INCLUDEDIR
GNOME_LIBDIR
GNOME_LIBS
@@ -8907,6 +8911,86 @@ $as_echo "not found" >&6; }
fi
fi
if test "x$GUITYPE" = "xGTK"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of Gdk-Pixbuf" >&5
$as_echo_n "checking version of Gdk-Pixbuf... " >&6; }
gdk_pixbuf_version=`$PKG_CONFIG --modversion gdk-pixbuf-2.0`
if test "x$gdk_pixbuf_version" != x ; then
gdk_pixbuf_version_minor=`echo $gdk_pixbuf_version | \
sed -e 's/[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*/\1/'`
if test "x$gdk_pixbuf_version_minor" != x -a \
$gdk_pixbuf_version_minor -ge 32 ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: OK." >&5
$as_echo "OK." >&6; }
# Extract the first word of "glib-compile-resources", so it can be a program name with args.
set dummy glib-compile-resources; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_GLIB_COMPILE_RESOURCES+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GLIB_COMPILE_RESOURCES in
[\\/]* | ?:[\\/]*)
ac_cv_path_GLIB_COMPILE_RESOURCES="$GLIB_COMPILE_RESOURCES" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GLIB_COMPILE_RESOURCES="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
test -z "$ac_cv_path_GLIB_COMPILE_RESOURCES" && ac_cv_path_GLIB_COMPILE_RESOURCES="no"
;;
esac
fi
GLIB_COMPILE_RESOURCES=$ac_cv_path_GLIB_COMPILE_RESOURCES
if test -n "$GLIB_COMPILE_RESOURCES"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_RESOURCES" >&5
$as_echo "$GLIB_COMPILE_RESOURCES" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking glib-compile-resources" >&5
$as_echo_n "checking glib-compile-resources... " >&6; }
if test "x$GLIB_COMPILE_RESOURCES" = xno ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot be found in PATH." >&5
$as_echo "cannot be found in PATH." >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: usable." >&5
$as_echo "usable." >&6; }
$as_echo "#define USE_GRESOURCE 1" >>confdefs.h
GRESOURCE_HDR="auto/gui_gtk_gresources.h"
GRESOURCE_SRC="auto/gui_gtk_gresources.c"
GRESOURCE_OBJ="objects/gui_gtk_gresources.o"
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not usable." >&5
$as_echo "not usable." >&6; }
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot obtain from pkg_config." >&5
$as_echo "cannot obtain from pkg_config." >&6; }
fi
fi
if test -z "$SKIP_MOTIF"; then
gui_XXX="/usr/XXX/Motif* /usr/Motif*/XXX /usr/XXX /usr/shlib /usr/X11*/XXX /usr/XXX/X11* /usr/dt/XXX /local/Motif*/XXX /local/XXX/Motif* /usr/local/Motif*/XXX /usr/local/XXX/Motif* /usr/local/XXX /usr/local/X11*/XXX /usr/local/LessTif/Motif*/XXX $MOTIFHOME/XXX"

View File

@@ -452,3 +452,6 @@
/* Define if Xutf8SetWMProperties() is in an X library. */
#undef HAVE_XUTF8SETWMPROPERTIES
/* Define if GResource is used to load icons */
#undef USE_GRESOURCE

View File

@@ -158,6 +158,11 @@ GUI_X_LIBS = @GUI_X_LIBS@
MOTIF_LIBNAME = @MOTIF_LIBNAME@
GTK_LIBNAME = @GTK_LIBNAME@
GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
GRESOURCE_HDR = @GRESOURCE_HDR@
GRESOURCE_SRC = @GRESOURCE_SRC@
GRESOURCE_OBJ = @GRESOURCE_OBJ@
### Any OS dependent extra source and object file
OS_EXTRA_SRC = @OS_EXTRA_SRC@
OS_EXTRA_OBJ = @OS_EXTRA_OBJ@

View File

@@ -2500,6 +2500,40 @@ if test -z "$SKIP_GTK2"; then
fi
fi
dnl Check the version of Gdk-Pixbuf. If the version is 2.32 or later and
dnl glib-compile-resources is found in PATH, use GResource.
if test "x$GUITYPE" = "xGTK"; then
AC_MSG_CHECKING([version of Gdk-Pixbuf])
gdk_pixbuf_version=`$PKG_CONFIG --modversion gdk-pixbuf-2.0`
if test "x$gdk_pixbuf_version" != x ; then
gdk_pixbuf_version_minor=`echo $gdk_pixbuf_version | \
sed -e 's/[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*/\1/'`
if test "x$gdk_pixbuf_version_minor" != x -a \
$gdk_pixbuf_version_minor -ge 32 ; then
AC_MSG_RESULT([OK.])
AC_PATH_PROG(GLIB_COMPILE_RESOURCES,[glib-compile-resources],no)
AC_MSG_CHECKING([glib-compile-resources])
if test "x$GLIB_COMPILE_RESOURCES" = xno ; then
AC_MSG_RESULT([cannot be found in PATH.])
else
AC_MSG_RESULT([usable.])
AC_DEFINE(USE_GRESOURCE)
GRESOURCE_HDR="auto/gui_gtk_gresources.h"
GRESOURCE_SRC="auto/gui_gtk_gresources.c"
GRESOURCE_OBJ="objects/gui_gtk_gresources.o"
fi
else
AC_MSG_RESULT([not usable.])
fi
else
AC_MSG_RESULT([cannot obtain from pkg_config.])
fi
fi
AC_SUBST(GLIB_COMPILE_RESOURCES)
AC_SUBST(GRESOURCE_HDR)
AC_SUBST(GRESOURCE_SRC)
AC_SUBST(GRESOURCE_OBJ)
dnl Check for Motif include files location.
dnl The LAST one found is used, this makes the highest version to be used,
dnl e.g. when Motif1.2 and Motif2.0 are both present.

View File

@@ -16471,6 +16471,7 @@ f_reverse(argvars, rettv)
#define SP_START 0x10 /* accept match at start position */
#define SP_SUBPAT 0x20 /* return nr of matching sub-pattern */
#define SP_END 0x40 /* leave cursor at end of match */
#define SP_COLUMN 0x80 /* start at cursor column */
static int get_search_arg __ARGS((typval_T *varp, int *flagsp));
@@ -16512,6 +16513,7 @@ get_search_arg(varp, flagsp)
case 'p': mask = SP_SUBPAT; break;
case 'r': mask = SP_REPEAT; break;
case 's': mask = SP_SETPCMARK; break;
case 'z': mask = SP_COLUMN; break;
}
if (mask == 0)
{
@@ -16530,7 +16532,7 @@ get_search_arg(varp, flagsp)
}
/*
* Shared by search() and searchpos() functions
* Shared by search() and searchpos() functions.
*/
static int
search_cmn(argvars, match_pos, flagsp)
@@ -16562,6 +16564,8 @@ search_cmn(argvars, match_pos, flagsp)
options |= SEARCH_START;
if (flags & SP_END)
options |= SEARCH_END;
if (flags & SP_COLUMN)
options |= SEARCH_COL;
/* Optional arguments: line number to stop searching and timeout. */
if (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN)
@@ -23091,7 +23095,11 @@ ex_function(eap)
/* insert the new function in the function list */
STRCPY(fp->uf_name, name);
hash_add(&func_hashtab, UF2HIKEY(fp));
if (hash_add(&func_hashtab, UF2HIKEY(fp)) == FAIL)
{
vim_free(fp);
goto erret;
}
}
fp->uf_args = newargs;
fp->uf_lines = newlines;

View File

@@ -6938,9 +6938,9 @@ struct sign
int sn_typenr; /* type number of sign */
char_u *sn_name; /* name of sign */
char_u *sn_icon; /* name of pixmap */
#ifdef FEAT_SIGN_ICONS
# ifdef FEAT_SIGN_ICONS
void *sn_image; /* icon image */
#endif
# endif
char_u *sn_text; /* text used instead of pixmap */
int sn_line_hl; /* highlight ID for line */
int sn_text_hl; /* highlight ID for text */
@@ -6955,19 +6955,19 @@ static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev));
static char *cmds[] = {
"define",
#define SIGNCMD_DEFINE 0
# define SIGNCMD_DEFINE 0
"undefine",
#define SIGNCMD_UNDEFINE 1
# define SIGNCMD_UNDEFINE 1
"list",
#define SIGNCMD_LIST 2
# define SIGNCMD_LIST 2
"place",
#define SIGNCMD_PLACE 3
# define SIGNCMD_PLACE 3
"unplace",
#define SIGNCMD_UNPLACE 4
# define SIGNCMD_UNPLACE 4
"jump",
#define SIGNCMD_JUMP 5
# define SIGNCMD_JUMP 5
NULL
#define SIGNCMD_LAST 6
# define SIGNCMD_LAST 6
};
/*
@@ -7110,7 +7110,7 @@ ex_sign(eap)
vim_free(sp->sn_icon);
sp->sn_icon = vim_strnsave(arg, (int)(p - arg));
backslash_halve(sp->sn_icon);
#ifdef FEAT_SIGN_ICONS
# ifdef FEAT_SIGN_ICONS
if (gui.in_use)
{
out_flush();
@@ -7118,7 +7118,7 @@ ex_sign(eap)
gui_mch_destroy_sign(sp->sn_image);
sp->sn_image = gui_mch_register_sign(sp->sn_icon);
}
#endif
# endif
}
else if (STRNCMP(arg, "text=", 5) == 0)
{
@@ -7127,7 +7127,7 @@ ex_sign(eap)
int len;
arg += 5;
#ifdef FEAT_MBYTE
# ifdef FEAT_MBYTE
/* Count cells and check for non-printable chars */
if (has_mbyte)
{
@@ -7140,7 +7140,7 @@ ex_sign(eap)
}
}
else
#endif
# endif
{
for (s = arg; s < p; ++s)
if (!vim_isprintc(*s))
@@ -7343,9 +7343,9 @@ ex_sign(eap)
do_cmdline_cmd(cmd);
vim_free(cmd);
}
#ifdef FEAT_FOLDING
# ifdef FEAT_FOLDING
foldOpenCursor();
#endif
# endif
}
else
EMSGN(_("E157: Invalid sign ID: %ld"), id);
@@ -7395,7 +7395,7 @@ ex_sign(eap)
}
}
#if defined(FEAT_SIGN_ICONS) || defined(PROTO)
# if defined(FEAT_SIGN_ICONS) || defined(PROTO)
/*
* Allocate the icons. Called when the GUI has started. Allows defining
* signs before it starts.
@@ -7409,7 +7409,7 @@ sign_gui_started()
if (sp->sn_icon != NULL)
sp->sn_image = gui_mch_register_sign(sp->sn_icon);
}
#endif
# endif
/*
* List one sign.
@@ -7425,12 +7425,12 @@ sign_list_defined(sp)
{
MSG_PUTS(" icon=");
msg_outtrans(sp->sn_icon);
#ifdef FEAT_SIGN_ICONS
# ifdef FEAT_SIGN_ICONS
if (sp->sn_image == NULL)
MSG_PUTS(_(" (NOT FOUND)"));
#else
# else
MSG_PUTS(_(" (not supported)"));
#endif
# endif
}
if (sp->sn_text != NULL)
{
@@ -7467,13 +7467,13 @@ sign_undefine(sp, sp_prev)
{
vim_free(sp->sn_name);
vim_free(sp->sn_icon);
#ifdef FEAT_SIGN_ICONS
# ifdef FEAT_SIGN_ICONS
if (sp->sn_image != NULL)
{
out_flush();
gui_mch_destroy_sign(sp->sn_image);
}
#endif
# endif
vim_free(sp->sn_text);
if (sp_prev == NULL)
first_sign = sp->sn_next;
@@ -7527,7 +7527,7 @@ sign_get_text(typenr)
return NULL;
}
#if defined(FEAT_SIGN_ICONS) || defined(PROTO)
# if defined(FEAT_SIGN_ICONS) || defined(PROTO)
void *
sign_get_image(typenr)
int typenr; /* the attribute which may have a sign */
@@ -7539,7 +7539,7 @@ sign_get_image(typenr)
return sp->sn_image;
return NULL;
}
#endif
# endif
/*
* Get the name of a sign by its typenr.
@@ -7556,7 +7556,7 @@ sign_typenr2name(typenr)
return (char_u *)_("[Deleted]");
}
#if defined(EXITFREE) || defined(PROTO)
# if defined(EXITFREE) || defined(PROTO)
/*
* Undefine/free all signs.
*/
@@ -7566,9 +7566,9 @@ free_signs()
while (first_sign != NULL)
sign_undefine(first_sign, NULL);
}
#endif
# endif
#if defined(FEAT_CMDL_COMPL) || defined(PROTO)
# if defined(FEAT_CMDL_COMPL) || defined(PROTO)
static enum
{
EXP_SUBCMD, /* expand :sign sub-commands */
@@ -7746,8 +7746,30 @@ set_context_in_sign_cmd(xp, arg)
}
}
}
# endif
#endif
#endif
/*
* Make the user happy.
*/
void
ex_smile(eap)
exarg_T *eap UNUSED;
{
static char *code = "\34 \4o\14$\4ox\30 \2o\30$\1ox\25 \2o\36$\1o\11 \1o\1$\3 \2$\1 \1o\1$x\5 \1o\1 \1$\1 \2o\10 \1o\44$\1o\7 \2$\1 \2$\1 \2$\1o\1$x\2 \2o\1 \1$\1 \1$\1 \1\"\1$\6 \1o\11$\4 \15$\4 \11$\1o\7 \3$\1o\2$\1o\1$x\2 \1\"\6$\1o\1$\5 \1o\11$\6 \13$\6 \12$\1o\4 \10$x\4 \7$\4 \13$\6 \13$\6 \27$x\4 \27$\4 \15$\4 \16$\2 \3\"\3$x\5 \1\"\3$\4\"\61$\5 \1\"\3$x\6 \3$\3 \1o\62$\5 \1\"\3$\1ox\5 \1o\2$\1\"\3 \63$\7 \3$\1ox\5 \3$\4 \55$\1\"\1 \1\"\6$\5o\4$\1ox\4 \1o\3$\4o\5$\2 \45$\3 \1o\21$x\4 \10$\1\"\4$\3 \42$\5 \4$\10\"x\3 \4\"\7 \4$\4 \1\"\34$\1\"\6 \1o\3$x\16 \1\"\3$\1o\5 \3\"\22$\1\"\2$\1\"\11 \3$x\20 \3$\1o\12 \1\"\2$\2\"\6$\4\"\13 \1o\3$x\21 \4$\1o\40 \1o\3$\1\"x\22 \1\"\4$\1o\6 \1o\6$\1o\1\"\4$\1o\10 \1o\4$x\24 \1\"\5$\2o\5 \2\"\4$\1o\5$\1o\3 \1o\4$\2\"x\27 \2\"\5$\4o\2 \1\"\3$\1o\11$\3\"x\32 \2\"\7$\2o\1 \12$x\42 \4\"\13$x\46 \14$x\47 \12$\1\"x\50 \1\"\3$\4\"x";
char *p;
int n;
msg_start();
msg_putchar('\n');
for (p = code; *p != NUL; ++p)
if (*p == 'x')
msg_putchar('\n');
else
for (n = *p++; n > 0; --n)
msg_putchar(*p);
msg_clr_eos();
}
#if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
/*

View File

@@ -1378,6 +1378,9 @@ EX(CMD_syntime, "syntime", ex_syntime,
EX(CMD_syncbind, "syncbind", ex_syncbind,
TRLBAR,
ADDR_LINES),
EX(CMD_smile, "smile", ex_smile,
TRLBAR|CMDWIN|SBOXOK,
ADDR_LINES),
EX(CMD_t, "t", ex_copymove,
RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
ADDR_LINES),

View File

@@ -140,6 +140,31 @@ static const char * const menu_stock_ids[] =
/* 31 */ GTK_STOCK_QUIT
};
#ifdef USE_GRESOURCE
typedef struct IconNames {
const char *icon_name;
const char *file_name;
} IconNames;
static IconNames stock_vim_icons[] = {
{ "vim-build-tags", "stock_vim_build_tags.png" },
{ "vim-find-help", "stock_vim_find_help.png" },
{ "vim-save-all", "stock_vim_save_all.png" },
{ "vim-session-load", "stock_vim_session_load.png" },
{ "vim-session-new", "stock_vim_session_new.png" },
{ "vim-session-save", "stock_vim_session_save.png" },
{ "vim-shell", "stock_vim_shell.png" },
{ "vim-window-maximize", "stock_vim_window_maximize.png" },
{ "vim-window-maximize-width", "stock_vim_window_maximize_width.png" },
{ "vim-window-minimize", "stock_vim_window_minimize.png" },
{ "vim-window-minimize-width", "stock_vim_window_minimize_width.png" },
{ "vim-window-split", "stock_vim_window_split.png" },
{ "vim-window-split-vertical", "stock_vim_window_split_vertical.png" },
{ NULL, NULL }
};
#endif
#ifndef USE_GRESOURCE
static void
add_stock_icon(GtkIconFactory *factory,
const char *stock_id,
@@ -157,6 +182,7 @@ add_stock_icon(GtkIconFactory *factory,
gtk_icon_set_unref(icon_set);
g_object_unref(pixbuf);
}
#endif
static int
lookup_menu_iconfile(char_u *iconfile, char_u *dest)
@@ -262,11 +288,12 @@ toolbar_button_focus_in_event(GtkWidget *widget UNUSED,
void
gui_gtk_register_stock_icons(void)
{
# include "../pixmaps/stock_icons.h"
#ifndef USE_GRESOURCE
# include "../pixmaps/stock_icons.h"
GtkIconFactory *factory;
factory = gtk_icon_factory_new();
# define ADD_ICON(Name, Data) add_stock_icon(factory, Name, Data, (int)sizeof(Data))
# define ADD_ICON(Name, Data) add_stock_icon(factory, Name, Data, (int)sizeof(Data))
ADD_ICON("vim-build-tags", stock_vim_build_tags);
ADD_ICON("vim-find-help", stock_vim_find_help);
@@ -282,7 +309,28 @@ gui_gtk_register_stock_icons(void)
ADD_ICON("vim-window-split", stock_vim_window_split);
ADD_ICON("vim-window-split-vertical", stock_vim_window_split_vertical);
# undef ADD_ICON
# undef ADD_ICON
#else
GtkIconFactory * const factory = gtk_icon_factory_new();
const char * const path_prefix = "/org/vim/gui/icon";
IconNames *names;
for (names = stock_vim_icons; names->icon_name != NULL; names++)
{
char path[MAXPATHL];
GdkPixbuf *pixbuf;
vim_snprintf(path, MAXPATHL, "%s/%s", path_prefix, names->file_name);
pixbuf = gdk_pixbuf_new_from_resource(path, NULL);
if (pixbuf != NULL)
{
GtkIconSet *icon_set = gtk_icon_set_new_from_pixbuf(pixbuf);
gtk_icon_factory_add(factory, names->icon_name, icon_set);
gtk_icon_set_unref(icon_set);
g_object_unref(pixbuf);
}
}
#endif
gtk_icon_factory_add_default(factory);
g_object_unref(factory);
}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/vim/gui/icon">
<file>stock_vim_build_tags.png</file>
<file>stock_vim_find_help.png</file>
<file>stock_vim_save_all.png</file>
<file>stock_vim_session_load.png</file>
<file>stock_vim_session_new.png</file>
<file>stock_vim_session_save.png</file>
<file>stock_vim_shell.png</file>
<file>stock_vim_window_maximize.png</file>
<file>stock_vim_window_maximize_width.png</file>
<file>stock_vim_window_minimize.png</file>
<file>stock_vim_window_minimize_width.png</file>
<file>stock_vim_window_split.png</file>
<file>stock_vim_window_split_vertical.png</file>
</gresource>
</gresources>

View File

@@ -22,6 +22,9 @@
*/
#include "vim.h"
#ifdef USE_GRESOURCE
#include "auto/gui_gtk_gresources.h"
#endif
#ifdef FEAT_GUI_GNOME
/* Gnome redefines _() and N_(). Grrr... */
@@ -1434,6 +1437,9 @@ gui_mch_early_init_check(void)
EMSG(_((char *)e_opendisp));
return FAIL;
}
#ifdef USE_GRESOURCE
gui_gtk_register_resource();
#endif
return OK;
}
@@ -3620,6 +3626,9 @@ mainwin_destroy_cb(GtkObject *object UNUSED, gpointer data UNUSED)
IOSIZE - 1);
preserve_exit();
}
#ifdef USE_GRESOURCE
gui_gtk_unregister_resource();
#endif
}

View File

@@ -81,6 +81,11 @@
# define RUBY19_OR_LATER 1
#endif
#if (defined(RUBY_VERSION) && RUBY_VERSION >= 20) \
|| (defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20)
# define RUBY20_OR_LATER 1
#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19
/* Ruby 1.9 defines a number of static functions which use rb_num2long and
* rb_int2big */
@@ -103,7 +108,6 @@
#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 22
# define rb_gc_writebarrier_unprotect rb_gc_writebarrier_unprotect_stub
# define rb_check_type rb_check_type_stub
#endif
#include <ruby.h>
@@ -122,6 +126,16 @@
# define __OPENTRANSPORTPROVIDERS__
#endif
/*
* The TypedData_XXX macro family can be used since Ruby 1.9.2 but
* rb_data_type_t changed in 1.9.3, therefore require at least 2.0.
* The old Data_XXX macro family was deprecated on Ruby 2.2.
* Use TypedData_XXX if available.
*/
#if defined(TypedData_Wrap_Struct) && defined(RUBY20_OR_LATER)
# define USE_TYPEDDATA 1
#endif
/*
* Backward compatibility for Ruby 1.8 and earlier.
* Ruby 1.9 does not provide STR2CSTR, instead StringValuePtr is provided.
@@ -184,11 +198,20 @@ static void ruby_vim_init(void);
*/
# define rb_assoc_new dll_rb_assoc_new
# define rb_cObject (*dll_rb_cObject)
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 22
# define rb_check_type dll_rb_check_type
# define rb_check_type dll_rb_check_type
# ifdef USE_TYPEDDATA
# define rb_check_typeddata dll_rb_check_typeddata
# endif
# define rb_class_path dll_rb_class_path
# define rb_data_object_alloc dll_rb_data_object_alloc
# ifdef USE_TYPEDDATA
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 23
# define rb_data_typed_object_wrap dll_rb_data_typed_object_wrap
# else
# define rb_data_typed_object_alloc dll_rb_data_typed_object_alloc
# endif
# else
# define rb_data_object_alloc dll_rb_data_object_alloc
# endif
# define rb_define_class_under dll_rb_define_class_under
# define rb_define_const dll_rb_define_const
# define rb_define_global_function dll_rb_define_global_function
@@ -297,8 +320,19 @@ static VALUE *dll_rb_cObject;
VALUE *dll_rb_cSymbol;
VALUE *dll_rb_cTrueClass;
static void (*dll_rb_check_type) (VALUE,int);
# ifdef USE_TYPEDDATA
static void *(*dll_rb_check_typeddata) (VALUE,const rb_data_type_t *);
# endif
static VALUE (*dll_rb_class_path) (VALUE);
# ifdef USE_TYPEDDATA
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 23
static VALUE (*dll_rb_data_typed_object_wrap) (VALUE, void*, const rb_data_type_t *);
# else
static VALUE (*dll_rb_data_typed_object_alloc) (VALUE, void*, const rb_data_type_t *);
# endif
# else
static VALUE (*dll_rb_data_object_alloc) (VALUE, void*, RUBY_DATA_FUNC, RUBY_DATA_FUNC);
# endif
static VALUE (*dll_rb_define_class_under) (VALUE, const char*, VALUE);
static void (*dll_rb_define_const) (VALUE,const char*,VALUE);
static void (*dll_rb_define_global_function) (const char*,VALUE(*)(),int);
@@ -451,13 +485,6 @@ void rb_gc_writebarrier_unprotect_stub(VALUE obj)
# endif
# endif
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 22
void rb_check_type_stub(VALUE v, int i)
{
dll_rb_check_type(v, i);
}
# endif
static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */
/*
@@ -480,8 +507,19 @@ static struct
{"rb_cSymbol", (RUBY_PROC*)&dll_rb_cSymbol},
{"rb_cTrueClass", (RUBY_PROC*)&dll_rb_cTrueClass},
{"rb_check_type", (RUBY_PROC*)&dll_rb_check_type},
# ifdef USE_TYPEDDATA
{"rb_check_typeddata", (RUBY_PROC*)&dll_rb_check_typeddata},
# endif
{"rb_class_path", (RUBY_PROC*)&dll_rb_class_path},
# ifdef USE_TYPEDDATA
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 23
{"rb_data_typed_object_wrap", (RUBY_PROC*)&dll_rb_data_typed_object_wrap},
# else
{"rb_data_typed_object_alloc", (RUBY_PROC*)&dll_rb_data_typed_object_alloc},
# endif
# else
{"rb_data_object_alloc", (RUBY_PROC*)&dll_rb_data_object_alloc},
# endif
{"rb_define_class_under", (RUBY_PROC*)&dll_rb_define_class_under},
{"rb_define_const", (RUBY_PROC*)&dll_rb_define_const},
{"rb_define_global_function", (RUBY_PROC*)&dll_rb_define_global_function},
@@ -1026,6 +1064,24 @@ static VALUE vim_evaluate(VALUE self UNUSED, VALUE str)
#endif
}
#ifdef USE_TYPEDDATA
static size_t buffer_dsize(const void *buf);
static const rb_data_type_t buffer_type = {
"vim_buffer",
{0, 0, buffer_dsize, {0, 0}},
0, 0,
# ifdef RUBY_TYPED_FREE_IMMEDIATELY
0,
# endif
};
static size_t buffer_dsize(const void *buf UNUSED)
{
return sizeof(buf_T);
}
#endif
static VALUE buffer_new(buf_T *buf)
{
if (buf->b_ruby_ref)
@@ -1034,7 +1090,11 @@ static VALUE buffer_new(buf_T *buf)
}
else
{
#ifdef USE_TYPEDDATA
VALUE obj = TypedData_Wrap_Struct(cBuffer, &buffer_type, buf);
#else
VALUE obj = Data_Wrap_Struct(cBuffer, 0, 0, buf);
#endif
buf->b_ruby_ref = (void *) obj;
rb_hash_aset(objtbl, rb_obj_id(obj), obj);
return obj;
@@ -1045,7 +1105,11 @@ static buf_T *get_buf(VALUE obj)
{
buf_T *buf;
#ifdef USE_TYPEDDATA
TypedData_Get_Struct(obj, buf_T, &buffer_type, buf);
#else
Data_Get_Struct(obj, buf_T, buf);
#endif
if (buf == NULL)
rb_raise(eDeletedBufferError, "attempt to refer to deleted buffer");
return buf;
@@ -1242,6 +1306,24 @@ static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
return str;
}
#ifdef USE_TYPEDDATA
static size_t window_dsize(const void *buf);
static const rb_data_type_t window_type = {
"vim_window",
{0, 0, window_dsize, {0, 0}},
0, 0,
# ifdef RUBY_TYPED_FREE_IMMEDIATELY
0,
# endif
};
static size_t window_dsize(const void *win UNUSED)
{
return sizeof(win_T);
}
#endif
static VALUE window_new(win_T *win)
{
if (win->w_ruby_ref)
@@ -1250,7 +1332,11 @@ static VALUE window_new(win_T *win)
}
else
{
#ifdef USE_TYPEDDATA
VALUE obj = TypedData_Wrap_Struct(cVimWindow, &window_type, win);
#else
VALUE obj = Data_Wrap_Struct(cVimWindow, 0, 0, win);
#endif
win->w_ruby_ref = (void *) obj;
rb_hash_aset(objtbl, rb_obj_id(obj), obj);
return obj;
@@ -1261,7 +1347,11 @@ static win_T *get_win(VALUE obj)
{
win_T *win;
#ifdef USE_TYPEDDATA
TypedData_Get_Struct(obj, win_T, &window_type, win);
#else
Data_Get_Struct(obj, win_T, win);
#endif
if (win == NULL)
rb_raise(eDeletedWindowError, "attempt to refer to deleted window");
return win;

View File

@@ -1032,8 +1032,9 @@ mf_read(mfp, hp)
}
#ifdef FEAT_CRYPT
/* Decrypt if 'key' is set and this is a data block. */
if (*mfp->mf_buffer->b_p_key != NUL)
/* Decrypt if 'key' is set and this is a data block. And when changing the
* key. */
if (*mfp->mf_buffer->b_p_key != NUL || mfp->mf_old_key != NULL)
ml_decrypt_data(mfp, hp->bh_data, offset, size);
#endif

View File

@@ -2507,8 +2507,10 @@ mch_FullName(fname, buf, len, force)
fname = posix_fname;
#endif
/* expand it if forced or not an absolute path */
if (force || !mch_isFullName(fname))
/* Expand it if forced or not an absolute path.
* Do not do it for "/file", the result is always "/". */
if ((force || !mch_isFullName(fname))
&& ((p = vim_strrchr(fname, '/')) == NULL || p != fname))
{
/*
* If the file name has a path, change to that directory for a moment,
@@ -2517,11 +2519,11 @@ mch_FullName(fname, buf, len, force)
*/
#ifdef OS2
only_drive = 0;
if (((p = vim_strrchr(fname, '/')) != NULL)
if (p != NULL
|| ((p = vim_strrchr(fname, '\\')) != NULL)
|| (((p = vim_strchr(fname, ':')) != NULL) && ++only_drive))
#else
if ((p = vim_strrchr(fname, '/')) != NULL)
if (p != NULL)
#endif
{
#ifdef HAVE_FCHDIR

View File

@@ -12,7 +12,8 @@ ifndef VIMRUNTIME
VIMRUNTIME = ../../runtime
endif
LANGUAGES = af \
LANGUAGES = \
af \
ca \
cs \
cs.cp1250 \
@@ -25,12 +26,16 @@ LANGUAGES = af \
ga \
it \
ja \
ja.euc-jp \
ja.sjis \
ko \
ko.UTF-8 \
nb \
nl \
no \
pl \
pl.cp1250 \
pl.UTF-8 \
pt_BR \
ru \
ru.cp1251 \
@@ -41,12 +46,13 @@ LANGUAGES = af \
uk.cp1251 \
vi \
zh_CN \
zh_CN.UTF-8 \
zh_CN.cp936 \
zh_CN.UTF-8 \
zh_TW \
zh_TW.UTF-8 \
MOFILES = af.mo \
MOFILES = \
af.mo \
ca.mo \
cs.cp1250.mo \
cs.mo \
@@ -58,13 +64,17 @@ MOFILES = af.mo \
fr.mo \
ga.mo \
it.mo \
ja.euc-jp.mo \
ja.mo \
ja.sjis.mo \
ko.mo \
ko.UTF-8.mo \
nb.mo \
nl.mo \
no.mo \
pl.cp1250.mo \
pl.mo \
pl.UTF-8.mo \
pt_BR.mo \
ru.cp1251.mo \
ru.mo \
@@ -74,11 +84,11 @@ MOFILES = af.mo \
uk.cp1251.mo \
uk.mo \
vi.mo \
zh_CN.UTF-8.mo \
zh_CN.cp936.mo \
zh_CN.mo \
zh_TW.UTF-8.mo \
zh_CN.cp936.mo \
zh_CN.UTF-8.mo \
zh_TW.mo \
zh_TW.UTF-8.mo \
PACKAGE = vim
@@ -135,6 +145,8 @@ install: $(MOFILES)
$(CP) $$TARGET.mo $(VIMRUNTIME)/lang/$$TARGET/LC_MESSAGES/$(PACKAGE).mo ; \
done
install-all: install
clean:
$(RM) *.mo
$(RM) *.pot

View File

@@ -10,10 +10,15 @@
# language (xx) and add it to the next three lines.
#
ifndef VIMRUNTIME
VIMRUNTIME = ..\..\runtime
endif
LANGUAGES = \
af \
ca \
cs \
cs.cp1250 \
de \
en_GB \
eo \
@@ -23,23 +28,35 @@ LANGUAGES = \
ga \
it \
ja \
ja.euc-jp \
ja.sjis \
ko \
ko.UTF-8 \
nb \
nl \
no \
pl \
pl.cp1250 \
pl.UTF-8 \
pt_BR \
ru \
ru.cp1251 \
sk \
sk.cp1250 \
sv \
uk \
uk.cp1251 \
vi \
zh_CN \
zh_CN.UTF-8\
zh_CN.cp936 \
zh_CN.UTF-8 \
zh_TW \
zh_TW.UTF-8 \
MOFILES = \
af.mo \
ca.mo \
cs.cp1250.mo \
cs.mo \
de.mo \
en_GB.mo \
@@ -49,20 +66,31 @@ MOFILES = \
fr.mo \
ga.mo \
it.mo \
ja.euc-jp.mo \
ja.mo \
ja.sjis.mo \
ko.mo \
ko.UTF-8.mo \
nb.mo \
nl.mo \
no.mo \
pl.cp1250.mo \
pl.mo \
pl.UTF-8.mo \
pt_BR.mo \
ru.cp1251.mo \
ru.mo \
sk.cp1250.mo \
sk.mo \
sv.mo \
uk.cp1251.mo \
uk.mo \
vi.mo \
zh_CN.UTF-8.mo \
zh_CN.mo \
zh_TW.UTF-8.mo \
zh_CN.cp936.mo \
zh_CN.UTF-8.mo \
zh_TW.mo \
zh_TW.UTF-8.mo \
PACKAGE = vim
@@ -72,9 +100,9 @@ PACKAGE = vim
#GETTEXT_PATH = C:/gettext-0.10.35-w32/win32/Release/
#GETTEXT_PATH = C:/cygwin/bin/
MSGFMT = $(GETTEXT_PATH)msgfmt
XGETTEXT = $(GETTEXT_PATH)xgettext
MSGMERGE = $(GETTEXT_PATH)msgmerge
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
MV = move
CP = copy
@@ -108,6 +136,11 @@ install:
$(MKD) $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
$(CP) $(LANGUAGE).mo $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES\$(PACKAGE).mo
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
clean:
$(RM) *.mo
$(RM) *.pot

View File

@@ -6,10 +6,15 @@
# Please read README_mvc.txt before using this file.
#
!ifndef VIMRUNTIME
VIMRUNTIME = ..\..\runtime
!endif
LANGUAGES = \
af \
ca \
cs \
cs.cp1250 \
de \
en_GB \
eo \
@@ -19,16 +24,27 @@ LANGUAGES = \
ga \
it \
ja \
ja.euc-jp \
ja.sjis \
ko \
ko.UTF-8 \
nb \
nl \
no \
pl \
pl.cp1250 \
pl.UTF-8 \
pt_BR \
ru \
ru.cp1251 \
sk \
sk.cp1250 \
sv \
uk \
uk.cp1251 \
vi \
zh_CN \
zh_CN.cp936 \
zh_CN.UTF-8 \
zh_TW \
zh_TW.UTF-8 \
@@ -36,6 +52,7 @@ LANGUAGES = \
MOFILES = \
af.mo \
ca.mo \
cs.cp1250.mo \
cs.mo \
de.mo \
en_GB.mo \
@@ -45,27 +62,38 @@ MOFILES = \
fr.mo \
ga.mo \
it.mo \
ja.euc-jp.mo \
ja.mo \
ja.sjis.mo \
ko.mo \
ko.UTF-8.mo \
nb.mo \
nl.mo \
no.mo \
pl.cp1250.mo \
pl.mo \
pl.UTF-8.mo \
pt_BR.mo \
ru.cp1251.mo \
ru.mo \
sk.cp1250.mo \
sk.mo \
sv.mo \
uk.cp1251.mo \
uk.mo \
vi.mo \
zh_CN.UTF-8.mo \
zh_CN.mo \
zh_TW.UTF-8.mo \
zh_CN.cp936.mo \
zh_CN.UTF-8.mo \
zh_TW.mo \
zh_TW.UTF-8.mo \
PACKAGE = vim
# Correct the following line for the directory where gettext et al is installed
GETTEXT_PATH = H:\gettext.0.14.4\bin
MSGFMT = $(GETTEXT_PATH)\msgfmt
MSGFMT = $(GETTEXT_PATH)\msgfmt -v
XGETTEXT = $(GETTEXT_PATH)\xgettext
MSGMERGE = $(GETTEXT_PATH)\msgmerge
@@ -83,6 +111,7 @@ INSTALLDIR = $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
.SUFFIXES: .po .mo .pot
.po.mo:
set OLD_PO_FILE_INPUT=yes
$(MSGFMT) -o $@ $<
all: $(MOFILES)
@@ -91,9 +120,13 @@ files:
$(LS) $(LSFLAGS) ..\*.c ..\if_perl.xs ..\globals.h > .\files
first_time: files
set OLD_PO_FILE_INPUT=yes
set OLD_PO_FILE_OUTPUT=yes
$(XGETTEXT) --default-domain=$(LANGUAGE) --add-comments --keyword=_ --keyword=N_ --files-from=.\files
$(LANGUAGES): files
set OLD_PO_FILE_INPUT=yes
set OLD_PO_FILE_OUTPUT=yes
$(XGETTEXT) --default-domain=$(PACKAGE) --add-comments --keyword=_ --keyword=N_ --files-from=.\files
$(MV) $(PACKAGE).po $(PACKAGE).pot
$(CP) $@.po $@.po.orig
@@ -105,6 +138,10 @@ install:
if not exist $(INSTALLDIR) $(MKD) $(INSTALLDIR)
$(CP) $(LANGUAGE).mo $(INSTALLDIR)\$(PACKAGE).mo
install-all: all
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
clean:
$(RM) *.mo
$(RM) *.pot

View File

@@ -86,6 +86,9 @@ the same as in the Unix case, only the commands change):
This will create the xx\LC_MESSAGES directory (if it does not exist) and
will copy vim.po to it.
You can also use the following command to install all languages:
make -f Make_ming.mak install-all
(6) Another extra step ;-)). The command:

View File

@@ -111,6 +111,9 @@ Install your translation with the following command:
This will create the xx\LC_MESSAGES directory in runtime\lang if it does not
already exist.
You can also use the following command to install all languages:
nmake -f make_mvc.mak install-all
vim:tw=78:

View File

@@ -61,5 +61,6 @@ char_u *sign_typenr2name __ARGS((int typenr));
void free_signs __ARGS((void));
char_u *get_sign_name __ARGS((expand_T *xp, int idx));
void set_context_in_sign_cmd __ARGS((expand_T *xp, char_u *arg));
void ex_smile __ARGS((exarg_T *eap));
void ex_drop __ARGS((exarg_T *eap));
/* vim: set ft=c : */

View File

@@ -0,0 +1,5 @@
/* auto/gui_gtk_gresources.c */
GResource *gui_gtk_get_resource __ARGS((void));
void gui_gtk_register_resource __ARGS((void));
void gui_gtk_unregister_resource __ARGS((void));
/* vim: set ft=c : */

View File

@@ -578,6 +578,7 @@ last_pat_prog(regmatch)
* if (options & SEARCH_KEEP) keep previous search pattern
* if (options & SEARCH_FOLD) match only once in a closed fold
* if (options & SEARCH_PEEK) check for typed char, cancel search
* if (options & SEARCH_COL) start at pos->col instead of zero
*
* Return FAIL (zero) for failure, non-zero for success.
* When FEAT_EVAL is defined, returns the index of the first matching
@@ -599,6 +600,7 @@ searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm)
{
int found;
linenr_T lnum; /* no init to shut up Apollo cc */
colnr_T col;
regmmatch_T regmatch;
char_u *ptr;
colnr_T matchcol;
@@ -711,12 +713,14 @@ searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm)
/*
* Look for a match somewhere in line "lnum".
*/
col = at_first_line && (options & SEARCH_COL) ? pos->col
: (colnr_T)0;
nmatched = vim_regexec_multi(&regmatch, win, buf,
lnum, (colnr_T)0,
lnum, col,
#ifdef FEAT_RELTIME
tm
tm
#else
NULL
NULL
#endif
);
/* Abort searching on an error (e.g., out of stack). */
@@ -1098,6 +1102,7 @@ set_vv_searchforward()
/*
* Return the number of the first subpat that matched.
* Return zero if none of them matched.
*/
static int
first_submatch(rp)

185
src/testdir/Make_all.mak Normal file
View File

@@ -0,0 +1,185 @@
#
# Common Makefile, defines the list of tests to run.
#
# The first script creates small.vim.
SCRIPTS_FIRST = \
test1.out
# Tests that run on all systems.
SCRIPTS_ALL = \
test3.out \
test4.out \
test5.out \
test6.out \
test7.out \
test8.out \
test9.out \
test13.out \
test14.out \
test15.out \
test18.out \
test19.out \
test20.out \
test21.out \
test22.out \
test23.out \
test24.out \
test26.out \
test28.out \
test29.out \
test31.out \
test33.out \
test34.out \
test35.out \
test36.out \
test37.out \
test38.out \
test39.out \
test40.out \
test41.out \
test42.out \
test43.out \
test44.out \
test45.out \
test46.out \
test47.out \
test48.out \
test51.out \
test53.out \
test55.out \
test56.out \
test57.out \
test60.out \
test61.out \
test62.out \
test63.out \
test64.out \
test65.out \
test66.out \
test67.out \
test68.out \
test69.out \
test70.out \
test71.out \
test73.out \
test74.out \
test75.out \
test76.out \
test77.out \
test79.out \
test80.out \
test81.out \
test82.out \
test84.out \
test88.out \
test90.out \
test91.out \
test92.out \
test93.out \
test94.out \
test95.out \
test96.out \
test98.out \
test99.out \
test101.out \
test102.out \
test103.out \
test104.out \
test105.out \
test106.out \
test107.out \
test_argument_0count.out \
test_argument_count.out \
test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
test_charsearch.out \
test_close_count.out \
test_command_count.out \
test_comparators.out \
test_erasebackword.out \
test_eval.out \
test_fixeol.out \
test_increment.out \
test_insertcount.out \
test_listchars.out \
test_listlbr.out \
test_listlbr_utf8.out \
test_mapping.out \
test_marks.out \
test_match_conceal.out \
test_nested_function.out \
test_options.out \
test_perl.out \
test_qf_title.out \
test_ruby.out \
test_search_mbyte.out \
test_set.out \
test_signs.out \
test_tagcase.out \
test_textobjects.out \
test_utf8.out \
test_writefile.out
# Tests that run on most systems, but not on Amiga.
SCRIPTS_MORE1 = \
test11.out \
test52.out \
test85.out \
test86.out \
test87.out
# Tests that run on most systems, but not on Amiga and DOS/Windows.
SCRIPTS_MORE2 = \
test2.out \
test10.out \
test12.out \
test25.out \
test27.out \
test49.out \
test97.out
# Tests that run on most systems, but not MingW and Cygwin.
SCRIPTS_MORE3 = \
test54.out
# Tests that run on most systems, but not on VMS
SCRIPTS_MORE4 = \
test17.out \
test30.out \
test32.out \
test58.out \
test59.out \
test72.out \
test78.out \
test83.out \
test89.out
# Tests specifically for MS-Windows.
SCRIPTS_WIN32 = test50.out
# Tests for the GUI.
SCRIPTS_GUI = test16.out
# Tests using runtest.vim.vim.
# Keep test_alot.res as the last one, sort the others.
NEW_TESTS = test_assert.res \
test_cdo.res \
test_viml.res \
test_alot.res
# Explicit dependencies.
test49.out: test49.vim
test60.out: test60.vim

View File

@@ -5,6 +5,10 @@
VIMPROG = /vim
default: nongui
include Make_all.mak
# These tests don't work (yet):
# test2 "\\tmp" doesn't work
# test10 'errorformat' is different
@@ -16,64 +20,14 @@ VIMPROG = /vim
# test85 no Lua interface
# test86, 87 no Python interface
SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test7.out test8.out test9.out \
test13.out test14.out test15.out test17.out \
test18.out test19.out test20.out test21.out test22.out \
test23.out test24.out test26.out \
test28.out test29.out test30.out test31.out test32.out \
test33.out test34.out test35.out test36.out test37.out \
test38.out test39.out test40.out test41.out test42.out \
test43.out test44.out test45.out test46.out test47.out \
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test101.out test102.out test103.out \
test104.out test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_cdo.out \
test_changelist.out \
test_charsearch.out \
test_close_count.out \
test_command_count.out \
test_comparators.out \
test_erasebackword.out \
test_eval.out \
test_fixeol.out \
test_increment.out \
test_insertcount.out \
test_listchars.out \
test_listlbr.out \
test_listlbr_utf8.out \
test_mapping.out \
test_marks.out \
test_match_conceal.out \
test_nested_function.out \
test_options.out \
test_perl.out \
test_qf_title.out \
test_ruby.out \
test_search_mbyte.out \
test_set.out \
test_signs.out \
test_tagcase.out \
test_textobjects.out \
test_utf8.out \
test_writefile.out
SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE3) $(SCRIPTS_MORE4)
# Must run test1 first to create small.vim.
$(SCRIPTS) $(SCRIPTS_GUI) $(NEW_TESTS): $(SCRIPTS_FIRST)
.SUFFIXES: .in .out
nongui: /tmp $(SCRIPTS)
nongui: /tmp $(SCRIPTS_FIRST) $(SCRIPTS)
csh -c echo ALL DONE
clean:
@@ -91,138 +45,5 @@ clean:
/tmp:
makedir /tmp
# Manx requires all dependencies...
test1.out: test1.in
test2.out: test2.in
test3.out: test3.in
test4.out: test4.in
test5.out: test5.in
test6.out: test6.in
test7.out: test7.in
test8.out: test8.in
test9.out: test9.in
test10.out: test10.in
test11.out: test11.in
test12.out: test12.in
test13.out: test13.in
test14.out: test14.in
test15.out: test15.in
test16.out: test16.in
test17.out: test17.in
test18.out: test18.in
test19.out: test19.in
test20.out: test20.in
test21.out: test21.in
test22.out: test22.in
test23.out: test23.in
test24.out: test24.in
test25.out: test25.in
test26.out: test26.in
test27.out: test27.in
test28.out: test28.in
test29.out: test29.in
test30.out: test30.in
test31.out: test31.in
test32.out: test32.in
test33.out: test33.in
test34.out: test34.in
test35.out: test35.in
test36.out: test36.in
test37.out: test37.in
test38.out: test38.in
test39.out: test39.in
test40.out: test40.in
test41.out: test41.in
test42.out: test42.in
test43.out: test43.in
test44.out: test44.in
test45.out: test45.in
test46.out: test46.in
test47.out: test47.in
test48.out: test48.in
test51.out: test51.in
test53.out: test53.in
test54.out: test54.in
test55.out: test55.in
test56.out: test56.in
test57.out: test57.in
test58.out: test58.in
test59.out: test59.in
test60.out: test60.in
test61.out: test61.in
test62.out: test62.in
test63.out: test63.in
test64.out: test64.in
test65.out: test65.in
test66.out: test66.in
test67.out: test67.in
test68.out: test68.in
test69.out: test69.in
test70.out: test70.in
test71.out: test71.in
test72.out: test72.in
test73.out: test73.in
test74.out: test74.in
test75.out: test75.in
test76.out: test76.in
test77.out: test77.in
test78.out: test78.in
test79.out: test79.in
test80.out: test80.in
test81.out: test81.in
test82.out: test82.in
test83.out: test83.in
test84.out: test84.in
test88.out: test88.in
test89.out: test89.in
test90.out: test90.in
test91.out: test91.in
test92.out: test92.in
test93.out: test93.in
test94.out: test94.in
test95.out: test95.in
test96.out: test96.in
test97.out: test97.in
test98.out: test98.in
test99.out: test99.in
test101.out: test101.in
test102.out: test102.in
test103.out: test103.in
test104.out: test104.in
test105.out: test105.in
test106.out: test106.in
test107.out: test107.in
test_argument_0count.out: test_argument_0count.in
test_argument_count.out: test_argument_count.in
test_autocmd_option.out: test_autocmd_option.in
test_autoformat_join.out: test_autoformat_join.in
test_breakindent.out: test_breakindent.in
test_cdo.out: test_cdo.in
test_changelist.out: test_changelist.in
test_charsearch.out: test_charsearch.in
test_close_count.out: test_close_count.in
test_command_count.out: test_command_count.in
test_comparators.out: test_comparators.in
test_erasebackword.out: test_erasebackword.in
test_eval.out: test_eval.in
test_increment.out: test_increment.in
test_fixeol.out: test_fixeol.in
test_insertcount.out: test_insertcount.in
test_listchars.out: test_listchars.in
test_listlbr.out: test_listlbr.in
test_listlbr_utf8.out: test_listlbr_utf8.in
test_mapping.out: test_mapping.in
test_marks.out: test_marks.in
test_match_conceal.out: test_match_conceal.in
test_nested_function.out: test_nested_function.in
test_options.out: test_options.in
test_perl.out: test_perl.in
test_qf_title.out: test_qf_title.in
test_ruby.out: test_ruby.in
test_search_mbyte.out: test_search_mbyte.in
test_set.out: test_set.in
test_signs.out: test_signs.in
test_tagcase.out: test_tagcase.in
test_textobjects.out: test_textobjects.in
test_utf8.out: test_utf8.in
test_writefile.out: test_writefile.in
# Manx requires all dependencies, but we stopped updating them.
# Delete the .out file(s) to run test(s).

View File

@@ -5,89 +5,35 @@
VIMPROG = ..\\vim
default: nongui
!include Make_all.mak
# Omitted:
# test2 "\\tmp" doesn't work.
# test10 'errorformat' is different
# test12 can't unlink a swap file
# test25 uses symbolic link
# test27 can't edit file with "*" in file name
# test49 fails in various ways
# test97 \{ and \$ are not escaped characters.
SCRIPTS16 = test1.out test19.out test20.out test22.out \
test23.out test24.out test28.out test29.out \
test35.out test36.out test43.out \
test44.out test45.out test46.out test47.out \
test48.out test51.out test53.out test54.out \
test55.out test56.out test57.out test58.out test59.out \
test60.out test61.out test62.out test63.out test64.out
SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE1) $(SCRIPTS_MORE3) $(SCRIPTS_MORE4)
SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test8.out test9.out test11.out test13.out test14.out \
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test101.out test102.out test103.out test104.out \
test105.out test106.out test107.out\
test_argument_0count.out \
test_argument_count.out \
test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_cdo.out \
test_changelist.out \
test_charsearch.out \
test_close_count.out \
test_command_count.out \
test_comparators.out \
test_erasebackword.out \
test_eval.out \
test_fixeol.out \
test_increment.out \
test_insertcount.out \
test_listchars.out \
test_listlbr.out \
test_listlbr_utf8.out \
test_mapping.out \
test_marks.out \
test_match_conceal.out \
test_nested_function.out \
test_options.out \
test_perl.out \
test_qf_title.out \
test_ruby.out \
test_search_mbyte.out \
test_set.out \
test_signs.out \
test_tagcase.out \
test_textobjects.out \
test_utf8.out \
test_writefile.out
SCRIPTS32 = test50.out test70.out
SCRIPTS_GUI = test16.out
TEST_OUTFILES = $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) $(SCRIPTS_GUI)
TEST_OUTFILES = $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_WIN32) $(SCRIPTS_GUI)
DOSTMP = dostmp
DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test)
DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in)
.SUFFIXES: .in .out
.SUFFIXES: .in .out .res .vim
nongui: nolog $(SCRIPTS16) $(SCRIPTS) report
nongui: nolog $(SCRIPTS_FIRST) $(SCRIPTS) newtests report
small: nolog report
gui: nolog $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) report
gui: nolog $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_GUI) newtests report
win32: nolog $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) report
win32: nolog $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_WIN32) newtests report
# Copy the input files to dostmp, changing the fileformat to dos.
$(DOSTMP_INFILES): $(*B).in
@@ -118,6 +64,11 @@ $(TEST_OUTFILES): $(DOSTMP)\$(*B).in
& echo $* FAILED >> test.log ) \
else ( move /y test.out $*.out )
# Must run test1 first to create small.vim.
# This rule must come after the one that copies the input files to dostmp to
# allow for running an individual test.
$(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS_WIN32) $(NEW_TESTS): $(SCRIPTS_FIRST)
report:
@echo ""
@echo Test results:
@@ -127,6 +78,7 @@ report:
clean:
-del *.out
-del *.failed
-del *.res
-if exist $(DOSTMP) rd /s /q $(DOSTMP)
-if exist test.in del test.in
-if exist test.ok del test.ok
@@ -140,10 +92,12 @@ clean:
-if exist Xfind rd /s /q Xfind
-if exist viminfo del viminfo
-if exist test.log del test.log
-if exist messages del messages
-if exist benchmark.out del benchmark.out
nolog:
-if exist test.log del test.log
-if exist messages del messages
benchmark:
bench_re_freeze.out
@@ -152,3 +106,12 @@ bench_re_freeze.out: bench_re_freeze.vim
-if exist benchmark.out del benchmark.out
$(VIMPROG) -u dos.vim -U NONE --noplugin $*.in
@IF EXIST benchmark.out ( type benchmark.out )
# New style of tests uses Vim script with assert calls. These are easier
# to write and a lot easier to read and debug.
# Limitation: Only works with the +eval feature.
newtests: $(NEW_TESTS)
.vim.res:
$(VIMPROG) -u NONE -S runtest.vim $*.vim

View File

@@ -24,86 +24,32 @@ endif
VIMPROG = ..$(DIRSLASH)vim
default: vimall
include Make_all.mak
# Omitted:
# test2 "\\tmp" doesn't work.
# test10 'errorformat' is different
# test12 can't unlink a swap file
# test25 uses symbolic link
# test27 can't edit file with "*" in file name
# test97 \{ and \$ are not escaped characters.
# test54 doesn't work yet
# test97 \{ and \$ are not escaped characters
SCRIPTS16 = test1.out test19.out test20.out test22.out \
test23.out test24.out test28.out test29.out \
test35.out test36.out test43.out \
test44.out test45.out test46.out test47.out \
test48.out test51.out test53.out \
test55.out test56.out test57.out test58.out test59.out \
test60.out test61.out test62.out test63.out test64.out
# Had to remove test54 which doesn't work yet.
# test54.out
SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test8.out test9.out test11.out test13.out test14.out \
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test101.out test102.out test103.out test104.out \
test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_cdo.out \
test_changelist.out \
test_charsearch.out \
test_close_count.out \
test_command_count.out \
test_comparators.out \
test_erasebackword.out \
test_eval.out \
test_fixeol.out \
test_increment.out \
test_insertcount.out \
test_listchars.out \
test_listlbr.out \
test_listlbr_utf8.out \
test_mapping.out \
test_marks.out \
test_match_conceal.out \
test_nested_function.out \
test_options.out \
test_perl.out \
test_qf_title.out \
test_ruby.out \
test_search_mbyte.out \
test_set.out \
test_signs.out \
test_tagcase.out \
test_textobjects.out \
test_utf8.out \
test_writefile.out
SCRIPTS32 = test50.out test70.out
SCRIPTS_GUI = test16.out
SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE1) $(SCRIPTS_MORE4) $(SCRIPTS_WIN32)
SCRIPTS_BENCH = bench_re_freeze.out
# Must run test1 first to create small.vim.
$(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS_WIN32) $(NEW_TESTS): $(SCRIPTS_FIRST)
.SUFFIXES: .in .out
vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32)
vimall: fixff $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS_WIN32)
echo ALL DONE
nongui: fixff $(SCRIPTS16) $(SCRIPTS)
nongui: fixff $(SCRIPTS_FIRST) $(SCRIPTS)
echo ALL DONE
benchmark: $(SCRIPTS_BENCH)
@@ -111,10 +57,10 @@ benchmark: $(SCRIPTS_BENCH)
small:
echo ALL DONE
gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI)
gui: fixff $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_GUI)
echo ALL DONE
win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32)
win32: fixff $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_WIN32)
echo ALL DONE
fixff:

View File

@@ -1,10 +1,17 @@
#
# Makefile to run all tests for Vim, on OS/2
#
# OUTDATED, probably doesn't work.
#
# Requires a set of Unix tools: echo, diff, etc.
#
VIMPROG = ../vim.exe
default: all
include Make_all.mak
# Omitted:
# test2 "\\tmp" doesn't work.
# test10 'errorformat' is different
@@ -17,69 +24,19 @@ VIMPROG = ../vim.exe
# test86, 87 no Python interface
# test97 \{ and \$ are not escaped characters.
SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test7.out test8.out test9.out \
test13.out test14.out test15.out test17.out \
test18.out test19.out test20.out test21.out test22.out \
test23.out test24.out test26.out \
test28.out test29.out test30.out test31.out test32.out \
test33.out test34.out test35.out test36.out test37.out \
test38.out test39.out test40.out test41.out test42.out \
test43.out test44.out test45.out test46.out test47.out \
test48.out test51.out test53.out test54.out test55.out \
test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out test99.out \
test101.out test102.out test103.out test104.out \
test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_cdo.out \
test_changelist.out \
test_charsearch.out \
test_close_count.out \
test_command_count.out \
test_comparators.out \
test_erasebackword.out \
test_eval.out \
test_fixeol.out \
test_increment.out \
test_insertcount.out \
test_listchars.out \
test_listlbr.out \
test_listlbr_utf8.out \
test_mapping.out \
test_marks.out \
test_match_conceal.out \
test_nested_function.out \
test_options.out \
test_perl.out \
test_qf_title.out \
test_ruby.out \
test_search_mbyte.out \
test_set.out \
test_signs.out \
test_tagcase.out \
test_textobjects.out \
test_utf8.out \
test_writefile.out
SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE3) $(SCRIPTS_MORE4)
SCRIPTS_BENCH = bench_re_freeze.out
.SUFFIXES: .in .out
all: /tmp $(SCRIPTS)
all: /tmp $(SCRIPTS_FIRST) $(SCRIPTS)
@echo ALL DONE
$(SCRIPTS): $(VIMPROG)
$(SCRIPTS_FIRST) $(SCRIPTS): $(VIMPROG)
# Must run test1 first to create small.vim.
$(SCRIPTS): $(SCRIPTS_FIRST)
benchmark: $(SCRIPTS_BENCH)

View File

@@ -4,7 +4,7 @@
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
# Last change: 2015 Dec 03
# Last change: 2015 Dec 28
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
@@ -74,62 +74,14 @@
VIMPROG = <->vim.exe
default : all
# This probably doesn't work, please fix.
.INCLUDE Make_all.mak
.SUFFIXES : .out .in
SCRIPT = test1.out test2.out test3.out test4.out test5.out \
test6.out test7.out test8.out test9.out test10a.out\
test13.out test14.out test15.out \
test18.out test19.out test20.out test21.out test22.out \
test23.out test24.out test26.out \
test28.out test29.out test30.out test31.out test32.out \
test33.out test34.out test35.out test36.out test37.out \
test38.out test39.out test40.out test41.out test42.out \
test43.out test44.out test45.out test46.out \
test48.out test49.out test51.out test53.out test54.out \
test55.out test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out \
test71.out test72.out test74.out test75.out test76.out \
test77a.out test78.out test79.out test80.out test81.out \
test82.out test84.out test88.out test89.out \
test90.out test91.out test92.out test93.out test94.out \
test95.out test96.out test98.out test99.out \
test101.out test103.out test104.out \
test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_cdo.out \
test_changelist.out \
test_charsearch.out \
test_close_count.out \
test_command_count.out \
test_comparators.out \
test_erasebackword.out \
test_eval.out \
test_fixeol.out \
test_increment.out \
test_insertcount.out \
test_listchars.out \
test_listlbr.out \
test_listlbr_utf8.out \
test_mapping.out \
test_marks.out \
test_match_conceal.out \
test_nested_function.out \
test_options.out \
test_perl.out \
test_qf_title.out \
test_ruby.out \
test_search_mbyte.out \
test_set.out \
test_signs.out \
test_tagcase.out \
test_textobjects.out \
test_utf8.out \
test_writefile.out
SCRIPT = $(SCRIPTS_ALL) $(SCRIPTS_MORE3)
# Known problems:
# test17: ?
@@ -220,7 +172,7 @@ SCRIPT_PYTHON = test86.out test87.out
-@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.*
-@ 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) \
all : clean nolog $(SCRIPTS_FIRST) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_ODS5) $(SCRIPT_GZIP) \
$(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_CKSUM) $(SCRIPT_ICONV) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog
-@ write sys$output " "
-@ write sys$output "-----------------------------------------------"

View File

@@ -14,75 +14,26 @@ SCRIPTSOURCE = ../../runtime
# This will make testing about 10 times as slow.
# VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --log-file=valgrind.$*
default: nongui
SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
test7.out test8.out test9.out test10.out test11.out \
test12.out test13.out test14.out test15.out test17.out \
test18.out test19.out test20.out test21.out test22.out \
test23.out test24.out test25.out test26.out test27.out \
test28.out test29.out test30.out test31.out test32.out \
test33.out test34.out test35.out test36.out test37.out \
test38.out test39.out test40.out test41.out test42.out \
test43.out test44.out test45.out test46.out test47.out \
test48.out test49.out test51.out test52.out test53.out \
test54.out test55.out test56.out test57.out test58.out \
test59.out test60.out test61.out test62.out test63.out \
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test101.out test102.out test103.out \
test104.out test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_cdo.out \
test_changelist.out \
test_charsearch.out \
test_close_count.out \
test_command_count.out \
test_comparators.out \
test_erasebackword.out \
test_eval.out \
test_fixeol.out \
test_increment.out \
test_insertcount.out \
test_listchars.out \
test_listlbr.out \
test_listlbr_utf8.out \
test_mapping.out \
test_marks.out \
test_match_conceal.out \
test_nested_function.out \
test_options.out \
test_perl.out \
test_qf_title.out \
test_ruby.out \
test_search_mbyte.out \
test_set.out \
test_signs.out \
test_tagcase.out \
test_textobjects.out \
test_utf8.out \
test_writefile.out
# The list of tests is common to all systems.
# This defines NEW_TESTS, SCRIPTS_ALL, SCRIPTS_MORE* and SCRIPTS_GUI.
include Make_all.mak
NEW_TESTS = test_assert.res \
test_alot.res
SCRIPTS_GUI = test16.out
SCRIPTS = $(SCRIPTS_ALL) \
$(SCRIPTS_MORE1) \
$(SCRIPTS_MORE2) \
$(SCRIPTS_MORE3) \
$(SCRIPTS_MORE4)
SCRIPTS_BENCH = bench_re_freeze.out
.SUFFIXES: .in .out .res .vim
nongui: nolog $(SCRIPTS) newtests report
nongui: nolog $(SCRIPTS_FIRST) $(SCRIPTS) newtests report
gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) newtests report
gui: nolog $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_GUI) newtests report
benchmark: $(SCRIPTS_BENCH)
@@ -94,14 +45,17 @@ report:
else echo ALL DONE; \
fi"
$(SCRIPTS) $(SCRIPTS_GUI) $(NEW_TESTS): $(VIMPROG)
$(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_GUI) $(NEW_TESTS): $(VIMPROG)
# Must run test1 first to create small.vim.
$(SCRIPTS) $(SCRIPTS_GUI) $(NEW_TESTS): $(SCRIPTS_FIRST)
RM_ON_RUN = test.out X* viminfo
RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out
RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE); export VIMRUNTIME; $(VALGRIND) $(VIMPROG) -f -u unix.vim -U NONE --noplugin -s dotest.in
clean:
-rm -rf *.out *.failed *.res *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.*
-rm -rf *.out *.failed *.res *.rej *.orig test.log messages $(RM_ON_RUN) $(RM_ON_START) valgrind.*
test1.out: test1.in
-rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize
@@ -148,10 +102,6 @@ test1.out: test1.in
fi"
-rm -rf X* test.ok viminfo
test49.out: test49.vim
test60.out: test60.vim
bench_re_freeze.out: bench_re_freeze.vim
-rm -rf benchmark.out $(RM_ON_RUN)
# Sleep a moment to avoid that the xterm title is messed up.
@@ -162,7 +112,7 @@ bench_re_freeze.out: bench_re_freeze.vim
@/bin/sh -c "if test -f benchmark.out; then cat benchmark.out; fi"
nolog:
-rm -f test.log
-rm -f test.log messages
# New style of tests uses Vim script with assert calls. These are easier
@@ -173,4 +123,4 @@ RUN_VIMTEST = VIMRUNTIME=$(SCRIPTSOURCE); export VIMRUNTIME; $(VALGRIND) $(VIMPR
newtests: $(NEW_TESTS)
.vim.res:
$(RUN_VIMTEST) -u runtest.vim $*.vim
$(RUN_VIMTEST) -u NONE -S runtest.vim $*.vim

View File

@@ -21,9 +21,7 @@
" It will be called after each Test_ function.
" Without the +eval feature we can't run these tests, bail out.
if 0
quit!
endif
so small.vim
" Check that the screen size is at least 24 x 80 characters.
if &lines < 24 || &columns < 80
@@ -35,10 +33,29 @@ if &lines < 24 || &columns < 80
cquit
endif
" For consistency run all tests with 'nocompatible' set.
" This also enables use of line continuation.
set nocp viminfo+=nviminfo
" Avoid stopping at the "hit enter" prompt
set nomore
" Output all messages in English.
lang mess C
" Source the test script. First grab the file name, in case the script
" navigates away.
let testname = expand('%')
source %
let done = 0
let fail = 0
let errors = []
let messages = []
try
source %
catch
let fail += 1
call add(errors, 'Caught exception: ' . v:exception . ' @ ' . v:throwpoint)
endtry
" Locate Test_ functions and execute them.
redir @q
@@ -46,14 +63,12 @@ function /^Test_
redir END
let tests = split(substitute(@q, 'function \(\k*()\)', '\1', 'g'))
let done = 0
let fail = 0
let errors = []
for test in tests
if exists("*SetUp")
call SetUp()
endif
call add(messages, 'Executing ' . test)
let done += 1
try
exe 'call ' . test
@@ -89,9 +104,20 @@ if len(errors) > 0
write
endif
echo 'Executed ' . done . (done > 1 ? ' tests': ' test')
let message = 'Executed ' . done . (done > 1 ? ' tests': ' test')
echo message
call add(messages, message)
if fail > 0
echo fail . ' FAILED'
let message = fail . ' FAILED'
echo message
call add(messages, message)
endif
" Append messages to "messages"
split messages
call append(line('$'), '')
call append(line('$'), 'From ' . testname . ':')
call append(line('$'), messages)
write
qall!

View File

@@ -44,6 +44,10 @@ x?.
x:" k
:let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g'
:@w
:"
:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב
@@ -80,3 +84,4 @@ h AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔ
i aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑẕ
j 0123❤x
k combinations
l äö üᾱ̆́

View File

@@ -18,6 +18,7 @@ h AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔ
i aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑ
j 012❤
k œ̄ṣ́m̥̄ᾱ̆́
l ä ö ü ᾱ̆́
ב
בג
א

View File

@@ -8,7 +8,9 @@ STARTTEST
:se nocp nomore viminfo+=nviminfo
:lang mess C
:so test49.vim
GGGGGGGGGGGGGG"rp:.-,$w! test.out
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy
:redir => funclist

View File

@@ -1,10 +1,4 @@
Results of test49.vim:
*** Test 1: OK (34695)
*** Test 2: OK (34695)
*** Test 3: OK (1384648195)
*** Test 4: OK (32883)
*** Test 5: OK (32883)
*** Test 6: OK (603978947)
*** Test 7: OK (90563)
*** Test 8: OK (562493431)
*** Test 9: OK (363)

View File

@@ -1,6 +1,6 @@
" Vim script language tests
" Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
" Last Change: 2015 Sep 25
" Last Change: 2015 Dec 30
"-------------------------------------------------------------------------------
" Test environment {{{1
@@ -608,355 +608,8 @@ com! -nargs=1 -bar ExecAsScript call ExecAsScript(<f-args>)
" END_OF_TEST_ENVIRONMENT - do not change or remove this line.
"-------------------------------------------------------------------------------
" Test 1: :endwhile in function {{{1
"
" Detect if a broken loop is (incorrectly) reactivated by the
" :endwhile. Use a :return to prevent an endless loop, and make
" this test first to get a meaningful result on an error before other
" tests will hang.
"-------------------------------------------------------------------------------
XpathINIT
function! F()
Xpath 1 " X: 1
let first = 1
XloopINIT 2 8
while 1
Xloop 1 " X: 2 + 0 * 16
if first
Xloop 2 " X: 4 + 0 * 32
let first = 0
XloopNEXT
break
else
Xloop 4 " X: 0 + 0 * 64
return
endif
endwhile
endfunction
call F()
Xpath 128 " X: 128
function! G()
Xpath 256 " X: 256 + 0 * 2048
let first = 1
XloopINIT 512 8
while 1
Xloop 1 " X: 512 + 0 * 4096
if first
Xloop 2 " X: 1024 + 0 * 8192
let first = 0
XloopNEXT
break
else
Xloop 4 " X: 0 + 0 * 16384
return
endif
if 1 " unmatched :if
endwhile
endfunction
call G()
Xpath 32768 " X: 32768
Xcheck 34695
" Leave F and G for execution as scripts in the next test.
"-------------------------------------------------------------------------------
" Test 2: :endwhile in script {{{1
"
" Detect if a broken loop is (incorrectly) reactivated by the
" :endwhile. Use a :finish to prevent an endless loop, and place
" this test before others that might hang to get a meaningful result
" on an error.
"
" This test executes the bodies of the functions F and G from the
" previous test as script files (:return replaced by :finish).
"-------------------------------------------------------------------------------
XpathINIT
ExecAsScript F " X: 1 + 2 + 4
Xpath 128 " X: 128
ExecAsScript G " X: 256 + 512 + 1024
Xpath 32768 " X: 32768
unlet first
delfunction F
delfunction G
Xcheck 34695
"-------------------------------------------------------------------------------
" Test 3: :if, :elseif, :while, :continue, :break {{{1
"-------------------------------------------------------------------------------
XpathINIT
if 1
Xpath 1 " X: 1
let loops = 3
XloopINIT 2 512
while loops > -1 " main loop: loops == 3, 2, 1 (which breaks)
if loops <= 0
let break_err = 1
let loops = -1
else " 3: 2: 1:
Xloop 1 " X: 2 + 2*512 + 2*512*512
endif
if (loops == 2)
while loops == 2 " dummy loop
Xloop 2 " X: 4*512
let loops = loops - 1
continue " stop dummy loop
Xloop 4 " X: 0
endwhile
XloopNEXT
continue " continue main loop
Xloop 8 " X: 0
elseif (loops == 1)
let p = 1
while p " dummy loop
Xloop 16 " X: 32*512*512
let p = 0
break " break dummy loop
Xloop 32 " X: 0
endwhile
Xloop 64 " X: 128*512*512
unlet p
break " break main loop
Xloop 128 " X: 0
endif
if (loops > 0)
Xloop 256 " X: 512
endif
while loops == 3 " dummy loop
let loops = loops - 1
endwhile " end dummy loop
XloopNEXT
endwhile " end main loop
Xpath 268435456 " X: 1024*512*512
else
Xpath 536870912 " X: 0
endif
Xpath 1073741824 " X: 4096*512*512
if exists("break_err")
" The Xpath command does not accept 2^31 (negative); add explicitly:
let Xpath = Xpath + 2147483648 " X: 0
unlet break_err
endif
unlet loops
Xcheck 1384648195
"-------------------------------------------------------------------------------
" Test 4: :return {{{1
"-------------------------------------------------------------------------------
XpathINIT
function! F()
if 1
Xpath 1 " X: 1
let loops = 3
XloopINIT 2 16
while loops > 0 " 3: 2: 1:
Xloop 1 " X: 2 + 2*16 + 0*16*16
if (loops == 2)
Xloop 2 " X: 4*16
return
Xloop 4 " X: 0
endif
Xloop 8 " X: 16
let loops = loops - 1
XloopNEXT
endwhile
Xpath 8192 " X: 0
else
Xpath 16384 " X: 0
endif
endfunction
call F()
Xpath 32768 " X: 8*16*16*16
Xcheck 32883
" Leave F for execution as a script in the next test.
"-------------------------------------------------------------------------------
" Test 5: :finish {{{1
"
" This test executes the body of the function F from the previous test
" as a script file (:return replaced by :finish).
"-------------------------------------------------------------------------------
XpathINIT
ExecAsScript F " X: 1 + 2 + 2*16 + 4*16 + 16
Xpath 32768 " X: 32768
unlet loops
delfunction F
Xcheck 32883
"-------------------------------------------------------------------------------
" Test 6: Defining functions in :while loops {{{1
"
" Functions can be defined inside other functions. An inner function
" gets defined when the outer function is executed. Functions may
" also be defined inside while loops. Expressions in braces for
" defining the function name are allowed.
"-------------------------------------------------------------------------------
XpathINIT
if ExtraVim()
" The command CALL collects the argument of all its invocations in "calls"
" when used from a function (that is, when the global variable "calls" needs
" the "g:" prefix). This is to check that the function code is skipped when
" the function is defined. For inner functions, do so only if the outer
" function is not being executed.
"
let calls = ""
com! -nargs=1 CALL
\ if !exists("calls") && !exists("outer") |
\ let g:calls = g:calls . <args> |
\ endif
XloopINIT! 1 16
let i = 0
while i < 3
XloopNEXT
let i = i + 1
if i == 1
Xloop 1 " X: 1
function! F1(arg)
CALL a:arg
let outer = 1
XloopINIT! 4096 4
let j = 0
while j < 1
XloopNEXT
Xloop 1 " X: 4096
let j = j + 1
function! G1(arg)
CALL a:arg
endfunction
Xloop 2 " X: 8192
endwhile
endfunction
Xloop 2 " X: 2
continue
endif
Xloop 4 " X: 4 * (16 + 256)
function! F{i}(i, arg)
CALL a:arg
let outer = 1
XloopINIT! 16384 4
if a:i == 3
XloopNEXT
XloopNEXT
XloopNEXT
endif
let k = 0
while k < 3
XloopNEXT
Xloop 1 " X: 16384*(1+4+16+64+256+1024)
let k = k + 1
function! G{a:i}{k}(arg)
CALL a:arg
endfunction
Xloop 2 " X: 32768*(1+4+16+64+256+1024)
endwhile
endfunction
Xloop 8 " X: 8 * (16 + 256)
endwhile
if exists("*G1")
Xpath 67108864 " X: 0
endif
if exists("*F1")
call F1("F1")
if exists("*G1")
call G1("G1")
endif
endif
if exists("G21") || exists("G21") || exists("G21")
Xpath 134217728 " X: 0
endif
if exists("*F2")
call F2(2, "F2")
if exists("*G21")
call G21("G21")
endif
if exists("*G22")
call G22("G22")
endif
if exists("*G23")
call G23("G23")
endif
endif
if exists("G31") || exists("G31") || exists("G31")
Xpath 268435456 " X: 0
endif
if exists("*F3")
call F3(3, "F3")
if exists("*G31")
call G31("G31")
endif
if exists("*G32")
call G32("G32")
endif
if exists("*G33")
call G33("G33")
endif
endif
Xpath 536870912 " X: 536870912
if calls != "F1G1F2G21G22G23F3G31G32G33"
Xpath 1073741824 " X: 0
Xout "calls is" calls
endif
delfunction F1
delfunction G1
delfunction F2
delfunction G21
delfunction G22
delfunction G23
delfunction G31
delfunction G32
delfunction G33
endif
Xcheck 603978947
" Tests 1 to 6 were moved to test_viml.vim
let Xtest = 7
"-------------------------------------------------------------------------------
" Test 7: Continuing on errors outside functions {{{1

View File

@@ -370,7 +370,9 @@ EOF
:sleep 1
:py t.running = False
:py t.join()
:py l[0] = t.t > 7 # check if the background thread is working
:" Check if the background thread is working. Count should be 10, but on a
:" busy system (AppVeyor) it can be much lower.
:py l[0] = t.t > 4
:py del time
:py del threading
:py del t

View File

@@ -367,7 +367,9 @@ EOF
:sleep 1
:py3 t.running = False
:py3 t.join()
:py3 l[0] = t.t > 7 # check if the background thread is working
:" Check if the background thread is working. Count should be 10, but on a
:" busy system (AppVeyor) it can be much lower.
:py3 l[0] = t.t > 4
:py3 del time
:py3 del threading
:py3 del t

View File

@@ -36,6 +36,10 @@ x:" Test backwards search from a multi-byte char
x?.
x:let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g'
:@w
:"
:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב
@@ -66,3 +70,4 @@ h AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔ
i aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑẕ
j 0123❤x
k combinations
l äö üᾱ̆́

View File

@@ -18,6 +18,7 @@ h AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔ
i aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑ
j 012❤
k œ̄ṣ́m̥̄ᾱ̆́
l ä ö ü ᾱ̆́
ב
בג
א

View File

@@ -2,5 +2,6 @@
" This makes testing go faster, since Vim doesn't need to restart.
source test_lispwords.vim
source test_searchpos.vim
source test_sort.vim
source test_undolevels.vim

View File

@@ -1,107 +0,0 @@
Tests for the :cdo, :cfdo, :ldo and :lfdo commands
STARTTEST
:so small.vim
:if !has('quickfix') | e! test.ok | wq! test.out | endif
:call writefile(["Line1", "Line2", "Line3"], 'Xtestfile1')
:call writefile(["Line1", "Line2", "Line3"], 'Xtestfile2')
:call writefile(["Line1", "Line2", "Line3"], 'Xtestfile3')
:function RunTests(cchar)
: let nl="\n"
: enew
: " Try with an empty list
: exe a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " Populate the list and then try
: exe a:cchar . "getexpr ['non-error 1', 'Xtestfile1:1:3:Line1', 'non-error 2', 'Xtestfile2:2:2:Line2', 'non-error 3', 'Xtestfile3:3:1:Line3']"
: exe a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " Run command only on selected error lines
: enew
: exe "2,3" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " Boundary condition tests
: enew
: exe "1,1" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: enew
: exe "3" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " Range test commands
: enew
: exe "%" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: enew
: exe "1,$" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: enew
: exe a:cchar . 'prev'
: exe "." . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " Invalid error lines test
: enew
: exe "27" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe "4,5" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " Run commands from an unsaved buffer
: let v:errmsg=''
: enew
: setlocal modified
: exe "2,2" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: if v:errmsg =~# 'No write since last change'
: let g:result .= 'Unsaved file change test passed' . nl
: else
: let g:result .= 'Unsaved file change test failed' . nl
: endif
: " If the executed command fails, then the operation should be aborted
: enew!
: let subst_count = 0
: exe a:cchar . "do s/Line/xLine/ | let subst_count += 1"
: if subst_count == 1 && getline('.') == 'xLine1'
: let g:result .= 'Abort command on error test passed' . nl
: else
: let g:result .= 'Abort command on error test failed' . nl
: endif
: exe "2,2" . a:cchar . "do! let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " List with no valid error entries
: edit! +2 Xtestfile1
: exe a:cchar . "getexpr ['non-error 1', 'non-error 2', 'non-error 3']"
: exe a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe "2" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: let v:errmsg=''
: exe "%" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe "1,$" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe "." . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: let g:result .= v:errmsg
: " List with only one valid entry
: exe a:cchar . "getexpr ['Xtestfile3:3:1:Line3']"
: exe a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " Tests for :cfdo and :lfdo commands
: exe a:cchar . "getexpr ['non-error 1', 'Xtestfile1:1:3:Line1', 'Xtestfile1:2:1:Line2', 'non-error 2', 'Xtestfile2:2:2:Line2', 'non-error 3', 'Xtestfile3:2:3:Line2', 'Xtestfile3:3:1:Line3']"
: exe a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe "3" . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe "2,3" . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe "%" . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe "1,$" . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: exe a:cchar . 'pfile'
: exe "." . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
: " List with only one valid entry
: exe a:cchar . "getexpr ['Xtestfile2:2:5:Line2']"
: exe a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl"
:endfunction
:let result=''
:" Tests for the :cdo quickfix list command
:call RunTests('c')
:let result .= "\n"
:" Tests for the :ldo location list command
:call RunTests('l')
:edit! test.out
:0put =result
:wq!
ENDTEST

View File

@@ -1,66 +0,0 @@
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile1 1L 3C
Xtestfile3 3L 1C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile2 2L 2C
Unsaved file change test passed
Abort command on error test passed
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 2L 3C
Xtestfile3 2L 3C
Xtestfile2 2L 2C
Xtestfile3 2L 3C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 2L 3C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 2L 3C
Xtestfile2 2L 2C
Xtestfile2 2L 5C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile1 1L 3C
Xtestfile3 3L 1C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile2 2L 2C
Unsaved file change test passed
Abort command on error test passed
Xtestfile2 2L 2C
Xtestfile3 3L 1C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 2L 3C
Xtestfile3 2L 3C
Xtestfile2 2L 2C
Xtestfile3 2L 3C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 2L 3C
Xtestfile1 1L 3C
Xtestfile2 2L 2C
Xtestfile3 2L 3C
Xtestfile2 2L 2C
Xtestfile2 2L 5C

206
src/testdir/test_cdo.vim Normal file
View File

@@ -0,0 +1,206 @@
" Tests for the :cdo, :cfdo, :ldo and :lfdo commands
lang mess C
if !has('quickfix')
finish
endif
" Create the files used by the tests
function SetUp()
call writefile(["Line1", "Line2", "Line3"], 'Xtestfile1')
call writefile(["Line1", "Line2", "Line3"], 'Xtestfile2')
call writefile(["Line1", "Line2", "Line3"], 'Xtestfile3')
endfunction
" Remove the files used by the tests
function TearDown()
call delete('Xtestfile1')
call delete('Xtestfile2')
call delete('Xtestfile3')
endfunction
" Returns the current line in '<filename> <linenum>L <column>C' format
function GetRuler()
return expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C'
endfunction
" Tests for the :cdo and :ldo commands
function XdoTests(cchar)
enew
" Shortcuts for calling the cdo and ldo commands
let Xdo = a:cchar . 'do'
let Xgetexpr = a:cchar . 'getexpr'
let Xprev = a:cchar. 'prev'
let XdoCmd = Xdo . ' call add(l, GetRuler())'
" Try with an empty list
let l = []
exe XdoCmd
call assert_equal([], l)
" Populate the list and then try
exe Xgetexpr . " ['non-error 1', 'Xtestfile1:1:3:Line1', 'non-error 2', 'Xtestfile2:2:2:Line2', 'non-error 3', 'Xtestfile3:3:1:Line3']"
let l = []
exe XdoCmd
call assert_equal(['Xtestfile1 1L 3C', 'Xtestfile2 2L 2C', 'Xtestfile3 3L 1C'], l)
" Run command only on selected error lines
let l = []
enew
exe "2,3" . XdoCmd
call assert_equal(['Xtestfile2 2L 2C', 'Xtestfile3 3L 1C'], l)
" Boundary condition tests
let l = []
enew
exe "1,1" . XdoCmd
call assert_equal(['Xtestfile1 1L 3C'], l)
let l = []
enew
exe "3" . XdoCmd
call assert_equal(['Xtestfile3 3L 1C'], l)
" Range test commands
let l = []
enew
exe "%" . XdoCmd
call assert_equal(['Xtestfile1 1L 3C', 'Xtestfile2 2L 2C', 'Xtestfile3 3L 1C'], l)
let l = []
enew
exe "1,$" . XdoCmd
call assert_equal(['Xtestfile1 1L 3C', 'Xtestfile2 2L 2C', 'Xtestfile3 3L 1C'], l)
let l = []
enew
exe Xprev
exe "." . XdoCmd
call assert_equal(['Xtestfile2 2L 2C'], l)
let l = []
enew
exe "+" . XdoCmd
call assert_equal(['Xtestfile3 3L 1C'], l)
" Invalid error lines test
let l = []
enew
exe "silent! 27" . XdoCmd
exe "silent! 4,5" . XdoCmd
call assert_equal([], l)
" Run commands from an unsaved buffer
let v:errmsg=''
let l = []
enew
setlocal modified
exe "silent! 2,2" . XdoCmd
if v:errmsg !~# 'No write since last change'
call add(v:errors, 'Unsaved file change test failed')
endif
" If the executed command fails, then the operation should be aborted
enew!
let subst_count = 0
exe "silent!" . Xdo . " s/Line/xLine/ | let subst_count += 1"
if subst_count != 1 || getline('.') != 'xLine1'
call add(v:errors, 'Abort command on error test failed')
endif
let l = []
exe "2,2" . Xdo . "! call add(l, GetRuler())"
call assert_equal(['Xtestfile2 2L 2C'], l)
" List with no valid error entries
let l = []
edit! +2 Xtestfile1
exe Xgetexpr . " ['non-error 1', 'non-error 2', 'non-error 3']"
exe XdoCmd
call assert_equal([], l)
exe "silent! 2" . XdoCmd
call assert_equal([], l)
let v:errmsg=''
exe "%" . XdoCmd
exe "1,$" . XdoCmd
exe "." . XdoCmd
call assert_equal('', v:errmsg)
" List with only one valid entry
let l = []
exe Xgetexpr . " ['Xtestfile3:3:1:Line3']"
exe XdoCmd
call assert_equal(['Xtestfile3 3L 1C'], l)
endfunction
" Tests for the :cfdo and :lfdo commands
function XfdoTests(cchar)
enew
" Shortcuts for calling the cfdo and lfdo commands
let Xfdo = a:cchar . 'fdo'
let Xgetexpr = a:cchar . 'getexpr'
let XfdoCmd = Xfdo . ' call add(l, GetRuler())'
let Xpfile = a:cchar. 'pfile'
" Clear the quickfix/location list
exe Xgetexpr . " []"
" Try with an empty list
let l = []
exe XfdoCmd
call assert_equal([], l)
" Populate the list and then try
exe Xgetexpr . " ['non-error 1', 'Xtestfile1:1:3:Line1', 'Xtestfile1:2:1:Line2', 'non-error 2', 'Xtestfile2:2:2:Line2', 'non-error 3', 'Xtestfile3:2:3:Line2', 'Xtestfile3:3:1:Line3']"
let l = []
exe XfdoCmd
call assert_equal(['Xtestfile1 1L 3C', 'Xtestfile2 2L 2C', 'Xtestfile3 2L 3C'], l)
" Run command only on selected error lines
let l = []
exe "2,3" . XfdoCmd
call assert_equal(['Xtestfile2 2L 2C', 'Xtestfile3 2L 3C'], l)
" Boundary condition tests
let l = []
exe "3" . XfdoCmd
call assert_equal(['Xtestfile3 2L 3C'], l)
" Range test commands
let l = []
exe "%" . XfdoCmd
call assert_equal(['Xtestfile1 1L 3C', 'Xtestfile2 2L 2C', 'Xtestfile3 2L 3C'], l)
let l = []
exe "1,$" . XfdoCmd
call assert_equal(['Xtestfile1 1L 3C', 'Xtestfile2 2L 2C', 'Xtestfile3 2L 3C'], l)
let l = []
exe Xpfile
exe "." . XfdoCmd
call assert_equal(['Xtestfile2 2L 2C'], l)
" List with only one valid entry
let l = []
exe Xgetexpr . " ['Xtestfile2:2:5:Line2']"
exe XfdoCmd
call assert_equal(['Xtestfile2 2L 5C'], l)
endfunction
" Tests for cdo and cfdo
function Test_cdo()
call XdoTests('c')
call XfdoTests('c')
endfunction
" Tests for ldo and lfdo
function Test_ldo()
call XdoTests('l')
call XfdoTests('l')
endfunction

View File

@@ -0,0 +1,28 @@
" Tests for searchpos()
func Test_searchpos()
new one
0put ='1a3'
1put ='123xyz'
call cursor(1, 1)
call assert_equal([1, 1, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW'))
call cursor(1, 2)
call assert_equal([2, 1, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW'))
set cpo-=c
call cursor(1, 2)
call assert_equal([1, 2, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW'))
call cursor(1, 3)
call assert_equal([1, 3, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW'))
" Now with \zs, first match is in column 0, "a" is matched.
call cursor(1. 3)
call assert_equal([2, 4, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}\zsxyz', 'pcW'))
" With z flag start at cursor column, don't see the "a".
call cursor(1. 3)
call assert_equal([2, 4, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}\zsxyz', 'pcWz'))
set cpo+=c
" close the window
q!
endfunc

408
src/testdir/test_viml.vim Normal file
View File

@@ -0,0 +1,408 @@
" Test various aspects of the Vim language.
" This was formerly in test49.
"-------------------------------------------------------------------------------
" Test environment {{{1
"-------------------------------------------------------------------------------
com! XpathINIT let g:Xpath = ''
com! -nargs=1 -bar Xpath let g:Xpath = g:Xpath . <args>
" Append a message to the "messages" file
func! Xout(text)
split messages
$put =a:text
wq
endfunc
com! -nargs=1 Xout call Xout(<args>)
" MakeScript() - Make a script file from a function. {{{2
"
" Create a script that consists of the body of the function a:funcname.
" Replace any ":return" by a ":finish", any argument variable by a global
" variable, and and every ":call" by a ":source" for the next following argument
" in the variable argument list. This function is useful if similar tests are
" to be made for a ":return" from a function call or a ":finish" in a script
" file.
function! MakeScript(funcname, ...)
let script = tempname()
execute "redir! >" . script
execute "function" a:funcname
redir END
execute "edit" script
" Delete the "function" and the "endfunction" lines. Do not include the
" word "function" in the pattern since it might be translated if LANG is
" set. When MakeScript() is being debugged, this deletes also the debugging
" output of its line 3 and 4.
exec '1,/.*' . a:funcname . '(.*)/d'
/^\d*\s*endfunction\>/,$d
%s/^\d*//e
%s/return/finish/e
%s/\<a:\(\h\w*\)/g:\1/ge
normal gg0
let cnt = 0
while search('\<call\s*\%(\u\|s:\)\w*\s*(.*)', 'W') > 0
let cnt = cnt + 1
s/\<call\s*\%(\u\|s:\)\w*\s*(.*)/\='source ' . a:{cnt}/
endwhile
g/^\s*$/d
write
bwipeout
return script
endfunction
" ExecAsScript - Source a temporary script made from a function. {{{2
"
" Make a temporary script file from the function a:funcname, ":source" it, and
" delete it afterwards.
function! ExecAsScript(funcname)
" Make a script from the function passed as argument.
let script = MakeScript(a:funcname)
" Source and delete the script.
exec "source" script
call delete(script)
endfunction
com! -nargs=1 -bar ExecAsScript call ExecAsScript(<f-args>)
"-------------------------------------------------------------------------------
" Test 1: :endwhile in function {{{1
"
" Detect if a broken loop is (incorrectly) reactivated by the
" :endwhile. Use a :return to prevent an endless loop, and make
" this test first to get a meaningful result on an error before other
" tests will hang.
"-------------------------------------------------------------------------------
function! T1_F()
Xpath 'a'
let first = 1
while 1
Xpath 'b'
if first
Xpath 'c'
let first = 0
break
else
Xpath 'd'
return
endif
endwhile
endfunction
function! T1_G()
Xpath 'h'
let first = 1
while 1
Xpath 'i'
if first
Xpath 'j'
let first = 0
break
else
Xpath 'k'
return
endif
if 1 " unmatched :if
endwhile
endfunction
func Test_endwhile_function()
XpathINIT
call T1_F()
Xpath 'F'
try
call T1_G()
catch
" Catch missing :endif
call assert_true(v:exception =~ 'E171')
Xpath 'x'
endtry
Xpath 'G'
call assert_equal('abcFhijxG', g:Xpath)
endfunc
"-------------------------------------------------------------------------------
" Test 2: :endwhile in script {{{1
"
" Detect if a broken loop is (incorrectly) reactivated by the
" :endwhile. Use a :finish to prevent an endless loop, and place
" this test before others that might hang to get a meaningful result
" on an error.
"
" This test executes the bodies of the functions T1_F and T1_G from
" the previous test as script files (:return replaced by :finish).
"-------------------------------------------------------------------------------
func Test_endwhile_script()
XpathINIT
ExecAsScript T1_F
Xpath 'F'
try
ExecAsScript T1_G
catch
" Catch missing :endif
call assert_true(v:exception =~ 'E171')
Xpath 'x'
endtry
Xpath 'G'
call assert_equal('abcFhijxG', g:Xpath)
endfunc
"-------------------------------------------------------------------------------
" Test 3: :if, :elseif, :while, :continue, :break {{{1
"-------------------------------------------------------------------------------
function Test_if_while()
XpathINIT
if 1
Xpath 'a'
let loops = 3
while loops > -1 " main loop: loops == 3, 2, 1 (which breaks)
if loops <= 0
let break_err = 1
let loops = -1
else
Xpath 'b' . loops
endif
if (loops == 2)
while loops == 2 " dummy loop
Xpath 'c' . loops
let loops = loops - 1
continue " stop dummy loop
Xpath 'd' . loops
endwhile
continue " continue main loop
Xpath 'e' . loops
elseif (loops == 1)
let p = 1
while p " dummy loop
Xpath 'f' . loops
let p = 0
break " break dummy loop
Xpath 'g' . loops
endwhile
Xpath 'h' . loops
unlet p
break " break main loop
Xpath 'i' . loops
endif
if (loops > 0)
Xpath 'j' . loops
endif
while loops == 3 " dummy loop
let loops = loops - 1
endwhile " end dummy loop
endwhile " end main loop
Xpath 'k'
else
Xpath 'l'
endif
Xpath 'm'
if exists("break_err")
Xpath 'm'
unlet break_err
endif
unlet loops
call assert_equal('ab3j3b2c2b1f1h1km', g:Xpath)
endfunc
"-------------------------------------------------------------------------------
" Test 4: :return {{{1
"-------------------------------------------------------------------------------
function! T4_F()
if 1
Xpath 'a'
let loops = 3
while loops > 0 " 3: 2: 1:
Xpath 'b' . loops
if (loops == 2)
Xpath 'c' . loops
return
Xpath 'd' . loops
endif
Xpath 'e' . loops
let loops = loops - 1
endwhile
Xpath 'f'
else
Xpath 'g'
endif
endfunction
function Test_return()
XpathINIT
call T4_F()
Xpath '4'
call assert_equal('ab3e3b2c24', g:Xpath)
endfunction
"-------------------------------------------------------------------------------
" Test 5: :finish {{{1
"
" This test executes the body of the function T4_F from the previous
" test as a script file (:return replaced by :finish).
"-------------------------------------------------------------------------------
function Test_finish()
XpathINIT
ExecAsScript T4_F
Xpath '5'
call assert_equal('ab3e3b2c25', g:Xpath)
endfunction
"-------------------------------------------------------------------------------
" Test 6: Defining functions in :while loops {{{1
"
" Functions can be defined inside other functions. An inner function
" gets defined when the outer function is executed. Functions may
" also be defined inside while loops. Expressions in braces for
" defining the function name are allowed.
"
" The functions are defined when sourcing the script, only the
" resulting path is checked in the test function.
"-------------------------------------------------------------------------------
XpathINIT
" The command CALL collects the argument of all its invocations in "calls"
" when used from a function (that is, when the global variable "calls" needs
" the "g:" prefix). This is to check that the function code is skipped when
" the function is defined. For inner functions, do so only if the outer
" function is not being executed.
"
let calls = ""
com! -nargs=1 CALL
\ if !exists("calls") && !exists("outer") |
\ let g:calls = g:calls . <args> |
\ endif
let i = 0
while i < 3
let i = i + 1
if i == 1
Xpath 'a'
function! F1(arg)
CALL a:arg
let outer = 1
let j = 0
while j < 1
Xpath 'b'
let j = j + 1
function! G1(arg)
CALL a:arg
endfunction
Xpath 'c'
endwhile
endfunction
Xpath 'd'
continue
endif
Xpath 'e' . i
function! F{i}(i, arg)
CALL a:arg
let outer = 1
if a:i == 3
Xpath 'f'
endif
let k = 0
while k < 3
Xpath 'g' . k
let k = k + 1
function! G{a:i}{k}(arg)
CALL a:arg
endfunction
Xpath 'h' . k
endwhile
endfunction
Xpath 'i'
endwhile
if exists("*G1")
Xpath 'j'
endif
if exists("*F1")
call F1("F1")
if exists("*G1")
call G1("G1")
endif
endif
if exists("G21") || exists("G22") || exists("G23")
Xpath 'k'
endif
if exists("*F2")
call F2(2, "F2")
if exists("*G21")
call G21("G21")
endif
if exists("*G22")
call G22("G22")
endif
if exists("*G23")
call G23("G23")
endif
endif
if exists("G31") || exists("G32") || exists("G33")
Xpath 'l'
endif
if exists("*F3")
call F3(3, "F3")
if exists("*G31")
call G31("G31")
endif
if exists("*G32")
call G32("G32")
endif
if exists("*G33")
call G33("G33")
endif
endif
Xpath 'm'
let g:test6_result = g:Xpath
let g:test6_calls = calls
unlet calls
delfunction F1
delfunction G1
delfunction F2
delfunction G21
delfunction G22
delfunction G23
delfunction G31
delfunction G32
delfunction G33
function Test_defining_functions()
call assert_equal('ade2ie3ibcg0h1g1h2g2h3fg0h1g1h2g2h3m', g:test6_result)
call assert_equal('F1G1F2G21G22G23F3G31G32G33', g:test6_calls)
endfunc
"-------------------------------------------------------------------------------
" Modelines {{{1
" vim: ts=8 sw=4 tw=80 fdm=marker
" vim: fdt=substitute(substitute(foldtext(),\ '\\%(^+--\\)\\@<=\\(\\s*\\)\\(.\\{-}\\)\:\ \\%(\"\ \\)\\=\\(Test\ \\d*\\)\:\\s*',\ '\\3\ (\\2)\:\ \\1',\ \"\"),\ '\\(Test\\s*\\)\\(\\d\\)\\D\\@=',\ '\\1\ \\2',\ "")
"-------------------------------------------------------------------------------

View File

@@ -741,6 +741,66 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1007,
/**/
1006,
/**/
1005,
/**/
1004,
/**/
1003,
/**/
1002,
/**/
1001,
/**/
1000,
/**/
999,
/**/
998,
/**/
997,
/**/
996,
/**/
995,
/**/
994,
/**/
993,
/**/
992,
/**/
991,
/**/
990,
/**/
989,
/**/
988,
/**/
987,
/**/
986,
/**/
985,
/**/
984,
/**/
983,
/**/
982,
/**/
981,
/**/
980,
/**/
979,
/**/
978,
/**/
977,
/**/

View File

@@ -930,6 +930,7 @@ extern char *(*dyn_libintl_textdomain)(const char *domainname);
#define SEARCH_MARK 0x200 /* set previous context mark */
#define SEARCH_KEEP 0x400 /* keep previous search pattern */
#define SEARCH_PEEK 0x800 /* peek for typed char, cancel search */
#define SEARCH_COL 0x1000 /* start at specified column instead of zero */
/* Values for find_ident_under_cursor() */
#define FIND_IDENT 1 /* find identifier (word) */