Compare commits

...

26 Commits

Author SHA1 Message Date
Bram Moolenaar
5f24542e5e patch 7.4.1069
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2016-01-09 18:52:40 +01:00
Bram Moolenaar
71bcfdf301 patch 7.4.1068
Problem:    Wrong way to check for unletting internal variables.
Solution:   Use a better way. (Olaf Dabrunz)
2016-01-09 18:20:46 +01:00
Bram Moolenaar
449538c3d2 patch 7.4.1067
Problem:    Can't build with MingW and Python on MS-Windows.
Solution:   Move the build flags to CFLAGS.
2016-01-09 17:49:15 +01:00
Bram Moolenaar
64496ffc9c patch 7.4.1066
Problem:    Build fails on MS-Windows.
Solution:   Adjust the #ifdefs for "dll" options.
2016-01-09 15:08:03 +01:00
Bram Moolenaar
25e4fcde76 patch 7.4.1065
Problem:    Cannot use the "dll" options on MS-Windows.
Solution:   Support the options on all platforms.  Use the built-in name as
            the default, so that it's clear what Vim is looking for.
2016-01-09 14:57:47 +01:00
Bram Moolenaar
7b877b3605 patch 7.4.1064
Problem:    When a spell file has single letter compounding creating
            suggestions takes an awful long time.
Solution:   Add th eNOCOMPOUNDSUGS flag.
2016-01-09 13:51:34 +01:00
Bram Moolenaar
4d1c0a4441 Update to newer English spell files,
but without the COMPOUND rules that make suggestions very slow.
2016-01-09 13:23:54 +01:00
Bram Moolenaar
eca99bd45f patch 7.4.1063
Problem:    TCL_VER_LONG and DYNAMIC_TCL_VER are not set when building with
            Cygwin and MingW.
Solution:   Add TCL_VER_LONG and DYNAMIC_TCL_VER to the makefile.
2016-01-07 22:50:05 +01:00
Bram Moolenaar
0bee2fe25a patch 7.4.1062
Problem:    Building with Ruby on MS-Windows requires a lot of arguments.
Solution:   Make it simpler. (Ken Takata)
2016-01-07 22:45:09 +01:00
Bram Moolenaar
285bf84b4b patch 7.4.1061
Problem:    Compiler warning for ignoring return value of fwrite().
Solution:   Do use the return value. (idea: Charles Campbell)
2016-01-07 22:34:01 +01:00
Bram Moolenaar
6602af7fe0 patch 7.4.1060
Problem:    Instructions for writing tests are outdated.
Solution:   Mention Make_all.mak.  Add steps for new style tests.
2016-01-07 22:01:01 +01:00
Bram Moolenaar
fd39d08fb6 patch 7.4.1059
Problem:    Code will never be executed.
Solution:   Remove the code.
2016-01-07 21:28:24 +01:00
Bram Moolenaar
75bdf6aa30 patch 7.4.1058
Problem:    It is not possible to test code that is only reached when memory
            allocation fails.
Solution:   Add the alloc_fail() function.  Try it out with :vimgrep.
2016-01-07 21:25:08 +01:00
Bram Moolenaar
2b7db933b0 patch 7.4.1057
Problem:    Typos in the :options window.
Solution:   Fix the typos. (Dominique Pelle)
2016-01-07 16:52:10 +01:00
Bram Moolenaar
ca1fe98517 patch 7.4.1056
Problem:    Don't know why finding spell suggestions is slow.
Solution:   Add some code to gather profiling information.
2016-01-07 16:22:06 +01:00
Bram Moolenaar
a61018d7e0 Revert English spell file update 2016-01-07 16:19:13 +01:00
Bram Moolenaar
e7893a4088 patch 7.4.1055
Problem:    Running "make newtests" in src/testdir has no output.
Solution:   List the messages file when a test fails. (Christian Brabandt)
            Update the list of tests.
2016-01-06 21:23:56 +01:00
Bram Moolenaar
2795e21eaa patch 7.4.1054
Problem:    Illegal memory access.
Solution:   Check for missing pattern. (Dominique Pelle)
2016-01-05 22:04:49 +01:00
Bram Moolenaar
da59dd5da6 patch 7.4.1053
Problem:    Insufficient testing for quickfix commands.
Solution:   Add a new style quickfix test. (Yegappan Lakshmanan)
2016-01-05 21:59:58 +01:00
Bram Moolenaar
04bff88df6 patch 7.4.1052
Problem:    Illegal memory access with weird syntax command. (Dominique Pelle)
Solution:   Check for column past end of line.
2016-01-05 20:46:16 +01:00
Bram Moolenaar
af8af8bfac patch 7.4.1051
Problem:    Segfault when unletting "count".
Solution:   Check for readonly and locked first. (Dominique Pelle)
            Add a test.
2016-01-04 22:05:24 +01:00
Bram Moolenaar
c71982b239 patch 7.4.1050
Problem:    Warning for unused var with tiny features. (Tony Mechelynck)
Solution:   Add #ifdef.  Use vim_snprintf().  Reduce number of statemements.
2016-01-04 21:43:08 +01:00
Bram Moolenaar
485dace817 patch 7.4.1049
Problem:    Wordcount test still still fails on MS-Windows.
Solution:   Set 'fileformats' to "unix".
2016-01-04 12:45:29 +01:00
Bram Moolenaar
c7803a1c42 patch 7.4.1048
Problem:    Wordcount test still fail on MS-Windows.
Solution:   Set 'fileformat' to "unix".
2016-01-04 12:26:23 +01:00
Bram Moolenaar
7f68203168 patch 7.4.1047
Problem:    Tests fail on MS-Windows.
Solution:   Set 'selection' to inclusive.
2016-01-04 12:13:05 +01:00
Bram Moolenaar
2d6c800272 patch 7.4.1046
Problem:    No test coverage for menus.
Solution:   Load the standard menus and check there is no error.
2016-01-03 23:31:24 +01:00
43 changed files with 1341 additions and 408 deletions

View File

@@ -1739,6 +1739,8 @@ USAGE RESULT DESCRIPTION ~
abs( {expr}) Float or Number absolute value of {expr}
acos( {expr}) Float arc cosine of {expr}
add( {list}, {item}) List append {item} to |List| {list}
alloc_fail( {countdown}, {when}, {repeat})
nothing make memory allocation fail
and( {expr}, {expr}) Number bitwise AND
append( {lnum}, {string}) Number append {string} below line {lnum}
append( {lnum}, {list}) Number append lines {list} below line {lnum}
@@ -2118,6 +2120,13 @@ add({list}, {expr}) *add()*
Use |insert()| to add an item at another position.
alloc_fail({id}, {countdown}, {repeat}) *alloc_fail()*
This is for testing: If the memory allocation with {id} is
called, then decrement {countdown}, and when it reaches zero
let memory allocation fail {repeat} times. When {repeat} is
smaller than one it fails one time.
and({expr}, {expr}) *and()*
Bitwise AND on the two arguments. The arguments are converted
to a number. A List, Dict or Float argument causes an error.

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2016 Jan 03
*options.txt* For Vim version 7.4. Last change: 2016 Jan 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -4848,13 +4848,13 @@ A jump table for the options with a short description can be found at |Q_op|.
reset this option. |-u| |--noplugin|
*'luadll'*
'luadll' string (default empty)
'luadll' string (default depends on the build)
global
{not in Vi} {only for Unix}
{not in Vi}
{only available when compiled with the |+lua/dyn|
feature}
Specifies the path of the Lua shared library instead of DYNAMIC_LUA_DLL
what was specified at compile time.
Specifies the name of the Lua shared library. The default is
DYNAMIC_LUA_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -5297,7 +5297,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Negative or zero value means no thread scheduling.
*'nrformats'* *'nf'*
'nrformats' 'nf' string (default "octal,hex")
'nrformats' 'nf' string (default "bin,octal,hex")
local to buffer
{not in Vi}
This defines what bases Vim will consider for numbers when using the
@@ -5311,6 +5311,9 @@ A jump table for the options with a short description can be found at |Q_op|.
hex If included, numbers starting with "0x" or "0X" will be
considered to be hexadecimal. Example: Using CTRL-X on
"0x100" results in "0x0ff".
bin If included, numbers starting with "0b" or "0B" will be
considered to be binary. Example: Using CTRL-X on
"0b1000" subtracts one, resulting in "0b0111".
Numbers which simply begin with a digit in the range 1-9 are always
considered decimal. This also happens for numbers that are not
recognized as octal or hex.
@@ -5565,13 +5568,13 @@ A jump table for the options with a short description can be found at |Q_op|.
this doesn't work when $INCL contains a comma or white space.
*'perldll'*
'perldll' string (default empty)
'perldll' string (default depends on the build)
global
{not in Vi} {only for Unix}
{not in Vi}
{only available when compiled with the |+perl/dyn|
feature}
Specifies the path of the Perl shared library instead of
DYNAMIC_PERL_DLL what was specified at compile time.
Specifies the name of the Perl shared library. The default is
DYNAMIC_PERL_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -5702,24 +5705,24 @@ A jump table for the options with a short description can be found at |Q_op|.
|ins-completion-menu|.
*'pythondll'*
'pythondll' string (default empty)
'pythondll' string (default depends on the build)
global
{not in Vi} {only for Unix}
{not in Vi}
{only available when compiled with the |+python/dyn|
feature}
Specifies the path of the Python 2.x shared library instead of
DYNAMIC_PYTHON_DLL what was specified at compile time.
Specifies the name of the Python 2.x shared library. The default is
DYNAMIC_PYTHON_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythonthreedll'*
'pythonthreedll' string (default empty)
'pythonthreedll' string (default depends on the build)
global
{not in Vi} {only for Unix}
{not in Vi}
{only available when compiled with the |+python3/dyn|
feature}
Specifies the path of the Python 3 shared library instead of
DYNAMIC_PYTHON3_DLL what was specified at compile time.
Specifies the name of the Python 3 shared library. The default is
DYNAMIC_PYTHON3_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -5943,13 +5946,13 @@ A jump table for the options with a short description can be found at |Q_op|.
The 'rightleft' option must be set for 'rightleftcmd' to take effect.
*'rubydll'*
'rubydll' string (default empty)
'rubydll' string (default: depends on the build)
global
{not in Vi} {only for Unix}
{not in Vi}
{only available when compiled with the |+ruby/dyn|
feature}
Specifies the path of the Ruby shared library instead of
DYNAMIC_RUBY_DLL what was specified at compile time.
Specifies the name of the Ruby shared library. The default is
DYNAMIC_RUBY_DLL, which was specified at compile time.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.

View File

@@ -1386,6 +1386,14 @@ the item name. Case is always ignored.
The Hunspell feature to use three arguments and flags is not supported.
*spell-NOCOMPOUNDSUGS*
This item indicates that using compounding to make suggestions is not a good
idea. Use this when compounding is used with very short or one-character
words. E.g. to make numbers out of digits. Without this flag creating
suggestions would spend most time trying all kind of weird compound words.
NOCOMPOUNDSUGS ~
*spell-SYLLABLE*
The SYLLABLE item defines characters or character sequences that are used to
count the number of syllables in a word. Example:

View File

@@ -794,7 +794,7 @@ call append("$", "infercase\tadjust case of a keyword completion match")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("inf")
if has("digraphs")
call append("$", "digraph\tenable entering digraps with c1 <BS> c2")
call append("$", "digraph\tenable entering digraphs with c1 <BS> c2")
call <SID>BinOptionG("dg", &dg)
endif
call append("$", "tildeop\tthe \"~\" command behaves like an operator")
@@ -1199,7 +1199,7 @@ if has("arabic")
call <SID>BinOptionG("tbidi", &tbidi)
endif
if has("keymap")
call append("$", "keymap\tname of a keyboard mappping")
call append("$", "keymap\tname of a keyboard mapping")
call <SID>OptionL("kmp")
endif
if has("langmap")

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 2010-05-15 13:03:47.000000000 +0200
--- en_AU.aff 2015-12-30 19:08:16.916527503 +0100
--- en_AU.aff 2016-01-09 13:15:38.426627871 +0100
***************
*** 7,9 ****
SET ISO8859-1
@@ -148,7 +148,8 @@
!
REP 24
***************
*** 34,53 ****
*** 33,53 ****
REP ght t
PFX A Y 2
! PFX A 0 re [^e]
! PFX A 0 re- e
@@ -169,7 +170,25 @@
PFX E Y 1
! PFX E 0 dis .
PFX F Y 5
--- 172,191 ----
--- 171,208 ----
REP ght t
+
+ # This is disabled, because if Vim does not support NOCOMPOUNDSUGS giving
+ # suggestions is extremely slow.
+ ## ordinal numbers
+ #COMPOUNDMIN 1
+ ## only in compounds: 1th, 2th, 3th
+ #ONLYINCOMPOUND ,
+ ## compound rules:
+ ## 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
+ ## 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
+ #COMPOUNDRULE 2
+ #COMPOUNDRULE (*:)
+ #COMPOUNDRULE (*{}
+ #NOCOMPOUNDSUGS
+
+ # WORDCHARS 0123456789
+
PFX A Y 2
! PFX A 0 re [^e]
! PFX A 0 re- e
@@ -587,7 +606,7 @@
SFX T y iest [^aeiou]y
! SFX T 0 er [aeiou]y
SFX T 0 est [aeiou]y
--- 195,589 ----
--- 212,606 ----
PFX F 0 col l
! PFX F 0 con [^abehilmopru].
PFX K Y 1
@@ -1671,7 +1690,7 @@
! SFX 3 0 ist's [aeioubp]y
! SFX 3 o ist's o
! SFX 3 0 ist's [^eoy]
--- 596,1305 ----
--- 613,1322 ----
SFX R Y 72
! SFX R 0 r e
! SFX R 0 rs e
@@ -2383,20 +2402,30 @@
! # a few more for consistency
! COMMON five six seven eight nine ten hundred thousand
*** en_AU.orig.dic 2010-05-15 13:03:48.000000000 +0200
--- en_AU.dic 2015-12-30 19:07:42.620898655 +0100
--- en_AU.dic 2016-01-08 23:03:18.342461841 +0100
***************
*** 1,2 ****
! 45654
AA
--- 1,2 ----
--- 1,12 ----
! 45653
! 0th
! 1st
! 2nd
! 3rd
! 4th
! 5th
! 6th
! 7th
! 8th
! 9th
AA
***************
*** 912,914 ****
Alaska/M
! al/AY
albacore/MS
--- 912,914 ----
--- 922,924 ----
Alaska/M
! really
albacore/MS
@@ -2405,10 +2434,10 @@
bozo/SM
- b/pb
bpi
--- 4885,4886 ----
--- 4895,4896 ----
***************
*** 4921,4922 ****
--- 4920,4922 ----
--- 4930,4932 ----
Brahms
+ Bram/M
braid/DGS
@@ -2417,22 +2446,22 @@
cad/ZSM
- c/aE
CAE
--- 5753,5754 ----
--- 5763,5764 ----
***************
*** 8535,8537 ****
coniferous
- conj
conjectural
--- 8534,8535 ----
--- 8544,8545 ----
***************
*** 8544,8545 ****
--- 8542,8544 ----
--- 8552,8554 ----
conjunctiva/MS
+ conj.
conjunctive/S
***************
*** 10288,10289 ****
--- 10287,10291 ----
--- 10297,10301 ----
dB/M
+ dBi
+ dBm
@@ -2443,10 +2472,10 @@
DNA
- d/o
DOB
--- 11783,11784 ----
--- 11793,11794 ----
***************
*** 12468,12469 ****
--- 12469,12471 ----
--- 12479,12481 ----
Dutch/5m
+ Farsi
Dutchwomen/M
@@ -2455,19 +2484,19 @@
dystrophy/M
- e
ea
--- 12518,12519 ----
--- 12528,12529 ----
***************
*** 12792,12794 ****
e.g.
- e.g..
egad
--- 12793,12794 ----
--- 12803,12804 ----
***************
*** 13779,13781 ****
estuary/MS
! et
ETA
--- 13779,13782 ----
--- 13789,13792 ----
estuary/MS
! et cetera
! et al.
@@ -2477,7 +2506,7 @@
fjord/SM
! f/K
flab/2zZM
--- 15297,15299 ----
--- 15307,15309 ----
fjord/SM
! pref
flab/2zZM
@@ -2486,19 +2515,19 @@
FYI
- g/7
gabardine/SM
--- 16481,16482 ----
--- 16491,16492 ----
***************
*** 18599,18601 ****
HDTV
- h/E
headache/SM
--- 18599,18600 ----
--- 18609,18610 ----
***************
*** 19214,19216 ****
Hobbes
! hobbit
hobble/RGSD
--- 19213,19215 ----
--- 19223,19225 ----
Hobbes
! hobbit/MS
hobble/RGSD
@@ -2507,34 +2536,34 @@
jive/DSMG
- j/k
jnr.
--- 21790,21791 ----
--- 21800,21801 ----
***************
*** 22125,22127 ****
kcal
- k/E
Keane
--- 22123,22124 ----
--- 22133,22134 ----
***************
*** 22606,22608 ****
Kyushu/M
- l/3
label/AGaSD
--- 22603,22604 ----
--- 22613,22614 ----
***************
*** 22885,22887 ****
lass/SM
- last-ditch
lasted/e
--- 22881,22882 ----
--- 22891,22892 ----
***************
*** 22890,22892 ****
last/kJYDSG
- last-minute
lasts/e
--- 22885,22886 ----
--- 22895,22896 ----
***************
*** 26417,26418 ****
--- 26411,26413 ----
--- 26421,26423 ----
Moolawatana
+ Moolenaar/M
Moomba
@@ -2545,7 +2574,7 @@
nationhood/M
! nation/M
nationwide
--- 27183,27187 ----
--- 27193,27197 ----
nationals/4
! national/sQq3SZ
nationhood/M
@@ -2553,7 +2582,7 @@
nationwide
***************
*** 27194,27195 ****
--- 27189,27192 ----
--- 27199,27202 ----
nativity/MS
+ natively
+ nativeness
@@ -2563,28 +2592,28 @@
nuzzle/SDG
- n/xvuNVn
Nyah
--- 28362,28363 ----
--- 28372,28373 ----
***************
*** 29464,29466 ****
oz
- o/z
Ozark/MS
--- 29460,29461 ----
--- 29470,29471 ----
***************
*** 31035,31037 ****
Pk
- p/KF
pl.
--- 31030,31031 ----
--- 31040,31041 ----
***************
*** 31288,31289 ****
--- 31282,31284 ----
--- 31292,31294 ----
pneumonia/MS
+ pneumonic
PO
***************
*** 31460,31461 ****
--- 31455,31457 ----
--- 31465,31467 ----
pompom/MS
+ pompon/M
pomposity/MS
@@ -2593,25 +2622,25 @@
pyx/S
- q
Qatar
--- 32861,32862 ----
--- 32871,32872 ----
***************
*** 33378,33380 ****
razzmatazz
- r/d
Rd/M
--- 33373,33374 ----
--- 33383,33384 ----
***************
*** 34979,34981 ****
RSPCA
- rte
rub-a-dub
--- 34973,34974 ----
--- 34983,34984 ----
***************
*** 36012,36014 ****
sec.
! s/eca
secant/MS
--- 36005,36007 ----
--- 36015,36017 ----
sec.
! outs
secant/MS
@@ -2620,7 +2649,7 @@
Szechwan/M
! t/7k
Ta
--- 40235,40237 ----
--- 40245,40247 ----
Szechwan/M
! tingly
Ta
@@ -2629,10 +2658,10 @@
Tyson/M
- u
ubiquitousness
--- 42609,42610 ----
--- 42619,42620 ----
***************
*** 42990,42991 ****
--- 42982,42984 ----
--- 42992,42994 ----
unscrupulous
+ searchable
unsearchable
@@ -2641,13 +2670,13 @@
Uzi/M
- v
vacancy/MS
--- 43245,43246 ----
--- 43255,43256 ----
***************
*** 43749,43751 ****
Vilnius/M
! vim/M
vinaigrette/MS
--- 43741,43744 ----
--- 43751,43754 ----
Vilnius/M
! Vim/M
! vim/?
@@ -2657,16 +2686,16 @@
yippee
- y/K
YMCA
--- 45487,45488 ----
--- 45497,45498 ----
***************
*** 45586,45588 ****
zap/SGRD
- z/d
Zealanders
--- 45578,45579 ----
--- 45588,45589 ----
***************
*** 45655 ****
--- 45646,45660 ----
--- 45656,45670 ----
zymurgy/S
+ nd
+ PayPal

View File

@@ -1,14 +1,25 @@
*** en_CA.orig.aff 2015-12-30 18:18:20.076952127 +0100
--- en_CA.aff 2015-12-30 18:32:50.395546116 +0100
--- en_CA.aff 2016-01-09 13:15:51.306488848 +0100
***************
*** 2,7 ****
*** 2,18 ****
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
! ICONV 1
! ICONV '
NOSUGGEST !
# ordinal numbers
--- 2,146 ----
! # ordinal numbers
! COMPOUNDMIN 1
! # only in compounds: 1th, 2th, 3th
! ONLYINCOMPOUND c
! # compound rules:
! # 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
! # 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
! COMPOUNDRULE 2
! COMPOUNDRULE n*1t
! COMPOUNDRULE n*mp
! WORDCHARS 0123456789
--- 2,161 ----
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
!
! # ICONV 1
@@ -16,158 +27,204 @@
!
NOSUGGEST !
+ 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
+
# ordinal numbers
***************
*** 16,18 ****
COMPOUNDRULE n*mp
! WORDCHARS 0123456789
--- 155,157 ----
COMPOUNDRULE n*mp
! 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
!
! # This is disabled, because if Vim does not support NOCOMPOUNDSUGS giving
! # suggestions is extremely slow.
! ## ordinal numbers
! #COMPOUNDMIN 1
! ## only in compounds: 1th, 2th, 3th
! #ONLYINCOMPOUND c
! ## compound rules:
! ## 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
! ## 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
! #COMPOUNDRULE 2
! #COMPOUNDRULE n*1t
! #COMPOUNDRULE n*mp
! #NOCOMPOUNDSUGS
!
! # 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
--- en_CA.dic 2016-01-08 23:03:52.562085247 +0100
***************
*** 1,25 ****
48929
! 0/nm
! 0th/pt
! 1/n1
! 1st/p
! 1th/tc
! 2/nm
! 2nd/p
! 2th/tc
! 3/nm
! 3rd/p
! 3th/tc
! 4/nm
! 4th/pt
! 5/nm
! 5th/pt
! 6/nm
! 6th/pt
! 7/nm
! 7th/pt
! 8/nm
! 8th/pt
! 9/nm
! 9th/pt
A/SM
--- 1,12 ----
48929
! 0th
! 1st
! 2nd
! 3rd
! 4th
! 5th
! 6th
! 7th
! 8th
! 9th
A/SM
***************
*** 48930 ****
--- 48930,48940 ----
--- 48917,48927 ----
zymurgy/M
+ a a/%
+ a an/%

View File

@@ -1,5 +1,5 @@
*** en_GB.orig.aff 2015-12-30 18:49:37.568638905 +0100
--- en_GB.aff 2015-12-30 18:59:04.186508433 +0100
--- en_GB.aff 2016-01-09 13:15:56.490432894 +0100
***************
*** 20,21 ****
--- 20,158 ----
@@ -142,29 +142,65 @@
+ REPSAL @ ht
+
REP 27
***************
*** 49,50 ****
--- 186,203 ----
+ # This is disabled, because if Vim does not support NOCOMPOUNDSUGS giving
+ # suggestions is extremely slow.
+ ## ordinal numbers
+ #COMPOUNDMIN 1
+ ## only in compounds: 1th, 2th, 3th
+ #ONLYINCOMPOUND ,
+ ## compound rules:
+ ## 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
+ ## 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
+ #COMPOUNDRULE 2
+ #COMPOUNDRULE (*:)
+ #COMPOUNDRULE (*{}
+ #NOCOMPOUNDSUGS
+
+ # WORDCHARS 0123456789
+
PFX A Y 2
*** en_GB.orig.dic 2015-12-30 18:49:42.360587040 +0100
--- en_GB.dic 2015-12-30 19:03:23.035708178 +0100
--- en_GB.dic 2016-01-08 23:03:35.510272903 +0100
***************
*** 1,2 ****
--- 1,12 ----
56453
+ 0th
+ 1st
+ 2nd
+ 3rd
+ 4th
+ 5th
+ 6th
+ 7th
+ 8th
+ 9th
'gainst
***************
*** 3615,3617 ****
autosuggestion
- autosuggestion
autotest/S
--- 3615,3616 ----
--- 3625,3626 ----
***************
*** 9325,9327 ****
Church
- church
Church-of-England
--- 9324,9325 ----
--- 9334,9335 ----
***************
*** 22885,22887 ****
hand-painted
- hand-pick/D
hand-pick/GSD
--- 22883,22884 ----
--- 22893,22894 ----
***************
*** 56454 ****
--- 56451,56461 ----
--- 56461,56471 ----
émigré/S
+ a a/%
+ a an/%

View File

@@ -1,5 +1,5 @@
*** en_NZ.orig.aff 2010-05-15 13:03:47.000000000 +0200
--- en_NZ.aff 2015-12-30 19:08:13.884560313 +0100
--- en_NZ.aff 2016-01-09 13:16:01.734376292 +0100
***************
*** 7,9 ****
SET ISO8859-1
@@ -148,7 +148,8 @@
!
REP 66
***************
*** 76,95 ****
*** 75,95 ****
REP ura aru
PFX A Y 2
! PFX A 0 re [^e]
! PFX A 0 re- e
@@ -169,7 +170,25 @@
PFX E Y 1
! PFX E 0 dis .
PFX F Y 5
--- 214,233 ----
--- 213,250 ----
REP ura aru
+
+ # This is disabled, because if Vim does not support NOCOMPOUNDSUGS giving
+ # suggestions is extremely slow.
+ ## ordinal numbers
+ #COMPOUNDMIN 1
+ ## only in compounds: 1th, 2th, 3th
+ #ONLYINCOMPOUND ,
+ ## compound rules:
+ ## 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
+ ## 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
+ #COMPOUNDRULE 2
+ #COMPOUNDRULE (*:)
+ #COMPOUNDRULE (*{}
+ #NOCOMPOUNDSUGS
+
+ # WORDCHARS 0123456789
+
PFX A Y 2
! PFX A 0 re [^e]
! PFX A 0 re- e
@@ -587,7 +606,7 @@
SFX T y iest [^aeiou]y
! SFX T 0 er [aeiou]y
SFX T 0 est [aeiou]y
--- 237,631 ----
--- 254,648 ----
PFX F 0 col l
! PFX F 0 con [^abehilmopru].
PFX K Y 1
@@ -1672,7 +1691,7 @@
! SFX 3 o ist's o
! SFX 3 0 ist's [^eoy]
\ No newline at end of file
--- 638,1323 ----
--- 655,1340 ----
SFX R Y 72
! SFX R 0 r e
! SFX R 0 rs e
@@ -2360,29 +2379,44 @@
! SFX 3 o ist's o
! SFX 3 0 ist's [^eoy]
*** en_NZ.orig.dic 2010-05-15 13:03:48.000000000 +0200
--- en_NZ.dic 2015-12-30 19:08:04.928657238 +0100
--- en_NZ.dic 2016-01-08 23:04:05.825939282 +0100
***************
*** 1,2 ****
--- 1,12 ----
47141
+ 0th
+ 1st
+ 2nd
+ 3rd
+ 4th
+ 5th
+ 6th
+ 7th
+ 8th
+ 9th
3GPP
***************
*** 4,6 ****
2ZB
- A
a/o
--- 4,5 ----
--- 14,15 ----
***************
*** 927,929 ****
Al-Zawahiri
- al/FAC
Al/M
--- 926,927 ----
--- 936,937 ----
***************
*** 2941,2944 ****
B.Sc.
- bless
- bible
baa/GSD
--- 2939,2940 ----
--- 2949,2950 ----
***************
*** 4974,4975 ****
--- 4970,4972 ----
--- 4980,4982 ----
Brampton/M
+ Bram/M
bran/SDGM
@@ -2391,7 +2425,7 @@
C.Lit.
! cation/SM
Ca/y
--- 5704,5706 ----
--- 5714,5716 ----
C.Lit.
! cation/MWS
Ca/y
@@ -2400,10 +2434,10 @@
Cathy
- cation/MW
catkin/SM
--- 6447,6448 ----
--- 6457,6458 ----
***************
*** 8589,8590 ****
--- 8585,8587 ----
--- 8595,8597 ----
coniferous
+ conj.
conjectural
@@ -2412,16 +2446,16 @@
red's
- dally
dab/TSGD
--- 10150,10151 ----
--- 10160,10161 ----
***************
*** 10360,10361 ****
--- 10356,10358 ----
--- 10366,10368 ----
dBm
+ dBd
DBMS
***************
*** 12535,12536 ****
--- 12532,12534 ----
--- 12542,12544 ----
Dutchwomen/M
+ Farsi
duteous/Y
@@ -2430,13 +2464,13 @@
duvet/SM
- duxes
DVD/MS
--- 12540,12541 ----
--- 12550,12551 ----
***************
*** 13901,13903 ****
estuary/MS
! et
ETA
--- 13898,13901 ----
--- 13908,13911 ----
estuary/MS
! et cetera
! et al.
@@ -2447,13 +2481,13 @@
- fable
- fist/MS
fa/M
--- 14529,14530 ----
--- 14539,14540 ----
***************
*** 15323,15325 ****
fissure/DSMG
! fist/6GD
fistfight/MS
--- 15319,15321 ----
--- 15329,15331 ----
fissure/DSMG
! fist/6GDMS
fistfight/MS
@@ -2462,44 +2496,44 @@
g's
- gable
gist/MS
--- 16602,16603 ----
--- 16612,16613 ----
***************
*** 16797,16799 ****
Garvey
- Gary/M
gas-permeable
--- 16792,16793 ----
--- 16802,16803 ----
***************
*** 18177,18179 ****
gyroscope/SWM
- dish
ha
--- 18171,18172 ----
--- 18181,18182 ----
***************
*** 22321,22323 ****
K-factor
- disk/MS
kabob's
--- 22314,22315 ----
--- 22324,22325 ----
***************
*** 23129,23132 ****
lassoer/M
- last-ditch
- last-minute
last/YSDGkJ
--- 23121,23122 ----
--- 23131,23132 ----
***************
*** 26396,26398 ****
Missy
! mist/CDRGS
mistakable/U
--- 26386,26388 ----
--- 26396,26398 ----
Missy
! mist/CDRGSM
mistakable/U
***************
*** 26745,26746 ****
--- 26735,26737 ----
--- 26745,26747 ----
Moog
+ Moolenaar/M
moon/MGpDS
@@ -2508,7 +2542,7 @@
mozzarella/SM
- MP3
mpg
--- 27009,27010 ----
--- 27019,27020 ----
***************
*** 27365,27372 ****
N'Djamena
@@ -2519,7 +2553,7 @@
- national
- nationally
Na/M
--- 27355,27359 ----
--- 27365,27369 ----
N'Djamena
! native/SP
natively
@@ -2530,7 +2564,7 @@
Nathaniel/M
! nation/M
national/sQ3Sq
--- 27494,27496 ----
--- 27504,27506 ----
Nathaniel/M
! nation/MS
national/sQ3Sq
@@ -2539,7 +2573,7 @@
nationwide
- native/SP
nativity/SM
--- 27508,27509 ----
--- 27518,27519 ----
***************
*** 29852,29857 ****
P.O.
@@ -2548,16 +2582,16 @@
- imply
- comply
pa/oM
--- 29838,29839 ----
--- 29848,29849 ----
***************
*** 31702,31703 ****
--- 31684,31686 ----
--- 31694,31696 ----
pneumonia/MS
+ pneumonic
PO
***************
*** 31885,31886 ****
--- 31868,31870 ----
--- 31878,31880 ----
pompom/SM
+ pompon/M
pomposity/SM
@@ -2566,30 +2600,30 @@
qwertys
- r/d
Ra
--- 33545,33546 ----
--- 33555,33556 ----
***************
*** 35456,35458 ****
rt
- rte
Ru/M
--- 35439,35440 ----
--- 35449,35450 ----
***************
*** 35619,35622 ****
singly
- sable
- sally/DSG
SA
--- 35601,35602 ----
--- 35611,35612 ----
***************
*** 40763,40766 ****
T's
- mist/MS
- overt
Ta
--- 40743,40744 ----
--- 40753,40754 ----
***************
*** 43574,43575 ****
--- 43552,43554 ----
--- 43562,43564 ----
unsearchable
+ searchable
unseeing/Y
@@ -2598,7 +2632,7 @@
Vilnius/M
! vim/M
vinaigrette/MS
--- 44313,44316 ----
--- 44323,44326 ----
Vilnius/M
! Vim/M
! vim/?
@@ -2608,79 +2642,79 @@
y'all
- prey/M
yacht/M5SmGD
--- 45886,45887 ----
--- 45896,45897 ----
***************
*** 46152,46154 ****
zymurgy/S
- <20>
font/SM
--- 46131,46132 ----
--- 46141,46142 ----
***************
*** 46198,46200 ****
rata/M
- kaka/M
waka/M
--- 46176,46177 ----
--- 46186,46187 ----
***************
*** 46216,46218 ****
jandal/MS
- Swanndri/M
hoon/MS
--- 46193,46194 ----
--- 46203,46204 ----
***************
*** 46242,46244 ****
Invercargill/M
- Te
Alexandra/M
--- 46218,46219 ----
--- 46228,46229 ----
***************
*** 46261,46263 ****
Kawerau/M
- Kerikeri/M
Lyttelton/M
--- 46236,46237 ----
--- 46246,46247 ----
***************
*** 46491,46493 ****
Waianakarua
- Hakatere
Swin
--- 46465,46466 ----
--- 46475,46476 ----
***************
*** 46690,46692 ****
Omarama/M
- Wairarapa/M
Kilda/M
--- 46663,46664 ----
--- 46673,46674 ----
***************
*** 46711,46713 ****
Wellsford/M
- Akaroa/M
Avonhead/M
--- 46683,46684 ----
--- 46693,46694 ----
***************
*** 46838,46840 ****
Ballantyne's
- DB
Monteith's
--- 46809,46810 ----
--- 46819,46820 ----
***************
*** 46920,46922 ****
Egmont/M
- Waitaki/M
katipo/M
--- 46890,46891 ----
--- 46900,46901 ----
***************
*** 46956,46958 ****
Sunnyside/M
- Wairau/M
Waikoropupu
--- 46925,46926 ----
--- 46935,46936 ----
***************
*** 47141,47142 ****
Burkina
! Faso/M
\ No newline at end of file
--- 47109,47124 ----
--- 47119,47134 ----
Burkina
! Faso/M
! nd

View File

@@ -1,12 +1,28 @@
*** en_US.orig.aff 2015-12-30 18:55:30.352821552 +0100
--- en_US.aff 2015-12-30 19:01:19.849041178 +0100
--- en_US.aff 2016-01-09 13:16:31.514054846 +0100
***************
*** 2,5 ****
*** 1,18 ****
SET UTF8
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
! ICONV 1
! ICONV '
NOSUGGEST !
--- 2,144 ----
! # ordinal numbers
! COMPOUNDMIN 1
! # only in compounds: 1th, 2th, 3th
! ONLYINCOMPOUND c
! # compound rules:
! # 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
! # 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
! COMPOUNDRULE 2
! COMPOUNDRULE n*1t
! COMPOUNDRULE n*mp
! WORDCHARS 0123456789
--- 1,164 ----
+ # Affix file for US English MySpell dictionary
SET UTF8
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
!
! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
@@ -150,20 +166,70 @@
! # ICONV '
!
NOSUGGEST !
***************
*** 16,18 ****
COMPOUNDRULE n*mp
! WORDCHARS 0123456789
--- 155,157 ----
COMPOUNDRULE n*mp
! # This is disabled, because if Vim does not support NOCOMPOUNDSUGS giving
! # suggestions is extremely slow.
! # This is disabled, because without NOCOMPOUNDSUGS support giving suggestions
! # is extremely slow.
! ## ordinal numbers
! #COMPOUNDMIN 1
! ## only in compounds: 1th, 2th, 3th
! #ONLYINCOMPOUND c
! ## compound rules:
! ## 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
! ## 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
! #COMPOUNDRULE 2
! #COMPOUNDRULE n*1t
! #COMPOUNDRULE n*mp
! #NOCOMPOUNDSUGS
!
! # 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
--- en_US.dic 2016-01-08 23:04:15.241835664 +0100
***************
*** 1,25 ****
48756
! 0/nm
! 0th/pt
! 1/n1
! 1st/p
! 1th/tc
! 2/nm
! 2nd/p
! 2th/tc
! 3/nm
! 3rd/p
! 3th/tc
! 4/nm
! 4th/pt
! 5/nm
! 5th/pt
! 6/nm
! 6th/pt
! 7/nm
! 7th/pt
! 8/nm
! 8th/pt
! 9/nm
! 9th/pt
A/SM
--- 1,12 ----
48756
! 0th
! 1st
! 2nd
! 3rd
! 4th
! 5th
! 6th
! 7th
! 8th
! 9th
A/SM
***************
*** 48757 ****
--- 48757,48767 ----
--- 48744,48754 ----
zymurgy/M
+ a a/%
+ a an/%

View File

@@ -50,10 +50,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
# Files for en_US, en_CA and en_GB can be obtained from:
# github.com/marcoagpinto/aoo-mozilla-en-dict
# Unfortunately, giving suggestions becomes terribly slow with these.
# TODO: find out why suggestions are slow and fix that.
#
# NOTE: en_AU and en_NZ use older libraries.
# For now we use the 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

View File

@@ -263,6 +263,8 @@ endif
# TCL=[Path to TCL directory] (Set inside Make_cyg.mak or Make_ming.mak)
# DYNAMIC_TCL=yes (to load the TCL DLL dynamically)
# TCL_VER=[TCL version, eg 83, 84] (default is 83)
# TCL_VER_LONG=[Tcl version, eg 8.3] (default is 8.3)
# You must set TCL_VER_LONG when you set TCL_VER.
ifdef TCL
ifndef DYNAMIC_TCL
DYNAMIC_TCL=yes
@@ -270,6 +272,9 @@ endif
ifndef TCL_VER
TCL_VER = 83
endif
ifndef TCL_VER_LONG
TCL_VER_LONG = 8.3
endif
TCLINC += -I$(TCL)/include
endif
@@ -319,10 +324,14 @@ ifndef RUBY_INSTALL_NAME
ifeq ($(RUBY_VER), 16)
RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
else
ifndef RUBY_MSVCRT_NAME
# Base name of msvcrXX.dll which is used by ruby's dll.
RUBY_MSVCRT_NAME = msvcrt
endif
ifeq ($(ARCH),x86-64)
RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER)
RUBY_INSTALL_NAME = x64-$(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
else
RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
RUBY_INSTALL_NAME = $(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
endif
endif
endif
@@ -444,21 +453,21 @@ endif
ifdef PYTHON
CFLAGS += -DFEAT_PYTHON
ifeq (yes, $(DYNAMIC_PYTHON))
CFLAGS += -DDYNAMIC_PYTHON
CFLAGS += -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"$(DYNAMIC_PYTHON_DLL)\"
endif
endif
ifdef PYTHON3
CFLAGS += -DFEAT_PYTHON3
ifeq (yes, $(DYNAMIC_PYTHON3))
CFLAGS += -DDYNAMIC_PYTHON3
CFLAGS += -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"PYTHON$(PYTHON3_VER).dll\"
endif
endif
ifdef TCL
CFLAGS += -DFEAT_TCL $(TCLINC)
ifeq (yes, $(DYNAMIC_TCL))
CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\"
CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\" -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
endif
endif
@@ -780,10 +789,10 @@ INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
gui.h
$(OUTDIR)/if_python.o : if_python.c if_py_both.h $(INCL)
$(CC) -c $(CFLAGS) $(PYTHONINC) $(PYTHON_HOME_DEF) -DDYNAMIC_PYTHON_DLL=\"$(DYNAMIC_PYTHON_DLL)\" $< -o $@
$(CC) -c $(CFLAGS) $(PYTHONINC) $(PYTHON_HOME_DEF) $< -o $@
$(OUTDIR)/if_python3.o : if_python3.c if_py_both.h $(INCL)
$(CC) -c $(CFLAGS) $(PYTHON3INC) -DDYNAMIC_PYTHON3_DLL=\"PYTHON$(PYTHON3_VER).dll\" $< -o $@
$(CC) -c $(CFLAGS) $(PYTHON3INC) $< -o $@
$(OUTDIR)/%.o : %.c $(INCL)
$(CC) -c $(CFLAGS) $< -o $@

View File

@@ -394,8 +394,24 @@ OUTDIR=$(OBJDIR)
!if $(MSVCVER) < 1900
MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
MSVCRT_VER = ($(MSVCVER) / 10 - 60)
!else
MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
MSVCRT_VER = ($(MSVCVER) / 10 - 50)
!endif
# Calculate MSVCRT_VER
!if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
!include msvcrtver.~
!if [del msvcrtver.~]
!endif
!endif
# Base name of the msvcrXX.dll
!if $(MSVCRT_VER) <= 60
MSVCRT_NAME = msvcrt
!else
MSVCRT_NAME = msvcr$(MSVCRT_VER)
!endif
!if $(MSVC_MAJOR) == 6
@@ -858,19 +874,39 @@ RUBY_API_VER = $(RUBY_VER_LONG:.=)
!endif
!if $(RUBY_VER) >= 18
!ifndef RUBY_PLATFORM
!if "$(CPU)" == "i386"
RUBY_PLATFORM = i386-mswin32
!endif
!else # CPU
RUBY_PLATFORM = x64-mswin64
!endif # CPU
!if $(MSVCRT_VER) >= 70
RUBY_PLATFORM = $(RUBY_PLATFORM)_$(MSVCRT_VER)
!endif # MSVCRT_VER
!endif # RUBY_PLATFORM
!ifndef RUBY_INSTALL_NAME
RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
!endif
!else
!ifndef RUBY_MSVCRT_NAME
# Base name of msvcrXX.dll which is used by ruby's dll.
RUBY_MSVCRT_NAME = $(MSVCRT_NAME)
!endif # RUBY_MSVCRT_NAME
!if "$(CPU)" == "i386"
RUBY_INSTALL_NAME = $(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
!else # CPU
RUBY_INSTALL_NAME = x64-$(RUBY_MSVCRT_NAME)-ruby$(RUBY_API_VER)
!endif # CPU
!endif # RUBY_INSTALL_NAME
!else # $(RUBY_VER) >= 18
!ifndef RUBY_PLATFORM
RUBY_PLATFORM = i586-mswin32
!endif
!ifndef RUBY_INSTALL_NAME
RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
!endif
!endif # $(RUBY_VER) >= 18
!message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"

View File

@@ -1962,6 +1962,7 @@ test1 \
test_tagcase \
test_textobjects \
test_utf8 \
test_wordcount \
test_writefile \
test2 test3 test4 test5 test6 test7 test8 test9 \
test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 \
@@ -1977,11 +1978,15 @@ test1 \
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
test_assert \
test_backspace_opt \
test_cdo \
test_menu \
test_quickfix \
test_searchpos \
test_set \
test_sort \
test_undolevels \
test_unlet \
test_viml \
test_alot:
cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile $@.res VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
@@ -1991,7 +1996,7 @@ test_assert \
cat testdir/messages
newtests:
cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile newtests VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile newtestssilent VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
@if test -f testdir/test.log; then \
cat testdir/test.log; \
fi
@@ -2796,7 +2801,7 @@ objects/ops.o: ops.c
$(CCC) -o $@ ops.c
objects/option.o: option.c
$(CCC) -o $@ option.c
$(CCC) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) $(RUBY_CFLAGS) -o $@ option.c
objects/os_beos.o: os_beos.c
$(CCC) -o $@ os_beos.c

View File

@@ -467,6 +467,7 @@ static void f_abs __ARGS((typval_T *argvars, typval_T *rettv));
static void f_acos __ARGS((typval_T *argvars, typval_T *rettv));
#endif
static void f_add __ARGS((typval_T *argvars, typval_T *rettv));
static void f_alloc_fail __ARGS((typval_T *argvars, typval_T *rettv));
static void f_and __ARGS((typval_T *argvars, typval_T *rettv));
static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
@@ -3740,12 +3741,19 @@ do_unlet(name, forceit)
if (ht == &globvarht)
d = &globvardict;
else if (current_funccal != NULL
&& ht == &current_funccal->l_vars.dv_hashtab)
&& ht == &current_funccal->l_vars.dv_hashtab)
d = &current_funccal->l_vars;
else if (ht == &compat_hashtab)
d = &vimvardict;
else
{
di = find_var_in_ht(ht, *name, (char_u *)"", FALSE);
d = di->di_tv.vval.v_dict;
d = di == NULL ? NULL : di->di_tv.vval.v_dict;
}
if (d == NULL)
{
EMSG2(_(e_intern2), "do_unlet()");
return FAIL;
}
hi = hash_find(ht, varname);
if (!HASHITEM_EMPTY(hi))
@@ -3755,6 +3763,7 @@ do_unlet(name, forceit)
|| var_check_ro(di->di_flags, name, FALSE)
|| tv_check_lock(d->dv_lock, name, FALSE))
return FAIL;
delete_var(ht, hi);
return OK;
}
@@ -8068,6 +8077,7 @@ static struct fst
{"acos", 1, 1, f_acos}, /* WJMc */
#endif
{"add", 2, 2, f_add},
{"alloc_fail", 3, 3, f_alloc_fail},
{"and", 2, 2, f_and},
{"append", 2, 2, f_append},
{"argc", 0, 0, f_argc},
@@ -8980,6 +8990,28 @@ f_add(argvars, rettv)
EMSG(_(e_listreq));
}
/*
* "alloc_fail(id, countdown, repeat)" function
*/
static void
f_alloc_fail(argvars, rettv)
typval_T *argvars;
typval_T *rettv UNUSED;
{
if (argvars[0].v_type != VAR_NUMBER
|| argvars[0].vval.v_number <= 0
|| argvars[1].v_type != VAR_NUMBER
|| argvars[1].vval.v_number < 0
|| argvars[2].v_type != VAR_NUMBER)
EMSG(_(e_invarg));
else
{
alloc_fail_id = argvars[0].vval.v_number;
alloc_fail_countdown = argvars[1].vval.v_number;
alloc_fail_repeat = argvars[2].vval.v_number;
}
}
/*
* "and(expr, expr)" function
*/

View File

@@ -1619,6 +1619,15 @@ EXTERN FILE *time_fd INIT(= NULL); /* where to write startup timing */
EXTERN int ignored;
EXTERN char *ignoredp;
#ifdef FEAT_EVAL
/* set by alloc_fail(): ID */
EXTERN int alloc_fail_id INIT(= 0);
/* set by alloc_fail(), when zero alloc() returns NULL */
EXTERN int alloc_fail_countdown INIT(= -1);
/* set by alloc_fail(), number of times alloc() returns NULL */
EXTERN int alloc_fail_repeat INIT(= 0);
#endif
/*
* Optional Farsi support. Include it here, so EXTERN and INIT are defined.
*/

View File

@@ -402,12 +402,7 @@ lua_link_init(char *libname, int verbose)
int
lua_enabled(int verbose)
{
#ifdef WIN3264
char *dll = DYNAMIC_LUA_DLL;
#else
char *dll = *p_luadll ? (char *)p_luadll : DYNAMIC_LUA_DLL;
#endif
return lua_link_init(dll, verbose) == OK;
return lua_link_init((char *)p_luadll, verbose) == OK;
}
#endif /* DYNAMIC_LUA */

View File

@@ -611,12 +611,7 @@ perl_runtime_link_init(char *libname, int verbose)
perl_enabled(verbose)
int verbose;
{
#ifdef WIN3264
char *dll = DYNAMIC_PERL_DLL;
#else
char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL;
#endif
return perl_runtime_link_init(dll, verbose) == OK;
return perl_runtime_link_init((char *)p_perldll, verbose) == OK;
}
#endif /* DYNAMIC_PERL */

View File

@@ -732,12 +732,7 @@ python_runtime_link_init(char *libname, int verbose)
int
python_enabled(int verbose)
{
#ifdef WIN3264
char *dll = DYNAMIC_PYTHON_DLL;
#else
char *dll = *p_pydll ? (char *)p_pydll : DYNAMIC_PYTHON_DLL;
#endif
return python_runtime_link_init(dll, verbose) == OK;
return python_runtime_link_init((char *)p_pydll, verbose) == OK;
}
/*

View File

@@ -686,12 +686,7 @@ py3_runtime_link_init(char *libname, int verbose)
int
python3_enabled(int verbose)
{
#ifdef WIN3264
char *dll = DYNAMIC_PYTHON3_DLL;
#else
char *dll = *p_py3dll ? (char *)p_py3dll : DYNAMIC_PYTHON3_DLL;
#endif
return py3_runtime_link_init(dll, verbose) == OK;
return py3_runtime_link_init((char *)p_py3dll, verbose) == OK;
}
/* Load the standard Python exceptions - don't import the symbols from the

View File

@@ -677,12 +677,7 @@ ruby_runtime_link_init(char *libname, int verbose)
ruby_enabled(verbose)
int verbose;
{
#ifdef WIN3264
char *dll = DYNAMIC_RUBY_DLL;
#else
char *dll = *p_rubydll ? (char *)p_rubydll : DYNAMIC_RUBY_DLL;
#endif
return ruby_runtime_link_init(dll, verbose) == OK;
return ruby_runtime_link_init((char *)p_rubydll, verbose) == OK;
}
#endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */

View File

@@ -797,6 +797,21 @@ vim_mem_profile_dump()
#endif /* MEM_PROFILE */
#ifdef FEAT_EVAL
static int
alloc_does_fail()
{
if (alloc_fail_countdown == 0)
{
if (--alloc_fail_repeat <= 0)
alloc_fail_id = 0;
return TRUE;
}
--alloc_fail_countdown;
return FALSE;
}
#endif
/*
* Some memory is reserved for error messages and for being able to
* call mf_release_all(), which needs some memory for mf_trans_add().
@@ -820,6 +835,22 @@ alloc(size)
return (lalloc((long_u)size, TRUE));
}
/*
* alloc() with an ID for alloc_fail().
* LAST_ID_USED: 5
*/
char_u *
alloc_id(size, id)
unsigned size;
int id UNUSED;
{
#ifdef FEAT_EVAL
if (alloc_fail_id == id && alloc_does_fail())
return NULL;
#endif
return (lalloc((long_u)size, TRUE));
}
/*
* Allocate memory and set all bytes to zero.
*/
@@ -968,6 +999,23 @@ theend:
return p;
}
/*
* lalloc() with an ID for alloc_fail().
* See LAST_ID_USED above.
*/
char_u *
lalloc_id(size, message, id)
long_u size;
int message;
int id UNUSED;
{
#ifdef FEAT_EVAL
if (alloc_fail_id == id && alloc_does_fail())
return NULL;
#endif
return (lalloc((long_u)size, message));
}
#if defined(MEM_PROFILE) || defined(PROTO)
/*
* realloc() with memory profiling.
@@ -6252,8 +6300,9 @@ put_bytes(fd, nr, len)
/*
* Write time_t to file "fd" in 8 bytes.
* Returns FAIL when the write failed.
*/
void
int
put_time(fd, the_time)
FILE *fd;
time_t the_time;
@@ -6261,7 +6310,7 @@ put_time(fd, the_time)
char_u buf[8];
time_to_bytes(the_time, buf);
(void)fwrite(buf, (size_t)8, (size_t)1, fd);
return fwrite(buf, (size_t)8, (size_t)1, fd) == 1 ? OK : FAIL;
}
/*

View File

@@ -6974,7 +6974,9 @@ cursor_pos_info(dict)
char_u buf2[40];
linenr_T lnum;
long byte_count = 0;
#ifdef FEAT_MBYTE
long bom_count = 0;
#endif
long byte_count_cursor = 0;
long char_count = 0;
long char_count_cursor = 0;
@@ -7190,15 +7192,15 @@ cursor_pos_info(dict)
}
}
/* Don't shorten this message, the user asked for it. */
#ifdef FEAT_MBYTE
bom_count = bomb_size();
if (bom_count > 0)
sprintf((char *)IObuff + STRLEN(IObuff), _("(+%ld for BOM)"),
bom_count);
vim_snprintf((char *)IObuff + STRLEN(IObuff), IOSIZE,
_("(+%ld for BOM)"), bom_count);
#endif
if (dict == NULL)
{
/* Don't shorten this message, the user asked for it. */
p = p_shm;
p_shm = (char_u *)"";
msg(IObuff);
@@ -7210,19 +7212,17 @@ cursor_pos_info(dict)
{
dict_add_nr_str(dict, "words", (long)word_count, NULL);
dict_add_nr_str(dict, "chars", (long)char_count, NULL);
dict_add_nr_str(dict, "bytes", (long)byte_count + bom_count, NULL);
if (VIsual_active)
{
dict_add_nr_str(dict, "visual_bytes", (long)byte_count_cursor, NULL);
dict_add_nr_str(dict, "visual_chars", (long)char_count_cursor, NULL);
dict_add_nr_str(dict, "visual_words", (long)word_count_cursor, NULL);
}
else
{
dict_add_nr_str(dict, "cursor_bytes", (long)byte_count_cursor, NULL);
dict_add_nr_str(dict, "cursor_chars", (long)char_count_cursor, NULL);
dict_add_nr_str(dict, "cursor_words", (long)word_count_cursor, NULL);
}
dict_add_nr_str(dict, "bytes", (long)byte_count
# ifdef FEAT_MBYTE
+ bom_count
# endif
, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_bytes" : "cursor_bytes",
(long)byte_count_cursor, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_chars" : "cursor_chars",
(long)char_count_cursor, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_words" : "cursor_words",
(long)word_count_cursor, NULL);
}
#endif
}

View File

@@ -1776,10 +1776,11 @@ static struct vimoption
{"loadplugins", "lpl", P_BOOL|P_VI_DEF,
(char_u *)&p_lpl, PV_NONE,
{(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT},
#if defined(DYNAMIC_LUA) && !defined(WIN3264)
#if defined(DYNAMIC_LUA)
{"luadll", NULL, P_STRING|P_VI_DEF|P_SECURE,
(char_u *)&p_luadll, PV_NONE,
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
{(char_u *)DYNAMIC_LUA_DLL, (char_u *)0L}
SCRIPTID_INIT},
#endif
#ifdef FEAT_GUI_MAC
{"macatsui", NULL, P_BOOL|P_VI_DEF|P_RCLR,
@@ -2016,10 +2017,11 @@ static struct vimoption
# endif
#endif
(char_u *)0L} SCRIPTID_INIT},
#if defined(DYNAMIC_PERL) && !defined(WIN3264)
#if defined(DYNAMIC_PERL)
{"perldll", NULL, P_STRING|P_VI_DEF|P_SECURE,
(char_u *)&p_perldll, PV_NONE,
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
{(char_u *)DYNAMIC_PERL_DLL, (char_u *)0L}
SCRIPTID_INIT},
#endif
{"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM,
(char_u *)&p_pi, PV_PI,
@@ -2126,15 +2128,17 @@ static struct vimoption
(char_u *)NULL, PV_NONE,
#endif
{(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
#if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
#if defined(DYNAMIC_PYTHON3)
{"pythonthreedll", NULL, P_STRING|P_VI_DEF|P_SECURE,
(char_u *)&p_py3dll, PV_NONE,
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
{(char_u *)DYNAMIC_PYTHON3_DLL, (char_u *)0L}
SCRIPTID_INIT},
#endif
#if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
#if defined(DYNAMIC_PYTHON)
{"pythondll", NULL, P_STRING|P_VI_DEF|P_SECURE,
(char_u *)&p_pydll, PV_NONE,
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
{(char_u *)DYNAMIC_PYTHON_DLL, (char_u *)0L}
SCRIPTID_INIT},
#endif
{"quoteescape", "qe", P_STRING|P_ALLOCED|P_VI_DEF,
#ifdef FEAT_TEXTOBJ
@@ -2209,10 +2213,11 @@ static struct vimoption
{(char_u *)NULL, (char_u *)0L}
#endif
SCRIPTID_INIT},
#if defined(DYNAMIC_RUBY) && !defined(WIN3264)
#if defined(DYNAMIC_RUBY)
{"rubydll", NULL, P_STRING|P_VI_DEF|P_SECURE,
(char_u *)&p_rubydll, PV_NONE,
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
{(char_u *)DYNAMIC_RUBY_DLL, (char_u *)0L}
SCRIPTID_INIT},
#endif
{"ruler", "ru", P_BOOL|P_VI_DEF|P_VIM|P_RSTAT,
#ifdef FEAT_CMDL_INFO

View File

@@ -627,7 +627,7 @@ EXTERN char_u *p_lcs; /* 'listchars' */
EXTERN int p_lz; /* 'lazyredraw' */
EXTERN int p_lpl; /* 'loadplugins' */
#if defined(DYNAMIC_LUA) && !defined(WIN3264)
#if defined(DYNAMIC_LUA)
EXTERN char_u *p_luadll; /* 'luadll' */
#endif
#ifdef FEAT_GUI_MAC
@@ -686,13 +686,13 @@ EXTERN char_u *p_path; /* 'path' */
#ifdef FEAT_SEARCHPATH
EXTERN char_u *p_cdpath; /* 'cdpath' */
#endif
#if defined(DYNAMIC_PERL) && !defined(WIN3264)
#if defined(DYNAMIC_PERL)
EXTERN char_u *p_perldll; /* 'perldll' */
#endif
#if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
#if defined(DYNAMIC_PYTHON3)
EXTERN char_u *p_py3dll; /* 'pythonthreedll' */
#endif
#if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
#if defined(DYNAMIC_PYTHON)
EXTERN char_u *p_pydll; /* 'pythondll' */
#endif
#ifdef FEAT_RELTIME
@@ -714,7 +714,7 @@ EXTERN int p_rs; /* 'restorescreen' */
EXTERN int p_ari; /* 'allowrevins' */
EXTERN int p_ri; /* 'revins' */
#endif
#if defined(DYNAMIC_RUBY) && !defined(WIN3264)
#if defined(DYNAMIC_RUBY)
EXTERN char_u *p_rubydll; /* 'rubydll' */
#endif
#ifdef FEAT_CMDL_INFO

View File

@@ -20,10 +20,12 @@ void adjust_cursor_col __ARGS((void));
int leftcol_changed __ARGS((void));
void vim_mem_profile_dump __ARGS((void));
char_u *alloc __ARGS((unsigned size));
char_u *alloc_id __ARGS((unsigned size, int id));
char_u *alloc_clear __ARGS((unsigned size));
char_u *alloc_check __ARGS((unsigned size));
char_u *lalloc_clear __ARGS((long_u size, int message));
char_u *lalloc __ARGS((long_u size, int message));
char_u *lalloc_id __ARGS((long_u size, int message, int id));
void *mem_realloc __ARGS((void *ptr, size_t size));
void do_outofmem_msg __ARGS((long_u size));
void free_all_mem __ARGS((void));
@@ -103,7 +105,7 @@ int get4c __ARGS((FILE *fd));
time_t get8ctime __ARGS((FILE *fd));
char_u *read_string __ARGS((FILE *fd, int cnt));
int put_bytes __ARGS((FILE *fd, long_u nr, int len));
void put_time __ARGS((FILE *fd, time_t the_time));
int put_time __ARGS((FILE *fd, time_t the_time));
void time_to_bytes __ARGS((time_t the_time, char_u *buf));
int has_non_ascii __ARGS((char_u *s));
void parse_queued_messages __ARGS((void));

View File

@@ -162,9 +162,6 @@ qf_init(wp, efile, errorformat, newlist, qf_title)
{
qf_info_T *qi = &ql_info;
if (efile == NULL)
return FAIL;
if (wp != NULL)
{
qi = ll_get_or_alloc_list(wp);
@@ -253,9 +250,9 @@ qf_init_ext(qi, efile, buf, tv, errorformat, newlist, lnumfirst, lnumlast,
{'s', ".\\+"}
};
namebuf = alloc(CMDBUFFSIZE + 1);
errmsg = alloc(CMDBUFFSIZE + 1);
pattern = alloc(CMDBUFFSIZE + 1);
namebuf = alloc_id(CMDBUFFSIZE + 1, 3);
errmsg = alloc_id(CMDBUFFSIZE + 1, 4);
pattern = alloc_id(CMDBUFFSIZE + 1, 5);
if (namebuf == NULL || errmsg == NULL || pattern == NULL)
goto qf_init_end;
@@ -3465,8 +3462,8 @@ ex_vimgrep(eap)
goto theend;
}
dirname_start = alloc(MAXPATHL);
dirname_now = alloc(MAXPATHL);
dirname_start = alloc_id(MAXPATHL, 1);
dirname_now = alloc_id(MAXPATHL, 2);
if (dirname_start == NULL || dirname_now == NULL)
goto theend;

View File

@@ -59,6 +59,12 @@
# define SPELL_PRINTTREE
#endif
/* Use SPELL_COMPRESS_ALLWAYS for debugging: compress the word tree after
* adding a word. Only use it for small word lists! */
#if 0
# define SPELL_COMPRESS_ALLWAYS
#endif
/* Use DEBUG_TRIEWALK to print the changes made in suggest_trie_walk() for a
* specific word. */
#if 0
@@ -177,6 +183,8 @@
* <timestamp> 8 bytes time in seconds that must match with .sug file
*
* sectionID == SN_NOSPLITSUGS: nothing
*
* sectionID == SN_NOCOMPOUNDSUGS: nothing
*
* sectionID == SN_WORDS: <word> ...
* <word> N bytes NUL terminated common word
@@ -501,6 +509,7 @@ struct slang_S
garray_T sl_repsal; /* list of fromto_T entries from REPSAL lines */
short sl_repsal_first[256]; /* sl_rep_first for REPSAL lines */
int sl_nosplitsugs; /* don't suggest splitting a word */
int sl_nocompoundsugs; /* don't suggest compounding */
/* Info from the .sug file. Loaded on demand. */
time_t sl_sugtime; /* timestamp for .sug file */
@@ -570,6 +579,7 @@ typedef struct langp_S
#define SN_WORDS 13 /* common words */
#define SN_NOSPLITSUGS 14 /* don't split word for suggestions */
#define SN_INFO 15 /* info section */
#define SN_NOCOMPOUNDSUGS 16 /* don't compound for suggestions */
#define SN_END 255 /* end of sections */
#define SNF_REQUIRED 1 /* <sectionflags>: required section */
@@ -2913,7 +2923,11 @@ spell_load_file(fname, lang, old_lp, silent)
break;
case SN_NOSPLITSUGS:
lp->sl_nosplitsugs = TRUE; /* <timestamp> */
lp->sl_nosplitsugs = TRUE;
break;
case SN_NOCOMPOUNDSUGS:
lp->sl_nocompoundsugs = TRUE;
break;
case SN_COMPOUND:
@@ -5005,6 +5019,7 @@ typedef struct spellinfo_S
char_u *si_sofoto; /* SOFOTO text */
int si_nosugfile; /* NOSUGFILE item found */
int si_nosplitsugs; /* NOSPLITSUGS item found */
int si_nocompoundsugs; /* NOCOMPOUNDSUGS item found */
int si_followup; /* soundsalike: ? */
int si_collapse; /* soundsalike: ? */
hashtab_T si_commonwords; /* hashtable for common words */
@@ -5130,9 +5145,9 @@ spell_print_node(wordnode_T *node, int depth)
PRINTSOME(line1, depth, "(%d)", node->wn_nr, 0);
PRINTSOME(line2, depth, " ", 0, 0);
PRINTSOME(line3, depth, " ", 0, 0);
msg(line1);
msg(line2);
msg(line3);
msg((char_u *)line1);
msg((char_u *)line2);
msg((char_u *)line3);
}
else
{
@@ -5158,9 +5173,9 @@ spell_print_node(wordnode_T *node, int depth)
if (node->wn_byte == NUL)
{
msg(line1);
msg(line2);
msg(line3);
msg((char_u *)line1);
msg((char_u *)line2);
msg((char_u *)line3);
}
/* do the children */
@@ -5598,6 +5613,10 @@ spell_read_aff(spin, fname)
{
spin->si_nosplitsugs = TRUE;
}
else if (is_aff_rule(items, itemcnt, "NOCOMPOUNDSUGS", 1))
{
spin->si_nocompoundsugs = TRUE;
}
else if (is_aff_rule(items, itemcnt, "NOSUGFILE", 1))
{
spin->si_nosugfile = TRUE;
@@ -7621,7 +7640,7 @@ tree_add_word(spin, word, root, flags, region, affixID)
node = *prev;
}
#ifdef SPELL_PRINTTREE
smsg("Added \"%s\"", word);
smsg((char_u *)"Added \"%s\"", word);
spell_print_tree(root->wn_sibling);
#endif
@@ -7647,7 +7666,7 @@ tree_add_word(spin, word, root, flags, region, affixID)
* (si_compress_cnt == 1) and the number of free nodes drops below the
* maximum word length.
*/
#ifndef SPELL_PRINTTREE
#ifndef SPELL_COMPRESS_ALLWAYS
if (spin->si_compress_cnt == 1
? spin->si_free_count < MAXWLEN
: spin->si_blocks_cnt >= compress_start)
@@ -8295,6 +8314,16 @@ write_vim_spell(spin, fname)
put_bytes(fd, (long_u)0, 4); /* <sectionlen> */
}
/* SN_NOCOMPUNDSUGS: nothing
* This is used to notify that no suggestions with compounds are to be
* made. */
if (spin->si_nocompoundsugs)
{
putc(SN_NOCOMPOUNDSUGS, fd); /* <sectionID> */
putc(0, fd); /* <sectionflags> */
put_bytes(fd, (long_u)0, 4); /* <sectionlen> */
}
/* SN_COMPOUND: compound info.
* We don't mark it required, when not supported all compound words will
* be bad words. */
@@ -11278,6 +11307,56 @@ suggest_try_special(su)
}
}
/*
* Change the 0 to 1 to measure how much time is spent in each state.
* Output is dumped in "suggestprof".
*/
#if 0
# define SUGGEST_PROFILE
proftime_T current;
proftime_T total;
proftime_T times[STATE_FINAL + 1];
long counts[STATE_FINAL + 1];
static void
prof_init(void)
{
for (int i = 0; i <= STATE_FINAL; ++i)
{
profile_zero(&times[i]);
counts[i] = 0;
}
profile_start(&current);
profile_start(&total);
}
/* call before changing state */
static void
prof_store(state_T state)
{
profile_end(&current);
profile_add(&times[state], &current);
++counts[state];
profile_start(&current);
}
# define PROF_STORE(state) prof_store(state);
static void
prof_report(char *name)
{
FILE *fd = fopen("suggestprof", "a");
profile_end(&total);
fprintf(fd, "-----------------------\n");
fprintf(fd, "%s: %s\n", name, profile_msg(&total));
for (int i = 0; i <= STATE_FINAL; ++i)
fprintf(fd, "%d: %s (%ld)\n", i, profile_msg(&times[i]), counts[i]);
fclose(fd);
}
#else
# define PROF_STORE(state)
#endif
/*
* Try finding suggestions by adding/removing/swapping letters.
*/
@@ -11309,7 +11388,13 @@ suggest_try_change(su)
continue;
/* Try it for this language. Will add possible suggestions. */
#ifdef SUGGEST_PROFILE
prof_init();
#endif
suggest_trie_walk(su, lp, fword, FALSE);
#ifdef SUGGEST_PROFILE
prof_report("try_change");
#endif
}
}
@@ -11467,6 +11552,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
/* Always past NUL bytes now. */
n = (int)sp->ts_state;
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_ENDNUL;
sp->ts_save_badflags = su->su_badflags;
@@ -11510,6 +11596,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
if (sp->ts_curi > len || byts[arridx] != 0)
{
/* Past bytes in node and/or past NUL bytes. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_ENDNUL;
sp->ts_save_badflags = su->su_badflags;
break;
@@ -11825,6 +11912,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
*/
try_compound = FALSE;
if (!soundfold
&& !slang->sl_nocompoundsugs
&& slang->sl_compprog != NULL
&& ((unsigned)flags >> 24) != 0
&& sp->ts_twordlen - sp->ts_splitoff
@@ -11849,7 +11937,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
/* For NOBREAK we never try splitting, it won't make any word
* valid. */
if (slang->sl_nobreak)
if (slang->sl_nobreak && !slang->sl_nocompoundsugs)
try_compound = TRUE;
/* If we could add a compound word, and it's also possible to
@@ -11909,6 +11997,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
#endif
/* Save things to be restored at STATE_SPLITUNDO. */
sp->ts_save_badflags = su->su_badflags;
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_SPLITUNDO;
++depth;
@@ -11983,6 +12072,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
byts = pbyts;
idxs = pidxs;
sp->ts_prefixdepth = PFD_PREFIXTREE;
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_NOPREFIX;
}
}
@@ -11995,6 +12085,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
su->su_badflags = sp->ts_save_badflags;
/* Continue looking for NUL bytes. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_START;
/* In case we went into the prefix tree. */
@@ -12012,9 +12103,11 @@ suggest_trie_walk(su, lp, fword, soundfold)
)
{
/* The badword ends, can't use STATE_PLAIN. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_DEL;
break;
}
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_PLAIN;
/*FALLTHROUGH*/
@@ -12028,6 +12121,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
{
/* Done all bytes at this node, do next state. When still at
* already changed bytes skip the other tricks. */
PROF_STORE(sp->ts_state)
if (sp->ts_fidx >= sp->ts_fidxtry)
sp->ts_state = STATE_DEL;
else
@@ -12184,6 +12278,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
* delete/insert/swap a character. */
if (has_mbyte && sp->ts_tcharlen > 0)
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_FINAL;
break;
}
@@ -12191,6 +12286,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
/*
* Try skipping one character in the bad word (delete it).
*/
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_INS_PREP;
sp->ts_curi = 1;
if (soundfold && sp->ts_fidx == 0 && fword[sp->ts_fidx] == '*')
@@ -12245,6 +12341,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
{
/* If we just deleted a byte then inserting won't make sense,
* a substitute is always cheaper. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_SWAP;
break;
}
@@ -12256,12 +12353,14 @@ suggest_trie_walk(su, lp, fword, soundfold)
if (sp->ts_curi > byts[n])
{
/* Only NUL bytes at this node, go to next state. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_SWAP;
break;
}
if (byts[n + sp->ts_curi] != NUL)
{
/* Found a byte to insert. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_INS;
break;
}
@@ -12278,6 +12377,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
if (sp->ts_curi > byts[n])
{
/* Done all bytes at this node, go to next state. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_SWAP;
break;
}
@@ -12349,6 +12449,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
if (c == NUL)
{
/* End of word, can't swap or replace. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_FINAL;
break;
}
@@ -12357,6 +12458,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
* SWAP3 etc. also don't make sense then. */
if (!soundfold && !spell_iswordp(p, curwin))
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_INI;
break;
}
@@ -12387,6 +12489,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
/* When the second character is NUL we can't swap. */
if (c2 == NUL)
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_INI;
break;
}
@@ -12395,6 +12498,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
* Also get here if the second char is not a word character. */
if (c == c2)
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_SWAP3;
break;
}
@@ -12406,6 +12510,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
sp->ts_twordlen, tword, fword + sp->ts_fidx,
c, c2);
#endif
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_UNSWAP;
++depth;
#ifdef FEAT_MBYTE
@@ -12425,8 +12530,11 @@ suggest_trie_walk(su, lp, fword, soundfold)
}
}
else
{
/* If this swap doesn't work then SWAP3 won't either. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_INI;
}
break;
case STATE_UNSWAP:
@@ -12484,6 +12592,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
* Second character may any char: "a.b" -> "b.a" */
if (c == c3 || c3 == NUL)
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_INI;
break;
}
@@ -12495,6 +12604,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
sp->ts_twordlen, tword, fword + sp->ts_fidx,
c, c3);
#endif
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_UNSWAP3;
++depth;
#ifdef FEAT_MBYTE
@@ -12515,7 +12625,10 @@ suggest_trie_walk(su, lp, fword, soundfold)
}
}
else
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_INI;
}
break;
case STATE_UNSWAP3:
@@ -12547,6 +12660,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
{
/* Middle char is not a word char, skip the rotate. First and
* third char were already checked at swap and swap3. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_INI;
break;
}
@@ -12562,6 +12676,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
sp->ts_twordlen, tword, fword + sp->ts_fidx,
p[0], p[1], p[2]);
#endif
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_UNROT3L;
++depth;
p = fword + sp->ts_fidx;
@@ -12587,7 +12702,10 @@ suggest_trie_walk(su, lp, fword, soundfold)
}
}
else
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_INI;
}
break;
case STATE_UNROT3L:
@@ -12623,6 +12741,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
sp->ts_twordlen, tword, fword + sp->ts_fidx,
p[0], p[1], p[2]);
#endif
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_UNROT3R;
++depth;
p = fword + sp->ts_fidx;
@@ -12648,7 +12767,10 @@ suggest_trie_walk(su, lp, fword, soundfold)
}
}
else
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_INI;
}
break;
case STATE_UNROT3R:
@@ -12684,6 +12806,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
|| sp->ts_score + SCORE_REP >= su->su_maxscore
|| sp->ts_fidx < sp->ts_fidxtry)
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_FINAL;
break;
}
@@ -12697,10 +12820,12 @@ suggest_trie_walk(su, lp, fword, soundfold)
if (sp->ts_curi < 0)
{
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_FINAL;
break;
}
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP;
/*FALLTHROUGH*/
@@ -12733,6 +12858,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
ftp->ft_from, ftp->ft_to);
#endif
/* Need to undo this afterwards. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP_UNDO;
/* Change the "from" to the "to" string. */
@@ -12754,8 +12880,11 @@ suggest_trie_walk(su, lp, fword, soundfold)
}
if (sp->ts_curi >= gap->ga_len && sp->ts_state == STATE_REP)
{
/* No (more) matches. */
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_FINAL;
}
break;
@@ -12775,6 +12904,7 @@ suggest_trie_walk(su, lp, fword, soundfold)
repextra -= tl - fl;
}
mch_memmove(p, ftp->ft_from, fl);
PROF_STORE(sp->ts_state)
sp->ts_state = STATE_REP;
break;
@@ -13287,7 +13417,13 @@ suggest_try_soundalike(su)
/* try all kinds of inserts/deletes/swaps/etc. */
/* TODO: also soundfold the next words, so that we can try joining
* and splitting */
#ifdef SUGGEST_PROFILE
prof_init();
#endif
suggest_trie_walk(su, lp, salword, TRUE);
#ifdef SUGGEST_PROFILE
prof_report("soundalike");
#endif
}
}
}

View File

@@ -3022,6 +3022,8 @@ find_endpos(idx, startpos, m_endpos, hl_endpos, flagsp, end_endpos,
if (r && regmatch.startpos[0].col
<= best_regmatch.startpos[0].col)
{
int line_len;
/* Add offset to skip pattern match */
syn_add_end_off(&pos, &regmatch, spp_skip, SPO_ME_OFF, 1);
@@ -3031,6 +3033,7 @@ find_endpos(idx, startpos, m_endpos, hl_endpos, flagsp, end_endpos,
break;
line = ml_get_buf(syn_buf, startpos->lnum, FALSE);
line_len = (int)STRLEN(line);
/* take care of an empty match or negative offset */
if (pos.col <= matchcol)
@@ -3040,12 +3043,12 @@ find_endpos(idx, startpos, m_endpos, hl_endpos, flagsp, end_endpos,
else
/* Be careful not to jump over the NUL at the end-of-line */
for (matchcol = regmatch.endpos[0].col;
line[matchcol] != NUL && matchcol < pos.col;
matchcol < line_len && matchcol < pos.col;
++matchcol)
;
/* if the skip pattern includes end-of-line, break here */
if (line[matchcol] == NUL)
if (matchcol >= line_len)
break;
continue; /* start with first end pattern again */
@@ -5830,6 +5833,11 @@ syn_cmd_sync(eap, syncing)
}
else if (STRCMP(key, "LINECONT") == 0)
{
if (*next_arg == NUL) /* missing pattern */
{
illegal = TRUE;
break;
}
if (curwin->w_s->b_syn_linecont_pat != NULL)
{
EMSG(_("E403: syntax sync: line continuations pattern specified twice"));

View File

@@ -174,6 +174,7 @@ SCRIPTS_GUI = test16.out
# Keep test_alot.res as the last one, sort the others.
NEW_TESTS = test_assert.res \
test_cdo.res \
test_quickfix.res \
test_viml.res \
test_alot.res

View File

@@ -120,7 +120,11 @@ nolog:
# Limitation: Only works with the +eval feature.
RUN_VIMTEST = VIMRUNTIME=$(SCRIPTSOURCE); export VIMRUNTIME; $(VALGRIND) $(VIMPROG) -f -u unix.vim -U NONE --noplugin
newtests: $(NEW_TESTS)
newtests: newtestssilent
@/bin/sh -c "if test -f messages && grep -q 'FAILED' messages; then cat messages && cat test.log; fi"
newtestssilent: $(NEW_TESTS)
.vim.res:
$(RUN_VIMTEST) -u NONE -S runtest.vim $*.vim

View File

@@ -1,20 +1,41 @@
This directory contains tests for various Vim features.
If it makes sense, try to add a new test to an already existing file. You may
want to separate it from other tests in that file using :" (that's an Ex
command comment).
If it makes sense, add a new test method to an already existing file. You may
want to separate it from other tests with comment lines.
The numbered tests are older, we have switched to named tests.
And the newest way of testing is to use assert functions, see test_assert.vim
for an example.
To add a new test:
1) Create test_<subject>.in and test_<subject>.ok files.
2) Add them to all Makefiles (Make*) in alphabetical order (search for an
existing test_file.out to see where to add the new one).
3) Use make test_<subject>.out to run a single test file in src/testdir/.
And then you can chose between a new style test, which is a Vim script, or an
old style test, which uses Normal mode commands. Use a new style test if you
can.
TO ADD A NEW STYLE TEST:
1) Create a test_<subject>.vim file.
2) Add test_<subject>.vim to NEW_TESTS in Make_all.mak in alphabetical order.
3) Use make test_<subject>.res to run a single test in src/testdir/.
Use make test_<subject> to run a single test in src/.
4) Also add an entry in src/Makefile.
Keep in mind that the files are used as if everything was typed.
A line break is like pressing Enter. If that happens on the last line you'll
hear a beep.
What you can use (see test_assert.vim for an example):
- Call assert_equal(), assert_true() and assert_false().
- Use try/catch to check for exceptions.
- Use alloc_fail() to have memory allocation fail. This makes it possible to
to check memory allocation failures are handled gracefully. You need to
change the source code to add an ID to the allocation. Update LAST_ID_USED
above alloc_id() to the highest ID used.
TO ADD AN OLD STYLE TEST:
1) Create test_<subject>.in and test_<subject>.ok files.
2) Add test_<subject>.out to SCRIPTS_ALL in Make_all.mak in alphabetical order.
3) Use make test_<subject>.out to run a single test in src/testdir/.
Use make test_<subject> to run a single test in src/.
4) Also add an entry in src/Makefile.
Keep in mind that the files are used as if everything was typed:
- To add comments use: :" (that's an Ex command comment)
- A line break is like pressing Enter. If that happens on the last line
you'll hear a beep!

View File

@@ -3,7 +3,9 @@
source test_backspace_opt.vim
source test_lispwords.vim
source test_menu.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_undolevels.vim
source test_unlet.vim

View File

@@ -0,0 +1,9 @@
" Test that the system menu can be loaded.
func Test_load_menu()
try
source $VIMRUNTIME/menu.vim
catch
call assert_false(1, 'error while loading menus: ' . v:exception)
endtry
endfunc

View File

@@ -0,0 +1,314 @@
" Test for the quickfix commands.
if !has('quickfix')
finish
endif
" Tests for the :clist and :llist commands
function XlistTests(cchar)
let Xlist = a:cchar . 'list'
let Xgetexpr = a:cchar . 'getexpr'
" With an empty list, command should return error
exe Xgetexpr . ' []'
exe 'silent! ' . Xlist
call assert_true(v:errmsg ==# 'E42: No Errors')
" 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']"
" List only valid entries
redir => result
exe Xlist
redir END
let l = split(result, "\n")
call assert_equal([' 2 Xtestfile1:1 col 3: Line1',
\ ' 4 Xtestfile2:2 col 2: Line2',
\ ' 6 Xtestfile3:3 col 1: Line3'], l)
" List all the entries
redir => result
exe Xlist . "!"
redir END
let l = split(result, "\n")
call assert_equal([' 1: non-error 1', ' 2 Xtestfile1:1 col 3: Line1',
\ ' 3: non-error 2', ' 4 Xtestfile2:2 col 2: Line2',
\ ' 5: non-error 3', ' 6 Xtestfile3:3 col 1: Line3'], l)
" List a range of errors
redir => result
exe Xlist . " 3,6"
redir END
let l = split(result, "\n")
call assert_equal([' 4 Xtestfile2:2 col 2: Line2',
\ ' 6 Xtestfile3:3 col 1: Line3'], l)
redir => result
exe Xlist . "! 3,4"
redir END
let l = split(result, "\n")
call assert_equal([' 3: non-error 2', ' 4 Xtestfile2:2 col 2: Line2'], l)
redir => result
exe Xlist . " -6,-4"
redir END
let l = split(result, "\n")
call assert_equal([' 2 Xtestfile1:1 col 3: Line1'], l)
redir => result
exe Xlist . "! -5,-3"
redir END
let l = split(result, "\n")
call assert_equal([' 2 Xtestfile1:1 col 3: Line1',
\ ' 3: non-error 2', ' 4 Xtestfile2:2 col 2: Line2'], l)
endfunction
function Test_clist()
call XlistTests('c')
call XlistTests('l')
endfunction
" Tests for the :colder, :cnewer, :lolder and :lnewer commands
" Note that this test assumes that a quickfix/location list is
" already set by previous tests
function XageTests(cchar)
let Xolder = a:cchar . 'older'
let Xnewer = a:cchar . 'newer'
let Xgetexpr = a:cchar . 'getexpr'
if a:cchar == 'c'
let Xgetlist = 'getqflist()'
else
let Xgetlist = 'getloclist(0)'
endif
" Jumping to a non existent list should return error
exe 'silent! ' . Xolder . ' 99'
call assert_true(v:errmsg ==# 'E380: At bottom of quickfix stack')
exe 'silent! ' . Xnewer . ' 99'
call assert_true(v:errmsg ==# 'E381: At top of quickfix stack')
" Add three quickfix/location lists
exe Xgetexpr . " ['Xtestfile1:1:3:Line1']"
exe Xgetexpr . " ['Xtestfile2:2:2:Line2']"
exe Xgetexpr . " ['Xtestfile3:3:1:Line3']"
" Go back two lists
exe Xolder
exe 'let l = ' . Xgetlist
call assert_equal('Line2', l[0].text)
" Go forward two lists
exe Xnewer
exe 'let l = ' . Xgetlist
call assert_equal('Line3', l[0].text)
" Test for the optional count argument
exe Xolder . ' 2'
exe 'let l = ' . Xgetlist
call assert_equal('Line1', l[0].text)
exe Xnewer . ' 2'
exe 'let l = ' . Xgetlist
call assert_equal('Line3', l[0].text)
endfunction
function Test_cage()
call XageTests('c')
call XageTests('l')
endfunction
" Tests for the :cwindow, :lwindow :cclose, :lclose, :copen and :lopen
" commands
function XwindowTests(cchar)
let Xwindow = a:cchar . 'window'
let Xclose = a:cchar . 'close'
let Xopen = a:cchar . 'open'
let Xgetexpr = a:cchar . 'getexpr'
" Create a list with no valid entries
exe Xgetexpr . " ['non-error 1', 'non-error 2', 'non-error 3']"
" Quickfix/Location window should not open with no valid errors
exe Xwindow
call assert_true(winnr('$') == 1)
" Create a list with valid entries
exe Xgetexpr . " ['Xtestfile1:1:3:Line1', 'Xtestfile2:2:2:Line2',
\ 'Xtestfile3:3:1:Line3']"
" Open the window
exe Xwindow
call assert_true(winnr('$') == 2 && winnr() == 2 &&
\ getline('.') ==# 'Xtestfile1|1 col 3| Line1')
" Close the window
exe Xclose
call assert_true(winnr('$') == 1)
" Create a list with no valid entries
exe Xgetexpr . " ['non-error 1', 'non-error 2', 'non-error 3']"
" Open the window
exe Xopen . ' 5'
call assert_true(winnr('$') == 2 && getline('.') ==# '|| non-error 1'
\ && winheight('.') == 5)
" Opening the window again, should move the cursor to that window
wincmd t
exe Xopen . ' 7'
call assert_true(winnr('$') == 2 && winnr() == 2 &&
\ winheight('.') == 7 &&
\ getline('.') ==# '|| non-error 1')
" Calling cwindow should close the quickfix window with no valid errors
exe Xwindow
call assert_true(winnr('$') == 1)
endfunction
function Test_cwindow()
call XwindowTests('c')
call XwindowTests('l')
endfunction
" Tests for the :cfile, :lfile, :caddfile, :laddfile, :cgetfile and :lgetfile
" commands.
function XfileTests(cchar)
let Xfile = a:cchar . 'file'
let Xgetfile = a:cchar . 'getfile'
let Xaddfile = a:cchar . 'addfile'
if a:cchar == 'c'
let Xgetlist = 'getqflist()'
else
let Xgetlist = 'getloclist(0)'
endif
call writefile(['Xtestfile1:700:10:Line 700',
\ 'Xtestfile2:800:15:Line 800'], 'Xqftestfile1')
enew!
exe Xfile . ' Xqftestfile1'
exe 'let l = ' . Xgetlist
call assert_true(len(l) == 2 &&
\ l[0].lnum == 700 && l[0].col == 10 && l[0].text ==# 'Line 700' &&
\ l[1].lnum == 800 && l[1].col == 15 && l[1].text ==# 'Line 800')
" Run cfile/lfile from a modified buffer
enew!
silent! put ='Quickfix'
exe 'silent! ' . Xfile . ' Xqftestfile1'
call assert_true(v:errmsg ==# 'E37: No write since last change (add ! to override)')
call writefile(['Xtestfile3:900:30:Line 900'], 'Xqftestfile1')
exe Xaddfile . ' Xqftestfile1'
exe 'let l = ' . Xgetlist
call assert_true(len(l) == 3 &&
\ l[2].lnum == 900 && l[2].col == 30 && l[2].text ==# 'Line 900')
call writefile(['Xtestfile1:222:77:Line 222',
\ 'Xtestfile2:333:88:Line 333'], 'Xqftestfile1')
enew!
exe Xgetfile . ' Xqftestfile1'
exe 'let l = ' . Xgetlist
call assert_true(len(l) == 2 &&
\ l[0].lnum == 222 && l[0].col == 77 && l[0].text ==# 'Line 222' &&
\ l[1].lnum == 333 && l[1].col == 88 && l[1].text ==# 'Line 333')
call delete('Xqftestfile1')
endfunction
function Test_cfile()
call XfileTests('c')
call XfileTests('l')
endfunction
" Tests for the :cbuffer, :lbuffer, :caddbuffer, :laddbuffer, :cgetbuffer and
" :lgetbuffer commands.
function XbufferTests(cchar)
let Xbuffer = a:cchar . 'buffer'
let Xgetbuffer = a:cchar . 'getbuffer'
let Xaddbuffer = a:cchar . 'addbuffer'
if a:cchar == 'c'
let Xgetlist = 'getqflist()'
else
let Xgetlist = 'getloclist(0)'
endif
enew!
silent! call setline(1, ['Xtestfile7:700:10:Line 700',
\ 'Xtestfile8:800:15:Line 800'])
exe Xbuffer . "!"
exe 'let l = ' . Xgetlist
call assert_true(len(l) == 2 &&
\ l[0].lnum == 700 && l[0].col == 10 && l[0].text ==# 'Line 700' &&
\ l[1].lnum == 800 && l[1].col == 15 && l[1].text ==# 'Line 800')
enew!
silent! call setline(1, ['Xtestfile9:900:55:Line 900',
\ 'Xtestfile10:950:66:Line 950'])
exe Xgetbuffer
exe 'let l = ' . Xgetlist
call assert_true(len(l) == 2 &&
\ l[0].lnum == 900 && l[0].col == 55 && l[0].text ==# 'Line 900' &&
\ l[1].lnum == 950 && l[1].col == 66 && l[1].text ==# 'Line 950')
enew!
silent! call setline(1, ['Xtestfile11:700:20:Line 700',
\ 'Xtestfile12:750:25:Line 750'])
exe Xaddbuffer
exe 'let l = ' . Xgetlist
call assert_true(len(l) == 4 &&
\ l[1].lnum == 950 && l[1].col == 66 && l[1].text ==# 'Line 950' &&
\ l[2].lnum == 700 && l[2].col == 20 && l[2].text ==# 'Line 700' &&
\ l[3].lnum == 750 && l[3].col == 25 && l[3].text ==# 'Line 750')
endfunction
function Test_cbuffer()
call XbufferTests('c')
call XbufferTests('l')
endfunction
function Test_nomem()
call alloc_fail(1, 0, 0)
try
vimgrep vim runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
call alloc_fail(2, 0, 0)
try
vimgrep vim runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
call alloc_fail(3, 0, 0)
try
cfile runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
call alloc_fail(4, 0, 0)
try
cfile runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
call alloc_fail(5, 0, 0)
try
cfile runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
endfunc

View File

@@ -0,0 +1,26 @@
" Tests for :unlet
func Test_read_only()
try
" this caused a crash
unlet count
catch
call assert_true(v:exception =~ ':E795:')
endtry
endfunc
func Test_existing()
let does_exist = 1
call assert_true(exists('does_exist'))
unlet does_exist
call assert_false(exists('does_exist'))
endfunc
func Test_not_existing()
unlet! does_not_exist
try
unlet does_not_exist
catch
call assert_true(v:exception =~ ':E108:')
endtry
endfunc

View File

@@ -4,6 +4,7 @@ STARTTEST
:so small.vim
:so mbyte.vim
:set enc=utf8
:set selection=inclusive fileformat=unix fileformats=unix
:new
:fu DoRecordWin(...)
: wincmd k

View File

@@ -741,6 +741,54 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1069,
/**/
1068,
/**/
1067,
/**/
1066,
/**/
1065,
/**/
1064,
/**/
1063,
/**/
1062,
/**/
1061,
/**/
1060,
/**/
1059,
/**/
1058,
/**/
1057,
/**/
1056,
/**/
1055,
/**/
1054,
/**/
1053,
/**/
1052,
/**/
1051,
/**/
1050,
/**/
1049,
/**/
1048,
/**/
1047,
/**/
1046,
/**/
1045,
/**/