| To: vim-dev@vim.org |
| Subject: Patch 7.2.332 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.2.332 |
| Problem: Crash when spell correcting triggers an autocommand that reloads |
| the buffer. |
| Solution: Make a copy of the line to be modified. (Dominique Pelle) |
| Files: src/spell.c |
| |
| |
| |
| |
| |
| *** 10306,10312 **** |
| /* Figure out if the word should be capitalised. */ |
| need_cap = check_need_cap(curwin->w_cursor.lnum, curwin->w_cursor.col); |
| |
| ! line = ml_get_curline(); |
| |
| /* Get the list of suggestions. Limit to 'lines' - 2 or the number in |
| * 'spellsuggest', whatever is smaller. */ |
| --- 10306,10315 ---- |
| /* Figure out if the word should be capitalised. */ |
| need_cap = check_need_cap(curwin->w_cursor.lnum, curwin->w_cursor.col); |
| |
| ! /* Make a copy of current line since autocommands may free the line. */ |
| ! line = vim_strsave(ml_get_curline()); |
| ! if (line == NULL) |
| ! goto skip; |
| |
| /* Get the list of suggestions. Limit to 'lines' - 2 or the number in |
| * 'spellsuggest', whatever is smaller. */ |
| |
| *** 10470,10475 **** |
| --- 10473,10480 ---- |
| curwin->w_cursor = prev_cursor; |
| |
| spell_find_cleanup(&sug); |
| + skip: |
| + vim_free(line); |
| } |
| |
| /* |
| |
| *** 10931,10937 **** |
| rescore_suggestions(su); |
| |
| /* |
| ! * While going throught the soundfold tree "su_maxscore" is the score |
| * for the soundfold word, limits the changes that are being tried, |
| * and "su_sfmaxscore" the rescored score, which is set by |
| * cleanup_suggestions(). |
| --- 10936,10942 ---- |
| rescore_suggestions(su); |
| |
| /* |
| ! * While going through the soundfold tree "su_maxscore" is the score |
| * for the soundfold word, limits the changes that are being tried, |
| * and "su_sfmaxscore" the rescored score, which is set by |
| * cleanup_suggestions(). |
| |
| *** 11415,11421 **** |
| char_u tword[MAXWLEN]; /* good word collected so far */ |
| trystate_T stack[MAXWLEN]; |
| char_u preword[MAXWLEN * 3]; /* word found with proper case; |
| ! * concatanation of prefix compound |
| * words and split word. NUL terminated |
| * when going deeper but not when coming |
| * back. */ |
| --- 11420,11426 ---- |
| char_u tword[MAXWLEN]; /* good word collected so far */ |
| trystate_T stack[MAXWLEN]; |
| char_u preword[MAXWLEN * 3]; /* word found with proper case; |
| ! * concatenation of prefix compound |
| * words and split word. NUL terminated |
| * when going deeper but not when coming |
| * back. */ |
| |
| |
| |
| *** 683,684 **** |
| --- 683,686 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 332, |
| /**/ |
| |
| -- |
| hundred-and-one symptoms of being an internet addict: |
| 117. You are more comfortable typing in html. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ download, build and distribute -- http://www.A-A-P.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |