summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-06-25 22:49:46 +0000
committerBram Moolenaar <Bram@vim.org>2005-06-25 22:49:46 +0000
commitea408854a8360b6925122ce7709b424ab3005209 (patch)
tree2c5418f82336471cca7110bb10ed76d29f03fcea
parent29a1c1d374151aae361dbf39f4b599403fee2e66 (diff)
updated for version 7.0093
-rw-r--r--src/buffer.c10
-rw-r--r--src/diff.c3
-rw-r--r--src/ex_docmd.c12
-rw-r--r--src/getchar.c9
-rw-r--r--src/mark.c12
-rw-r--r--src/proto/buffer.pro1
-rw-r--r--src/proto/gui_gtk_x11.pro1
-rw-r--r--src/spell.c111
-rw-r--r--src/spell/en_NZ.diff250
-rw-r--r--src/vim.h1
-rw-r--r--src/window.c4
11 files changed, 329 insertions, 85 deletions
diff --git a/src/buffer.c b/src/buffer.c
index e2b3f5d151..ea286c5880 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3177,6 +3177,16 @@ resettitle()
{
mch_settitle(lasttitle, lasticon);
}
+
+# if defined(EXITFREE) || defined(PROTO)
+ void
+free_titles()
+{
+ vim_free(lasttitle);
+ vim_free(lasticon);
+}
+# endif
+
#endif /* FEAT_TITLE */
#if defined(FEAT_STL_OPT) || defined(PROTO)
diff --git a/src/diff.c b/src/diff.c
index 305e68f413..4acba3df7b 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -69,7 +69,6 @@ static int diff_check_sanity __ARGS((diff_T *dp));
static void diff_redraw __ARGS((int dofold));
static int diff_write __ARGS((buf_T *buf, char_u *fname));
static void diff_file __ARGS((char_u *tmp_orig, char_u *tmp_new, char_u *tmp_diff));
-static void diff_clear __ARGS((void));
static int diff_equal_entry __ARGS((diff_T *dp, int idx1, int idx2));
static int diff_cmp __ARGS((char_u *s1, char_u *s2));
#ifdef FEAT_FOLDING
@@ -1336,7 +1335,7 @@ diff_copy_entry(dprev, dp, idx_orig, idx_new)
/*
* Clear the list of diffblocks.
*/
- static void
+ void
diff_clear()
{
diff_T *p, *next_p;
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index af3e7f9bfe..75d2c94114 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7215,6 +7215,17 @@ ex_read(eap)
}
}
+static char_u *prev_dir = NULL;
+
+#if defined(EXITFREE) || defined(PROTO)
+ void
+free_cd_dir()
+{
+ vim_free(prev_dir);
+}
+#endif
+
+
/*
* ":cd", ":lcd", ":chdir" and ":lchdir".
*/
@@ -7222,7 +7233,6 @@ ex_read(eap)
ex_cd(eap)
exarg_T *eap;
{
- static char_u *prev_dir = NULL;
char_u *new_dir;
char_u *tofree;
diff --git a/src/getchar.c b/src/getchar.c
index 6d26d6d557..686861aa47 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1390,6 +1390,15 @@ closescript()
--curscript;
}
+#if defined(EXITFREE) || defined(PROTO)
+ void
+close_all_scripts()
+{
+ while (scriptin[0] != NULL)
+ closescript();
+}
+#endif
+
#if defined(FEAT_INS_EXPAND) || defined(PROTO)
/*
* Return TRUE when reading keys from a script file.
diff --git a/src/mark.c b/src/mark.c
index c804d1eda6..1655e03578 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -1284,6 +1284,18 @@ set_last_cursor(win)
win->w_buffer->b_last_cursor = win->w_cursor;
}
+#if defined(EXITFREE) || defined(PROTO)
+ void
+free_all_marks()
+{
+ int i;
+
+ for (i = 0; i < NMARKS + EXTRA_MARKS; i++)
+ if (namedfm[i].fmark.mark.lnum != 0)
+ vim_free(namedfm[i].fname);
+}
+#endif
+
#if defined(FEAT_VIMINFO) || defined(PROTO)
int
read_viminfo_filemark(virp, force)
diff --git a/src/proto/buffer.pro b/src/proto/buffer.pro
index 835d2cefcb..1061e367f1 100644
--- a/src/proto/buffer.pro
+++ b/src/proto/buffer.pro
@@ -39,6 +39,7 @@ void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate));
void col_print __ARGS((char_u *buf, int col, int vcol));
void maketitle __ARGS((void));
void resettitle __ARGS((void));
+void free_titles __ARGS((void));
int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int fillchar, int maxwidth, struct stl_hlrec *hl));
void get_rel_pos __ARGS((win_T *wp, char_u *str));
int append_arg_number __ARGS((win_T *wp, char_u *buf, int add_file, int maxlen));
diff --git a/src/proto/gui_gtk_x11.pro b/src/proto/gui_gtk_x11.pro
index 81330228ae..a22bacfe89 100644
--- a/src/proto/gui_gtk_x11.pro
+++ b/src/proto/gui_gtk_x11.pro
@@ -1,5 +1,6 @@
/* gui_gtk_x11.c */
void gui_mch_prepare __ARGS((int *argc, char **argv));
+void gui_mch_free_all __ARGS((void));
void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
void gui_mch_stop_blink __ARGS((void));
void gui_mch_start_blink __ARGS((void));
diff --git a/src/spell.c b/src/spell.c
index c5d81229e7..e806476461 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -396,7 +396,9 @@ typedef struct suggest_S
#define SCORE_SUBST 93 /* substitute a character */
#define SCORE_SIMILAR 33 /* substitute a similar character */
#define SCORE_DEL 94 /* delete a character */
+#define SCORE_DELDUP 64 /* delete a duplicated character */
#define SCORE_INS 96 /* insert a character */
+#define SCORE_INSDUP 66 /* insert a duplicate character */
#define SCORE_MAXINIT 350 /* Initial maximum score: higher == slower.
* 350 allows for about three changes. */
@@ -453,11 +455,12 @@ static int did_set_spelltab;
static void clear_spell_chartab __ARGS((spelltab_T *sp));
static int set_spell_finish __ARGS((spelltab_T *new_st));
+static int spell_iswordp __ARGS((char_u *p));
static void write_spell_prefcond __ARGS((FILE *fd, garray_T *gap));
/*
- * Return TRUE if "p" points to a word character or "c" is a word character
- * for spelling.
+ * Return TRUE if "p" points to a word character. Like spell_iswordp() but
+ * without the special handling of a single quote.
* Checking for a word character is done very often, avoid the function call
* overhead.
*/
@@ -547,7 +550,7 @@ static int set_spell_charflags __ARGS((char_u *flags, int cnt, char_u *upp));
static int set_spell_chartab __ARGS((char_u *fol, char_u *low, char_u *upp));
static void write_spell_chartab __ARGS((FILE *fd));
static int spell_casefold __ARGS((char_u *p, int len, char_u *buf, int buflen));
-static void spell_find_suggest __ARGS((char_u *badptr, suginfo_T *su, int maxcount));
+static void spell_find_suggest __ARGS((char_u *badptr, suginfo_T *su, int maxcount, int banbadword));
static void spell_find_cleanup __ARGS((suginfo_T *su));
static void onecap_copy __ARGS((char_u *word, char_u *wcopy, int upper));
static void allcap_copy __ARGS((char_u *word, char_u *wcopy));
@@ -656,7 +659,7 @@ spell_check(wp, ptr, attrp)
mi.mi_end = skipdigits(ptr);
nrlen = mi.mi_end - ptr;
}
- if (!SPELL_ISWORDP(mi.mi_end))
+ if (!spell_iswordp(mi.mi_end))
return (int)(mi.mi_end - ptr);
/* Try including the digits in the word. */
@@ -667,12 +670,12 @@ spell_check(wp, ptr, attrp)
/* Find the normal end of the word (until the next non-word character). */
mi.mi_word = ptr;
- if (SPELL_ISWORDP(mi.mi_fend))
+ if (spell_iswordp(mi.mi_fend))
{
do
{
mb_ptr_adv(mi.mi_fend);
- } while (*mi.mi_fend != NUL && SPELL_ISWORDP(mi.mi_fend));
+ } while (*mi.mi_fend != NUL && spell_iswordp(mi.mi_fend));
}
/* We always use the characters up to the next non-word character,
@@ -908,7 +911,7 @@ find_word(mip, mode)
if ((*mb_head_off)(ptr, ptr + wlen) > 0)
continue; /* not at first byte of character */
#endif
- if (SPELL_ISWORDP(ptr + wlen))
+ if (spell_iswordp(ptr + wlen))
continue; /* next char is a word character */
#ifdef FEAT_MBYTE
@@ -1163,7 +1166,7 @@ fold_more(mip)
do
{
mb_ptr_adv(mip->mi_fend);
- } while (*mip->mi_fend != NUL && SPELL_ISWORDP(mip->mi_fend));
+ } while (*mip->mi_fend != NUL && spell_iswordp(mip->mi_fend));
/* Include the non-word character so that we can check for the
* word end. */
@@ -2290,7 +2293,7 @@ captype(word, end)
int past_second = FALSE; /* past second word char */
/* find first letter */
- for (p = word; !SPELL_ISWORDP(p); mb_ptr_adv(p))
+ for (p = word; !spell_iswordp(p); mb_ptr_adv(p))
if (end == NULL ? *p == NUL : p >= end)
return 0; /* only non-word characters, illegal word */
#ifdef FEAT_MBYTE
@@ -2306,7 +2309,7 @@ captype(word, end)
* But a word with an upper char only at start is a ONECAP.
*/
for ( ; end == NULL ? *p != NUL : p < end; mb_ptr_adv(p))
- if (SPELL_ISWORDP(p))
+ if (spell_iswordp(p))
{
#ifdef FEAT_MBYTE
c = mb_ptr2char(p);
@@ -2367,7 +2370,7 @@ spell_reload()
buf_T *buf;
win_T *wp;
- /* Initialize the table for SPELL_ISWORDP(). */
+ /* Initialize the table for spell_iswordp(). */
init_spell_chartab();
/* Unload all allocated memory. */
@@ -5017,6 +5020,28 @@ set_spell_finish(new_st)
}
/*
+ * Return TRUE if "p" points to a word character.
+ * As a special case we see a single quote as a word character when it is
+ * followed by a word character. This finds they'there but not 'they there'.
+ */
+ static int
+spell_iswordp(p)
+ char_u *p;
+{
+ char_u *s;
+
+ if (*p == '\'')
+ s = p + 1;
+ else
+ s = p;
+#ifdef FEAT_MBYTE
+ if (has_mbyte && MB_BYTE2LEN(*s) > 1)
+ return mb_get_class(s) >= 2;
+#endif
+ return spelltab.st_isw[*s];
+}
+
+/*
* Write the table with prefix conditions to the .spl file.
*/
static void
@@ -5181,7 +5206,7 @@ spell_suggest()
line = ml_get_curline();
/* Get the list of suggestions */
- spell_find_suggest(line + curwin->w_cursor.col, &sug, (int)Rows - 2);
+ spell_find_suggest(line + curwin->w_cursor.col, &sug, (int)Rows - 2, TRUE);
if (sug.su_ga.ga_len == 0)
MSG(_("Sorry, no suggestions"));
@@ -5281,7 +5306,7 @@ spell_suggest_list(gap, word, maxcount)
suggest_T *stp;
char_u *wcopy;
- spell_find_suggest(word, &sug, maxcount);
+ spell_find_suggest(word, &sug, maxcount, FALSE);
/* Make room in "gap". */
ga_init2(gap, sizeof(char_u *), sug.su_ga.ga_len + 1);
@@ -5314,10 +5339,11 @@ spell_suggest_list(gap, word, maxcount)
* This is based on the mechanisms of Aspell, but completely reimplemented.
*/
static void
-spell_find_suggest(badptr, su, maxcount)
+spell_find_suggest(badptr, su, maxcount, banbadword)
char_u *badptr;
suginfo_T *su;
int maxcount;
+ int banbadword; /* don't include badword in suggestions */
{
int attr;
@@ -5344,7 +5370,8 @@ spell_find_suggest(badptr, su, maxcount)
su->su_badflags = captype(su->su_badptr, su->su_badptr + su->su_badlen);
/* Ban the bad word itself. It may appear in another region. */
- add_banned(su, su->su_badword);
+ if (banbadword)
+ add_banned(su, su->su_badword);
/*
* 1. Try special cases, such as repeating a word: "the the" -> "the".
@@ -5688,7 +5715,7 @@ suggest_try_change(su)
newscore += SCORE_ICASE;
if ((fword[sp->ts_fidx] == NUL
- || !SPELL_ISWORDP(fword + sp->ts_fidx))
+ || !spell_iswordp(fword + sp->ts_fidx))
&& sp->ts_fidx >= sp->ts_fidxtry)
{
/* The badword also ends: add suggestions, */
@@ -5851,6 +5878,20 @@ suggest_try_change(su)
sp->ts_score -=
SCORE_SUBST - SCORE_SIMILAR;
}
+ else if (sp->ts_isdiff == DIFF_INSERT
+ && sp->ts_twordlen > sp->ts_tcharlen)
+ {
+ /* If the previous character was the same,
+ * thus doubling a character, give a bonus
+ * to the score. */
+ p = tword + sp->ts_twordlen
+ - sp->ts_tcharlen;
+ c = mb_ptr2char(p);
+ mb_ptr_back(tword, p);
+ if (c == mb_ptr2char(p))
+ sp->ts_score -= SCORE_INS
+ - SCORE_INSDUP;
+ }
/* Starting a new char, reset the length. */
sp->ts_tcharlen = 0;
@@ -5891,12 +5932,25 @@ suggest_try_change(su)
&& try_deeper(su, stack, depth, SCORE_DEL))
{
++depth;
+
+ /* Advance over the character in fword[]. Give a bonus to
+ * the score if the same character is following "nn" ->
+ * "n". */
#ifdef FEAT_MBYTE
if (has_mbyte)
+ {
+ c = mb_ptr2char(fword + sp->ts_fidx);
stack[depth].ts_fidx += MB_BYTE2LEN(fword[sp->ts_fidx]);
+ if (c == mb_ptr2char(fword + stack[depth].ts_fidx))
+ stack[depth].ts_score -= SCORE_DEL - SCORE_DELDUP;
+ }
else
#endif
+ {
++stack[depth].ts_fidx;
+ if (fword[sp->ts_fidx] == fword[sp->ts_fidx + 1])
+ stack[depth].ts_score -= SCORE_DEL - SCORE_DELDUP;
+ }
break;
}
/*FALLTHROUGH*/
@@ -5935,7 +5989,18 @@ suggest_try_change(su)
sp->ts_isdiff = DIFF_INSERT;
}
}
+ else
+ fl = 1;
+ if (fl == 1)
#endif
+ {
+ /* If the previous character was the same, thus
+ * doubling a character, give a bonus to the
+ * score. */
+ if (sp->ts_twordlen >= 2
+ && tword[sp->ts_twordlen - 2] == c)
+ sp->ts_score -= SCORE_INS - SCORE_INSDUP;
+ }
}
}
break;
@@ -7264,7 +7329,7 @@ spell_soundfold(slang, inword, res)
else if (has_mbyte)
{
l = mb_ptr2len_check(s);
- if (SPELL_ISWORDP(s))
+ if (spell_iswordp(s))
{
mch_memmove(t, s, l);
t += l;
@@ -7276,7 +7341,7 @@ spell_soundfold(slang, inword, res)
#endif
else
{
- if (SPELL_ISWORDP(s))
+ if (spell_iswordp(s))
*t++ = *s;
++s;
}
@@ -7376,12 +7441,12 @@ spell_soundfold(slang, inword, res)
if (*s == NUL
|| (*s == '^'
&& (i == 0 || !(word[i - 1] == ' '
- || SPELL_ISWORDP(word + i - 1)))
+ || spell_iswordp(word + i - 1)))
&& (*(s + 1) != '$'
- || (!SPELL_ISWORDP(word + i + k0))))
+ || (!spell_iswordp(word + i + k0))))
|| (*s == '$' && i > 0
- && SPELL_ISWORDP(word + i - 1)
- && (!SPELL_ISWORDP(word + i + k0))))
+ && spell_iswordp(word + i - 1)
+ && (!spell_iswordp(word + i + k0))))
{
/* search for followup rules, if: */
/* followup and k > 1 and NO '-' in searchstring */
@@ -7443,7 +7508,7 @@ spell_soundfold(slang, inword, res)
if (*s == NUL
/* *s == '^' cuts */
|| (*s == '$'
- && !SPELL_ISWORDP(word + i + k0)))
+ && !spell_iswordp(word + i + k0)))
{
if (k0 == k)
/* this is just a piece of the string */
diff --git a/src/spell/en_NZ.diff b/src/spell/en_NZ.diff
index 243018fc46..41274769de 100644
--- a/src/spell/en_NZ.diff
+++ b/src/spell/en_NZ.diff
@@ -1,17 +1,20 @@
*** en_NZ.orig.aff Fri Apr 15 13:20:36 2005
---- en_NZ.aff Sat Jun 18 19:42:31 2005
+--- en_NZ.aff Thu Jun 23 17:43:34 2005
***************
*** 7,9 ****
SET ISO8859-1
! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ
REP 66
---- 7,14 ----
+--- 7,17 ----
SET ISO8859-1
! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ
!
-! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß
-! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß
-! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß
+! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
+! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
+! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
+!
+! RAR ?
+! BAD !
!
REP 66
***************
@@ -36,7 +39,7 @@
PFX E Y 1
! PFX E 0 dis .
PFX F Y 5
---- 81,100 ----
+--- 84,103 ----
PFX A Y 2
! PFX A 0 re [^e]
! PFX A 0 re- e
@@ -454,7 +457,7 @@
SFX T y iest [^aeiou]y
! SFX T 0 er [aeiou]y
SFX T 0 est [aeiou]y
---- 104,498 ----
+--- 107,501 ----
PFX F 0 col l
! PFX F 0 con [^abehilmopru].
PFX K Y 1
@@ -1539,7 +1542,7 @@
! SFX 3 o ist's o
! SFX 3 0 ist's [^eoy]
\ No newline at end of file
---- 505,1190 ----
+--- 508,1314 ----
SFX R Y 72
! SFX R 0 r e
! SFX R 0 rs e
@@ -2226,33 +2229,151 @@
! SFX 3 0 ist's [aeioubp]y
! SFX 3 o ist's o
! SFX 3 0 ist's [^eoy]
+!
+! MAP 5
+! 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
*** en_NZ.orig.dic Fri Apr 15 13:20:36 2005
---- en_NZ.dic Tue Jun 21 20:14:24 2005
+--- en_NZ.dic Wed Jun 22 14:06:51 2005
***************
-*** 1,6 ****
- 47141
-- 3GPP
-- 2YA
-- 2ZB
+*** 4,6 ****
+ 2ZB
- A
a/o
---- 1,2 ----
+--- 4,5 ----
***************
*** 927,929 ****
Al-Zawahiri
- al/FAC
Al/M
---- 923,924 ----
+--- 926,927 ----
***************
*** 2941,2944 ****
B.Sc.
- bless
- bible
baa/GSD
---- 2936,2937 ----
+--- 2939,2940 ----
***************
*** 4974,4975 ****
---- 4967,4969 ----
+--- 4970,4972 ----
Brampton/M
+ Bram/M
bran/SDGM
@@ -2261,7 +2382,7 @@
C.Lit.
! cation/SM
Ca/y
---- 5701,5703 ----
+--- 5704,5706 ----
C.Lit.
! cation/MWS
Ca/y
@@ -2270,22 +2391,28 @@
Cathy
- cation/MW
catkin/SM
---- 6444,6445 ----
+--- 6447,6448 ----
+***************
+*** 8589,8590 ****
+--- 8585,8587 ----
+ coniferous
++ conj.
+ conjectural
***************
*** 10153,10155 ****
red's
- dally
dab/TSGD
---- 10146,10147 ----
+--- 10150,10151 ----
***************
*** 10360,10361 ****
---- 10352,10354 ----
+--- 10356,10358 ----
dBm
+ dBd
DBMS
***************
*** 12535,12536 ****
---- 12528,12530 ----
+--- 12532,12534 ----
Dutchwomen/M
+ Farsi
duteous/Y
@@ -2294,13 +2421,13 @@
duvet/SM
- duxes
DVD/MS
---- 12536,12537 ----
+--- 12540,12541 ----
***************
*** 13901,13903 ****
estuary/MS
! et
ETA
---- 13894,13897 ----
+--- 13898,13901 ----
estuary/MS
! et cetera
! et al.
@@ -2311,13 +2438,13 @@
- fable
- fist/MS
fa/M
---- 14525,14526 ----
+--- 14529,14530 ----
***************
*** 15323,15325 ****
fissure/DSMG
! fist/6GD
fistfight/MS
---- 15315,15317 ----
+--- 15319,15321 ----
fissure/DSMG
! fist/6GDMS
fistfight/MS
@@ -2326,44 +2453,44 @@
g's
- gable
gist/MS
---- 16598,16599 ----
+--- 16602,16603 ----
***************
*** 16797,16799 ****
Garvey
- Gary/M
gas-permeable
---- 16788,16789 ----
+--- 16792,16793 ----
***************
*** 18177,18179 ****
gyroscope/SWM
- dish
ha
---- 18167,18168 ----
+--- 18171,18172 ----
***************
*** 22321,22323 ****
K-factor
- disk/MS
kabob's
---- 22310,22311 ----
+--- 22314,22315 ----
***************
*** 23129,23132 ****
lassoer/M
- last-ditch
- last-minute
last/YSDGkJ
---- 23117,23118 ----
+--- 23121,23122 ----
***************
*** 26396,26398 ****
Missy
! mist/CDRGS
mistakable/U
---- 26382,26384 ----
+--- 26386,26388 ----
Missy
! mist/CDRGSM
mistakable/U
***************
*** 26745,26746 ****
---- 26731,26733 ----
+--- 26735,26737 ----
Moog
+ Moolenaar/M
moon/MGpDS
@@ -2372,7 +2499,7 @@
mozzarella/SM
- MP3
mpg
---- 27005,27006 ----
+--- 27009,27010 ----
***************
*** 27365,27372 ****
N'Djamena
@@ -2383,7 +2510,7 @@
- national
- nationally
Na/M
---- 27351,27355 ----
+--- 27355,27359 ----
N'Djamena
! native/SP
natively
@@ -2394,7 +2521,7 @@
Nathaniel/M
! nation/M
national/sQ3Sq
---- 27490,27492 ----
+--- 27494,27496 ----
Nathaniel/M
! nation/MS
national/sQ3Sq
@@ -2403,7 +2530,7 @@
nationwide
- native/SP
nativity/SM
---- 27504,27505 ----
+--- 27508,27509 ----
***************
*** 29852,29857 ****
P.O.
@@ -2412,16 +2539,16 @@
- imply
- comply
pa/oM
---- 29834,29835 ----
+--- 29838,29839 ----
***************
*** 31702,31703 ****
---- 31680,31682 ----
+--- 31684,31686 ----
pneumonia/MS
+ pneumonic
PO
***************
*** 31885,31886 ****
---- 31864,31866 ----
+--- 31868,31870 ----
pompom/SM
+ pompon/M
pomposity/SM
@@ -2430,30 +2557,30 @@
qwertys
- r/d
Ra
---- 33541,33542 ----
+--- 33545,33546 ----
***************
*** 35456,35458 ****
rt
- rte
Ru/M
---- 35435,35436 ----
+--- 35439,35440 ----
***************
*** 35619,35622 ****
singly
- sable
- sally/DSG
SA
---- 35597,35598 ----
+--- 35601,35602 ----
***************
*** 40763,40766 ****
T's
- mist/MS
- overt
Ta
---- 40739,40740 ----
+--- 40743,40744 ----
***************
*** 43574,43575 ****
---- 43548,43550 ----
+--- 43552,43554 ----
unsearchable
+ searchable
unseeing/Y
@@ -2462,7 +2589,7 @@
Vilnius/M
! vim/M
vinaigrette/MS
---- 44309,44311 ----
+--- 44313,44315 ----
Vilnius/M
! Vim/M
vinaigrette/MS
@@ -2471,73 +2598,78 @@
y'all
- prey/M
yacht/M5SmGD
---- 45881,45882 ----
+--- 45885,45886 ----
***************
*** 46198,46200 ****
rata/M
- kaka/M
waka/M
---- 46172,46173 ----
+--- 46176,46177 ----
***************
*** 46216,46218 ****
jandal/MS
- Swanndri/M
hoon/MS
---- 46189,46190 ----
+--- 46193,46194 ----
***************
*** 46242,46244 ****
Invercargill/M
- Te
Alexandra/M
---- 46214,46215 ----
+--- 46218,46219 ----
***************
*** 46261,46263 ****
Kawerau/M
- Kerikeri/M
Lyttelton/M
---- 46232,46233 ----
+--- 46236,46237 ----
***************
*** 46491,46493 ****
Waianakarua
- Hakatere
Swin
---- 46461,46462 ----
+--- 46465,46466 ----
***************
*** 46690,46692 ****
Omarama/M
- Wairarapa/M
Kilda/M
---- 46659,46660 ----
+--- 46663,46664 ----
***************
*** 46711,46713 ****
Wellsford/M
- Akaroa/M
Avonhead/M
---- 46679,46680 ----
+--- 46683,46684 ----
***************
*** 46838,46840 ****
Ballantyne's
- DB
Monteith's
---- 46805,46806 ----
+--- 46809,46810 ----
***************
*** 46920,46922 ****
Egmont/M
- Waitaki/M
katipo/M
---- 46886,46887 ----
+--- 46890,46891 ----
***************
*** 46956,46958 ****
Sunnyside/M
- Wairau/M
Waikoropupu
---- 46921,46922 ----
+--- 46925,46926 ----
***************
*** 47141,47142 ****
Burkina
! Faso/M
\ No newline at end of file
---- 47105,47107 ----
+--- 47109,47116 ----
Burkina
! Faso/M
! nd
+! the the/!
+! a a/!
+! a an/!
+! an a/!
+! an an/!
diff --git a/src/vim.h b/src/vim.h
index 21bce87aff..6dfc94629a 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -949,6 +949,7 @@ extern char *(*dyn_libintl_textdomain)(const char *domainname);
#define DT_HELP 8 /* like DT_TAG, but no wildcards */
#define DT_JUMP 9 /* jump to new tag or selection from list */
#define DT_CSCOPE 10 /* cscope find command (like tjump) */
+#define DT_FREE 99 /* free cached matches */
/*
* flags for find_tags().
diff --git a/src/window.c b/src/window.c
index cb9e30a355..81fc4c3649 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1955,6 +1955,10 @@ win_free_mem(win, dirp)
frame_T *frp;
win_T *wp;
+#ifdef FEAT_FOLDING
+ clearFolding(win);
+#endif
+
/* reduce the reference count to the argument list. */
alist_unlink(win->w_alist);