diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-11-28 17:41:46 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-11-28 17:41:46 +0100 |
commit | 34b466edfe6acdf610899da18e81537a8e5d52c8 (patch) | |
tree | fb0426499272df694804296ad1e1c3cf25fd8702 | |
parent | 9fee7d4729af19e7ce4950ede8de358c5eeb3772 (diff) | |
download | vim-git-34b466edfe6acdf610899da18e81537a8e5d52c8.tar.gz |
updated for version 7.4.108v7.4.108
Problem: "zG" and "zW" leave temp files around on MS-Windows.
Solution: Delete the temp files when exiting. (Ken Takata)
-rw-r--r-- | src/memline.c | 5 | ||||
-rw-r--r-- | src/proto/spell.pro | 1 | ||||
-rw-r--r-- | src/spell.c | 43 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 33 insertions, 18 deletions
diff --git a/src/memline.c b/src/memline.c index 2f08557f8..ea6571cb2 100644 --- a/src/memline.c +++ b/src/memline.c @@ -841,8 +841,11 @@ ml_close_all(del_file) for (buf = firstbuf; buf != NULL; buf = buf->b_next) ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0 || vim_strchr(p_cpo, CPO_PRESERVE) == NULL)); +#ifdef FEAT_SPELL + spell_delete_wordlist(); /* delete the internal wordlist */ +#endif #ifdef TEMPDIRNAMES - vim_deltempdir(); /* delete created temp directory */ + vim_deltempdir(); /* delete created temp directory */ #endif } diff --git a/src/proto/spell.pro b/src/proto/spell.pro index 9ed775b53..5c399b370 100644 --- a/src/proto/spell.pro +++ b/src/proto/spell.pro @@ -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)); void spell_cat_line __ARGS((char_u *buf, char_u *line, int maxlen)); char_u *did_set_spelllang __ARGS((win_T *wp)); +void spell_delete_wordlist __ARGS((void)); void spell_free_all __ARGS((void)); void spell_reload __ARGS((void)); int spell_check_msm __ARGS((void)); diff --git a/src/spell.c b/src/spell.c index 18a39570d..66ccecb07 100644 --- a/src/spell.c +++ b/src/spell.c @@ -2180,9 +2180,9 @@ spell_move_to(wp, dir, allwords, curline, attrp) char_u *endp; hlf_T attr; int len; -# ifdef FEAT_SYN_HL +#ifdef FEAT_SYN_HL int has_syntax = syntax_present(wp); -# endif +#endif int col; int can_spell; char_u *buf = NULL; @@ -2280,7 +2280,7 @@ spell_move_to(wp, dir, allwords, curline, attrp) : p - buf) > wp->w_cursor.col))) { -# ifdef FEAT_SYN_HL +#ifdef FEAT_SYN_HL if (has_syntax) { col = (int)(p - buf); @@ -4701,7 +4701,25 @@ badword_captype(word, end) 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. */ @@ -4710,7 +4728,6 @@ spell_free_all() { slang_T *slang; buf_T *buf; - char_u fname[MAXPATHL]; /* Go through all buffers and handle 'spelllang'. <VN> */ for (buf = firstbuf; buf != NULL; buf = buf->b_next) @@ -4723,24 +4740,16 @@ spell_free_all() slang_free(slang); } - if (int_wordlist != NULL) - { - /* 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; - } + spell_delete_wordlist(); vim_free(repl_to); repl_to = NULL; vim_free(repl_from); repl_from = NULL; } -# endif +#endif -# if defined(FEAT_MBYTE) || defined(PROTO) +#if defined(FEAT_MBYTE) || defined(PROTO) /* * Clear all spelling tables and reload them. * 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. diff --git a/src/version.c b/src/version.c index 1354f9c0e..b982283aa 100644 --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 108, +/**/ 107, /**/ 106, |