Mercurial > vim
changeset 5519:fa31c5b82424 v7.4.108
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)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 28 Nov 2013 17:41:46 +0100 |
parents | 4682f4938ab0 |
children | 86861620ba96 |
files | src/memline.c src/proto/spell.pro src/spell.c src/version.c |
diffstat | 4 files changed, 34 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- 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 }
--- a/src/proto/spell.pro +++ b/src/proto/spell.pro @@ -3,6 +3,7 @@ int spell_check __ARGS((win_T *wp, char_ 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));
--- a/src/spell.c +++ b/src/spell.c @@ -2180,9 +2180,9 @@ spell_move_to(wp, dir, allwords, curline 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 : 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 - -# if defined(FEAT_MBYTE) || defined(PROTO) +#endif + +#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.