diff options
Diffstat (limited to 'source/ap/vim/patches/7.2.189')
-rw-r--r-- | source/ap/vim/patches/7.2.189 | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.2.189 b/source/ap/vim/patches/7.2.189 new file mode 100644 index 000000000..c8ad9addb --- /dev/null +++ b/source/ap/vim/patches/7.2.189 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.189 +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.189 +Problem: Possible hang for deleting auto-indent. (Dominique Pelle) +Solution: Make sure the position is not beyond the end of the line. +Files: src/edit.c + + +*** ../vim-7.2.188/src/edit.c 2009-05-16 16:36:25.000000000 +0200 +--- src/edit.c 2009-05-26 10:53:05.000000000 +0200 +*************** +*** 6420,6432 **** + + /* If we just did an auto-indent, remove the white space from the end + * of the line, and put the cursor back. +! * Do this when ESC was used or moving the cursor up/down. */ + if (did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL +! && curwin->w_cursor.lnum != end_insert_pos->lnum))) + { + pos_T tpos = curwin->w_cursor; + + curwin->w_cursor = *end_insert_pos; + for (;;) + { + if (gchar_cursor() == NUL && curwin->w_cursor.col > 0) +--- 6420,6436 ---- + + /* If we just did an auto-indent, remove the white space from the end + * of the line, and put the cursor back. +! * Do this when ESC was used or moving the cursor up/down. +! * Check for the old position still being valid, just in case the text +! * got changed unexpectedly. */ + if (did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL +! && curwin->w_cursor.lnum != end_insert_pos->lnum)) +! && end_insert_pos->lnum <= curbuf->b_ml.ml_line_count) + { + pos_T tpos = curwin->w_cursor; + + curwin->w_cursor = *end_insert_pos; ++ check_cursor_col(); /* make sure it is not past the line */ + for (;;) + { + if (gchar_cursor() == NUL && curwin->w_cursor.col > 0) +*************** +*** 6434,6440 **** + cc = gchar_cursor(); + if (!vim_iswhite(cc)) + break; +! (void)del_char(TRUE); + } + if (curwin->w_cursor.lnum != tpos.lnum) + curwin->w_cursor = tpos; +--- 6438,6445 ---- + cc = gchar_cursor(); + if (!vim_iswhite(cc)) + break; +! if (del_char(TRUE) == FAIL) +! break; /* should not happen */ + } + if (curwin->w_cursor.lnum != tpos.lnum) + curwin->w_cursor = tpos; +*** ../vim-7.2.188/src/version.c 2009-05-24 13:40:17.000000000 +0200 +--- src/version.c 2009-05-26 10:50:53.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 189, + /**/ + +-- +FIRST VILLAGER: We have found a witch. May we burn her? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// |