1
0
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:
Bram Moolenaar 2013-11-28 17:41:46 +01:00
parent 9fee7d4729
commit 34b466edfe
4 changed files with 33 additions and 18 deletions

View File

@ -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
} }

View File

@ -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));

View File

@ -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.

View File

@ -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,
/**/ /**/