forked from aniani/vim
updated for version 7.4.108
Problem: "zG" and "zW" leave temp files around on MS-Windows. Solution: Delete the temp files when exiting. (Ken Takata)
This commit is contained in:
parent
9fee7d4729
commit
34b466edfe
@ -841,8 +841,11 @@ ml_close_all(del_file)
|
|||||||
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
|
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
|
||||||
ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0
|
ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0
|
||||||
|| vim_strchr(p_cpo, CPO_PRESERVE) == NULL));
|
|| vim_strchr(p_cpo, CPO_PRESERVE) == NULL));
|
||||||
|
#ifdef FEAT_SPELL
|
||||||
|
spell_delete_wordlist(); /* delete the internal wordlist */
|
||||||
|
#endif
|
||||||
#ifdef TEMPDIRNAMES
|
#ifdef TEMPDIRNAMES
|
||||||
vim_deltempdir(); /* delete created temp directory */
|
vim_deltempdir(); /* delete created temp directory */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ int spell_check __ARGS((win_T *wp, char_u *ptr, hlf_T *attrp, int *capcol, int d
|
|||||||
int spell_move_to __ARGS((win_T *wp, int dir, int allwords, int curline, hlf_T *attrp));
|
int spell_move_to __ARGS((win_T *wp, int dir, int allwords, int curline, hlf_T *attrp));
|
||||||
void spell_cat_line __ARGS((char_u *buf, char_u *line, int maxlen));
|
void spell_cat_line __ARGS((char_u *buf, char_u *line, int maxlen));
|
||||||
char_u *did_set_spelllang __ARGS((win_T *wp));
|
char_u *did_set_spelllang __ARGS((win_T *wp));
|
||||||
|
void spell_delete_wordlist __ARGS((void));
|
||||||
void spell_free_all __ARGS((void));
|
void spell_free_all __ARGS((void));
|
||||||
void spell_reload __ARGS((void));
|
void spell_reload __ARGS((void));
|
||||||
int spell_check_msm __ARGS((void));
|
int spell_check_msm __ARGS((void));
|
||||||
|
43
src/spell.c
43
src/spell.c
@ -2180,9 +2180,9 @@ spell_move_to(wp, dir, allwords, curline, attrp)
|
|||||||
char_u *endp;
|
char_u *endp;
|
||||||
hlf_T attr;
|
hlf_T attr;
|
||||||
int len;
|
int len;
|
||||||
# ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
int has_syntax = syntax_present(wp);
|
int has_syntax = syntax_present(wp);
|
||||||
# endif
|
#endif
|
||||||
int col;
|
int col;
|
||||||
int can_spell;
|
int can_spell;
|
||||||
char_u *buf = NULL;
|
char_u *buf = NULL;
|
||||||
@ -2280,7 +2280,7 @@ spell_move_to(wp, dir, allwords, curline, attrp)
|
|||||||
: p - buf)
|
: p - buf)
|
||||||
> wp->w_cursor.col)))
|
> wp->w_cursor.col)))
|
||||||
{
|
{
|
||||||
# ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
if (has_syntax)
|
if (has_syntax)
|
||||||
{
|
{
|
||||||
col = (int)(p - buf);
|
col = (int)(p - buf);
|
||||||
@ -4701,7 +4701,25 @@ badword_captype(word, end)
|
|||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
# if defined(FEAT_MBYTE) || defined(EXITFREE) || defined(PROTO)
|
/*
|
||||||
|
* Delete the internal wordlist and its .spl file.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
spell_delete_wordlist()
|
||||||
|
{
|
||||||
|
char_u fname[MAXPATHL];
|
||||||
|
|
||||||
|
if (int_wordlist != NULL)
|
||||||
|
{
|
||||||
|
mch_remove(int_wordlist);
|
||||||
|
int_wordlist_spl(fname);
|
||||||
|
mch_remove(fname);
|
||||||
|
vim_free(int_wordlist);
|
||||||
|
int_wordlist = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(FEAT_MBYTE) || defined(EXITFREE) || defined(PROTO)
|
||||||
/*
|
/*
|
||||||
* Free all languages.
|
* Free all languages.
|
||||||
*/
|
*/
|
||||||
@ -4710,7 +4728,6 @@ spell_free_all()
|
|||||||
{
|
{
|
||||||
slang_T *slang;
|
slang_T *slang;
|
||||||
buf_T *buf;
|
buf_T *buf;
|
||||||
char_u fname[MAXPATHL];
|
|
||||||
|
|
||||||
/* Go through all buffers and handle 'spelllang'. <VN> */
|
/* Go through all buffers and handle 'spelllang'. <VN> */
|
||||||
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
|
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
|
||||||
@ -4723,24 +4740,16 @@ spell_free_all()
|
|||||||
slang_free(slang);
|
slang_free(slang);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (int_wordlist != NULL)
|
spell_delete_wordlist();
|
||||||
{
|
|
||||||
/* Delete the internal wordlist and its .spl file */
|
|
||||||
mch_remove(int_wordlist);
|
|
||||||
int_wordlist_spl(fname);
|
|
||||||
mch_remove(fname);
|
|
||||||
vim_free(int_wordlist);
|
|
||||||
int_wordlist = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
vim_free(repl_to);
|
vim_free(repl_to);
|
||||||
repl_to = NULL;
|
repl_to = NULL;
|
||||||
vim_free(repl_from);
|
vim_free(repl_from);
|
||||||
repl_from = NULL;
|
repl_from = NULL;
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
# if defined(FEAT_MBYTE) || defined(PROTO)
|
#if defined(FEAT_MBYTE) || defined(PROTO)
|
||||||
/*
|
/*
|
||||||
* Clear all spelling tables and reload them.
|
* Clear all spelling tables and reload them.
|
||||||
* Used after 'encoding' is set and when ":mkspell" was used.
|
* Used after 'encoding' is set and when ":mkspell" was used.
|
||||||
@ -4773,7 +4782,7 @@ spell_reload()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reload the spell file "fname" if it's loaded.
|
* Reload the spell file "fname" if it's loaded.
|
||||||
|
@ -738,6 +738,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
108,
|
||||||
/**/
|
/**/
|
||||||
107,
|
107,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user