mirror of
https://github.com/zoriya/vim.git
synced 2026-01-02 12:28:15 +00:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5f24542e5e | ||
|
|
71bcfdf301 | ||
|
|
449538c3d2 | ||
|
|
64496ffc9c | ||
|
|
25e4fcde76 | ||
|
|
7b877b3605 | ||
|
|
4d1c0a4441 | ||
|
|
eca99bd45f | ||
|
|
0bee2fe25a | ||
|
|
285bf84b4b | ||
|
|
6602af7fe0 | ||
|
|
fd39d08fb6 | ||
|
|
75bdf6aa30 | ||
|
|
2b7db933b0 | ||
|
|
ca1fe98517 | ||
|
|
a61018d7e0 | ||
|
|
e7893a4088 | ||
|
|
2795e21eaa | ||
|
|
da59dd5da6 | ||
|
|
04bff88df6 | ||
|
|
af8af8bfac | ||
|
|
c71982b239 | ||
|
|
485dace817 | ||
|
|
c7803a1c42 | ||
|
|
7f68203168 | ||
|
|
2d6c800272 |
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
@@ -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
|
||||
|
||||
@@ -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/%
|
||||
|
||||
@@ -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/%
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/%
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 $@
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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
|
||||
|
||||
36
src/eval.c
36
src/eval.c
@@ -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 == ¤t_funccal->l_vars.dv_hashtab)
|
||||
&& ht == ¤t_funccal->l_vars.dv_hashtab)
|
||||
d = ¤t_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
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
53
src/misc2.c
53
src/misc2.c
@@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
32
src/ops.c
32
src/ops.c
@@ -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
|
||||
}
|
||||
|
||||
25
src/option.c
25
src/option.c
@@ -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
|
||||
|
||||
10
src/option.h
10
src/option.h
@@ -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
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
156
src/spell.c
156
src/spell.c
@@ -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(×[i]);
|
||||
counts[i] = 0;
|
||||
}
|
||||
profile_start(¤t);
|
||||
profile_start(&total);
|
||||
}
|
||||
|
||||
/* call before changing state */
|
||||
static void
|
||||
prof_store(state_T state)
|
||||
{
|
||||
profile_end(¤t);
|
||||
profile_add(×[state], ¤t);
|
||||
++counts[state];
|
||||
profile_start(¤t);
|
||||
}
|
||||
# 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(×[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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
12
src/syntax.c
12
src/syntax.c
@@ -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, ®match, 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"));
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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
|
||||
|
||||
9
src/testdir/test_menu.vim
Normal file
9
src/testdir/test_menu.vim
Normal 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
|
||||
314
src/testdir/test_quickfix.vim
Normal file
314
src/testdir/test_quickfix.vim
Normal 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
|
||||
|
||||
|
||||
26
src/testdir/test_unlet.vim
Normal file
26
src/testdir/test_unlet.vim
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user